打开/关闭菜单
打开/关闭外观设置菜单
打开/关闭个人菜单
未登录
未登录用户的IP地址会在进行任意编辑后公开展示。

在搬瓦工机器上使用 Docker 快速部署 Hysteria2 (HY2) 以及 cloudflare-warp (cf-warp)

来自md5.pw
IWwwwww留言 | 贡献2026年4月15日 (三) 12:53的版本

前置条件:

安装 docker, docker-compose

你可以在 md5.pw 中找到安装教程,此处不再赘述。

核心:

⚠️ 注意:这里需要你的 ssl 证书,只能使用认证机构颁发的证书,可以使用免费的 ssl 证书,但是:不能使用自签名证书,无法通过验证

证书文件放置于同目录的 ssl 子目录下,包含:certificate.crtcertificate.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

至此,已全部配置完成。