在搬瓦工机器上使用 Docker 快速部署 Hysteria2 (HY2) 以及 cloudflare-warp (cf-warp)
更多语言
更多操作
前置条件:
安装 docker, docker-compose
你可以在 md5.pw 中找到安装教程,此处不再赘述。
核心:
⚠️ 注意:这里需要你的 ssl 证书,只能使用认证机构颁发的证书,可以使用免费的 ssl 证书,但是:不能使用自签名证书,无法通过验证
证书文件放置于同目录的 ssl 子目录下,包含:certificate.crt 和 certificate.key
micro-warp为 hy2 提供出站流量分流(部分ip被滥用时,会导致访问页面频繁出现 CAPTCHATs 验证弹窗,可以使用 micro-warp(cf-warp) 进行分流以避免验证弹窗的问题。
创建 hysteria2 服务端配置文件 hysteria.yaml:
⚠️ 你需要修改 auth.password: <PASSWORD>,这是你的 hy2 连接密码。
默认监听端口为 8899,如有需要可自行修改 listen,注意不要丢弃端口前的冒号 `:` 。
⚠️ 如果你不需要 hy2 帮你分流,你可以将 outbounds: 和 acl: 全部注释掉。
创建 hysteria.yaml
# Full Server Config:
# refer: https://v2.hysteria.network/zh/docs/advanced/Full-Server-Config
listen: :8899
tls:
cert: /root/ssl/certificate.crt
key: /root/ssl/certificate.key
sniGuard: disable
# clientCA: client.crt
#bandwidth:
# up: 1 gbps
# down: 1 gbps
# 启用该配置后始终使用 BBR 拥堵算法
#ignoreClientBandwidth: true
# ⚠️ 不启用 bandwidth 和 ignoreClientBandwidth 时
# 客户端如果也没有配置带宽,则默认使用 bbr,否则使用 brutal 且以客户端设置的带宽为准
#speedTest: false
# 通过 API 查询流量统计信息
# refer: https://v2.hysteria.network/zh/docs/advanced/Full-Server-Config/#api-http
# refer: https://v2.hysteria.network/zh/docs/advanced/Traffic-Stats-API/
# curl -H 'Authorization: secret' http://ip:port/traffic
trafficStats:
listen: :9998
secret: hysteria2-traffic
auth:
type: password
password: <PASSWORD>
masquerade:
type: proxy
proxy:
url: https://bing.in
rewriteHost: true
insecure: false
# 以下配置,如果没有使用 cloudflare warp 则无需开启
# ⚠️ 这里的名字不能使用 `-`,否则无法识别
outbounds:
- name: cf_warp
type: socks5
socks5:
addr: 127.0.0.1:40000
# `username` & `password` is Optional
#username: hackerman
#password: Elliot Alderson
# 这里的规则从上到下进行匹配
acl:
inline:
- cf_warp(geoip:cloudflare)
- cf_warp(geoip:google)
- direct(all)
创建 docker-compose.yaml
⚠️ 注意,我们使用的是 microwarp, 而不是官方的 cf-warp。microwarp[1] 占用内存极低,按照官方说明最小可为 880 KB 即可运行(官方约为 200MB)。 ⚠️ 如果你不需要 cf-warp 作为出站流量,可以将其注释掉(需同步修改 hysteria.yaml 配置)。
services:
# refer: https://github.com/apernet/hysteria
hysteria:
image: tobyxdd/hysteria:v2.7.1
container_name: hysteria
restart: unless-stopped
network_mode: "host"
depends_on:
- microwarp
volumes:
- acme:/acme
- ./hysteria.yaml:/etc/hysteria.yaml
- ./ssl:/root/ssl
logging:
driver: "json-file"
options:
max-size: "1m"
max-file: "3"
command: ["server", "-c", "/etc/hysteria.yaml"]
# refer: https://github.com/ccbkkb/MicroWARP
microwarp:
image: ghcr.io/ccbkkb/microwarp:latest
container_name: microwarp
restart: always
ports:
- "127.0.0.1:40000:1080" # 标准的无密码 SOCKS5 端口,仅监听本机
cap_add:
- NET_ADMIN
- SYS_MODULE
sysctls:
- net.ipv4.conf.all.src_valid_mark=1
volumes:
- ./warp-data:/etc/wireguard
logging:
driver: "json-file"
options:
max-size: "1m" #单个日志文件最大 3MB
max-file: "3" # 最多保留 3个 日志
# 额外配置,按需开启即可
# environment:
# - BIND_ADDR=0.0.0.0 # Bind address (default: 0.0.0.0)
# - BIND_PORT=1080 # Custom SOCKS5 port (default: 1080)
# - SOCKS_USER=admin # Enable authentication (leave empty for no auth)
# - SOCKS_PASS=123456 # Auth password
# - ENDPOINT_IP=162.159.193.10:2408 # Custom WARP Endpoint IP (Bypass regional blocks)
volumes:
acme:
准备就绪后,在根目录使用:
docker compose up -d
即可成功启用 HY2。
客户端配置
服务器ip:端口(默认为 8899),密码为你自行配置的密码。
举例(Surge):
Server 为 服务器 IP 地址
Port 为端口号,如果你没有修改的话默认就是 8899
Password 为你配置的密码
⚠️ 注意:Skip Certificate Verification 需要开启
Surge 配置 Hy2
至此,已全部配置完成。
- ↑ microwarp 详情见:https://github.com/ccbkkb/MicroWARP
