在搬瓦工機器上使用 Docker 部署 Surge Snell 協議
更多語言
更多操作
Snell 協議說明
Snell 是 Surge團隊開發的私有協議,相對來說,因為用戶體量較小(僅 Surge 用戶可用),所以擁有更強的私密性和抗封鎖性。
對我而言,我會同時部署 HY2 和 Snell,當 HY2 因為長時間流量過大等原因被臨時禁用時,Snell 則成為備用協議可正常使用。 關於 HY2 的 Docker 部署模式請查看:在搬瓦工機器上使用 Docker 快速部署 Hysteria2 (HY2) 以及 cloudflare-warp (cf-warp)
另外,由於是私有協議,所以建議使用 Surge 官方客戶端進行使用。(有其他第三方工具使用破解的協議,但是支持的版本僅 v2, v3,Snell 最新版本為 v5)
有關 Snell 的更多說明請查看:官方文檔
Docker Compose 配置
如果你的伺服器使用了 iptables 之類的防火牆,需要你手動開啟 6333 的 tcp 和 udp 埠, 以及 6334 的 tcp 埠。
創建 docker-compose.yaml:
services:
snell:
image: lovechen/snell:latest
container_name: snell
ports:
- "6333:6333/tcp"
- "6333:6333/udp"
- "6334:6334"
volumes:
- ./config:/app/config
environment:
- TZ=Asia/Singapore
restart: always
進入根目錄使用:docker compose up -d 即可啟動 snell 協議。
查看訪問密鑰和配置信息:
啟動完成後,使用 docker compose logs snell 查看配置,你會看到以下輸出:
<IPv4> 即為你的伺服器 ipv4 地址
<密鑰> 則為該協議使用的密碼
可以看到有兩個配置,直連和 Snell + ShadowTLS,由於 Snell v5 向下兼容 v4,所以如果你的 surge 沒有購買最新的訂閱(不支持 v5, 但支持 v4),可以使用直連配置。
███████╗███╗ ██╗███████╗██╗ ██╗ ██╗ ███████╗██╗ ██╗ █████╗ ██████╗ ██████╗ ██╗ ██╗████████╗██╗ ███████╗
██╔════╝████╗ ██║██╔════╝██║ ██║ ██║ ██╔════╝██║ ██║██╔══██╗██╔══██╗██╔═══██╗██║ ██║╚══██╔══╝██║ ██╔════╝
███████╗██╔██╗ ██║█████╗ ██║ ██║ ████████████╗ ███████╗███████║███████║██║ ██║██║ ██║██║ █╗ ██║ ██║ ██║ ███████╗
╚════██║██║╚██╗██║██╔══╝ ██║ ██║ ╚════██╔════╝ ╚════██║██╔══██║██╔══██║██║ ██║██║ ██║██║███╗██║ ██║ ██║ ╚════██║
███████║██║ ╚████║███████╗███████╗███████╗ ██║ ███████║██║ ██║██║ ██║██████╔╝╚██████╔╝╚███╔███╔╝ ██║ ███████╗███████║
╚══════╝╚═╝ ╚═══╝╚══════╝╚══════╝╚══════╝ ╚═╝ ╚══════╝╚═╝ ╚═╝╚═╝ ╚═╝╚═════╝ ╚═════╝ ╚══╝╚══╝ ╚═╝ ╚══════╝╚══════╝
Created by LOVE
==========================================================================================================================================
Snell + ShadowTLS Service
Program Version: 25.12.19
Snell Server Version: 5.0.1
Snell Protocol Version: 5
ShadowTLS Version: 0.2.25
ShadowTLS Protocol Version: 3
2026/04/01 19:07:03 使用已存在的Snell配置文件
=== Snell + ShadowTLS 配置信息 ===
2026/04/01 19:07:03 正在启动 Snell 服务器...
2026/04/01 19:07:03 正在启动 ShadowTLS 服务器...
1. Snell直连配置:
Proxy = snell, <IPv4>, 6333, psk = <密钥>, version = 5, reuse=true, tfo=true
2. Snell + ShadowTLS配置:
Proxy = snell, <IPv4>, 6334, psk = <密钥>, version = 5, reuse=true, tfo=true, shadow-tls-password = <TLS_PASS>, shadow-tls-sni = www.apple.com, shadow-tls-version = 3
服务已启动!
Snell端口: 6333
ShadowTLS端口: 6334
2026/04/01 19:07:03 服务已启动,按 Ctrl+C 退出
2026-04-01T11:07:03.922305Z INFO shadow_tls: Start 32-thread Server with:
Listen address: 0.0.0.0:6334
Target address: 127.0.0.1:6333
TLS server address: (wildcard-sni:off)fallback->www.apple.com:443
TCP_NODELAY: true
TCP_FASTOPEN:true
V3 Protocol: enabled(lossy)
2026-04-01 11:07:03.934855 [server_main] <NOTIFY> snell-server v5.0.1 (Nov 19 2025 09:57:07)
2026-04-01 11:07:03.934893 [server_main] <ERR> Unknown obfs type: none
2026-04-01 11:07:03.935028 [server_main] <NOTIFY> Effective IPv4 DNS: 127.0.0.11
2026-04-01 11:07:03.935048 [server_main] <NOTIFY> Start snell server on 0.0.0.0:6333
2026-04-01 11:07:03.935074 [server_main] <NOTIFY> TCP Fast Open enabled
2026-04-01 11:07:03.935083 [server_main] <NOTIFY> Start snell quic proxy server. Please confirm that both TCP and UDP inbound to port 6333 has been enabled.
Surge 配置示例
按照上方的配置信息填寫 Server (IPv4 地址),Port 6333(如果使用的是 Snell + ShadowTLS 則為 6334),PSK 即為密鑰。
Protocol Version 協議版本:v4 (如果你不支持 v5,則選擇 v4 即可)。
Connection Reuse 連接復用,建議勾選。
TCP Fast Open 快速啟用,建議勾選。
如果你使用的是 Snell + ShadowTLS 配置,在下方 ShadowTLS Version 中選擇對應版本填入配置即可。


Docker Compose 合併 HY2
如果你想將 snell 協議和 hy2 協議合併,參考如下配置:
具體的 hy2 配置請查看:在搬瓦工機器上使用 Docker 快速部署 Hysteria2 (HY2) 以及 cloudflare-warp (cf-warp)
配置完成後使用 docker compose up -d 即可同時啟用 snell 和 hy2 協議。(查看 snell 配置依然是 docker compose logs snell)。
services:
snell:
image: lovechen/snell:latest
container_name: snell
ports:
- "6333:6333/tcp"
- "6333:6333/udp"
- "6334:6334"
volumes:
- ./config:/app/config
environment:
- TZ=Asia/Singapore
restart: always
hysteria:
image: tobyxdd/hysteria:v2.7.1
container_name: hysteria
restart: unless-stopped
network_mode: "host"
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"]