Snell Server Docker 镜像,支持 v4/v5/v6 beta 和 ShadowTLS v3
2.0K
Docker Hub 镜像:jinqians/snell-server
这个镜像支持 Snell v4 / v5 / v6 beta,并可选启用 ShadowTLS v3。容器首次启动时可以自动生成 Snell 配置、Snell PSK 和 ShadowTLS 密码。
| 标签 | Snell 版本 | 说明 |
|---|---|---|
latest | v5.0.1 | 固定指向 v5.0.1,不指向 v6 |
v4 | v4.1.1 | 当前 v4 标签 |
v5 | v5.0.1 | 当前 v5 标签 |
v6 | v6.0.0b4 | 当前 v6 beta 标签 |
v4.0.0, v4.0.1, v4.1.0, v4.1.1 | v4 | 固定版本标签 |
v5.0.0, v5.0.1 | v5 | 固定版本标签 |
v6.0.0b1, v6.0.0b2, v6.0.0b3, v6.0.0b4 | v6 beta | 固定版本标签 |
| 版本 | 平台 |
|---|---|
| v4 / v5 | linux/amd64, linux/arm64, linux/arm/v7 |
| v6 | linux/amd64, linux/arm64 |
切换版本时,需要同时修改镜像标签和 SNELL_VER。例如使用 jinqians/snell-server:v5.0.1 时,SNELL_VER 仍填写 v5。
推荐挂载 /etc/snell 到宿主机目录。容器首次启动时会自动生成 snell-server.conf 和 PSK,后续升级可以继续复用。
mkdir -p ./snell-config
docker run -d --name snell-server \
--restart unless-stopped \
-p 6160:6160/tcp \
-p 6160:6160/udp \
-e SNELL_PORT=6160 \
-e SNELL_VER=v5 \
-v ./snell-config:/etc/snell \
jinqians/snell-server:v5
查看日志、配置和自动生成的 PSK:
docker logs snell-server
cat ./snell-config/snell-server.conf
手动指定 PSK:
docker run -d --name snell-server \
--restart unless-stopped \
-p 6160:6160/tcp \
-p 6160:6160/udp \
-e SNELL_PORT=6160 \
-e SNELL_VER=v5 \
-e SNELL_PSK=your_16_plus_char_psk \
-v ./snell-config:/etc/snell \
jinqians/snell-server:v5
如果 ./snell-config/snell-server.conf 已存在,容器会直接使用已有配置,不会再用环境变量覆盖它。v5 和 v6 建议同时映射 TCP 和 UDP。v4 只需要 TCP,保留 UDP 映射也不会影响使用。手动设置 PSK 时建议不少于 16 个字符,便于兼容 v6。
Surge 直连 Snell 示例:
HK = snell, 服务器IP, 6160, psk = your_16_plus_char_psk, version = 5, reuse = true, tfo = true
# v4 当前标签
docker run -d --name snell-v4 \
--restart unless-stopped \
-p 6160:6160/tcp \
-e SNELL_PORT=6160 \
-e SNELL_VER=v4 \
-v ./snell-v4-config:/etc/snell \
jinqians/snell-server:v4
# v5 固定版本
docker run -d --name snell-v5 \
--restart unless-stopped \
-p 6160:6160/tcp \
-p 6160:6160/udp \
-e SNELL_PORT=6160 \
-e SNELL_VER=v5 \
-v ./snell-v5-config:/etc/snell \
jinqians/snell-server:v5.0.1
# v6 当前 beta 标签
docker run -d --name snell-v6 \
--restart unless-stopped \
-p 6160:6160/tcp \
-p 6160:6160/udp \
-e SNELL_PORT=6160 \
-e SNELL_VER=v6 \
-v ./snell-v6-config:/etc/snell \
jinqians/snell-server:v6
启用 ShadowTLS 后,客户端连接 ShadowTLS 对外端口。Snell 后端只在容器内监听 127.0.0.1:6160,通常不需要映射 Snell 原始端口。
mkdir -p ./snell-shadowtls-config
docker run -d --name snell-shadowtls \
--restart unless-stopped \
-p 8443:8443/tcp \
-e SNELL_PORT=6160 \
-e SNELL_VER=v5 \
-e SNELL_LISTEN_HOST=127.0.0.1 \
-e SHADOWTLS_ENABLE=1 \
-e SHADOWTLS_PORT=8443 \
-e SHADOWTLS_SNI=www.microsoft.com \
-v ./snell-shadowtls-config:/etc/snell \
jinqians/snell-server:v5
查看客户端需要的密钥:
docker logs snell-shadowtls
grep '^psk' ./snell-shadowtls-config/snell-server.conf
cat ./snell-shadowtls-config/shadowtls-password
手动指定密钥:
docker run -d --name snell-shadowtls \
--restart unless-stopped \
-p 8443:8443/tcp \
-e SNELL_PORT=6160 \
-e SNELL_VER=v5 \
-e SNELL_LISTEN_HOST=127.0.0.1 \
-e SNELL_PSK=your_16_plus_char_psk \
-e SHADOWTLS_ENABLE=1 \
-e SHADOWTLS_PORT=8443 \
-e SHADOWTLS_PASSWORD=your_shadowtls_password \
-e SHADOWTLS_SNI=www.microsoft.com \
-v ./snell-shadowtls-config:/etc/snell \
jinqians/snell-server:v5
客户端填写:
| 项目 | 填写内容 |
|---|---|
| 服务器 | VPS 公网 IP 或域名 |
| 端口 | ShadowTLS 对外端口,示例为 8443 |
| Snell 版本 | 5 |
| Snell PSK | snell-server.conf 里的 psk |
| ShadowTLS 密码 | shadowtls-password 的内容,或手动传入的 SHADOWTLS_PASSWORD |
| ShadowTLS SNI | SHADOWTLS_SNI,默认 www.microsoft.com |
| ShadowTLS 版本 | 3 |
Surge 示例:
HK = snell, 服务器IP, 8443, psk = your_16_plus_char_psk, version = 5, reuse = true, tfo = true, shadow-tls-password = your_shadowtls_password, shadow-tls-sni = www.microsoft.com, shadow-tls-version = 3
创建 compose.yml:
services:
snell:
image: jinqians/snell-server:v5
container_name: snell-server
restart: unless-stopped
ports:
- "6160:6160/tcp"
- "6160:6160/udp"
environment:
- SNELL_PORT=6160
- SNELL_VER=v5
volumes:
- ./snell-config:/etc/snell
启动、查看配置、停止:
docker compose up -d
docker logs snell-server
cat ./snell-config/snell-server.conf
docker compose down
手动指定 PSK 时,在 environment 中增加:
- SNELL_PSK=your_16_plus_char_psk
创建 compose.yml:
services:
snell-shadowtls:
image: jinqians/snell-server:v5
container_name: snell-shadowtls
restart: unless-stopped
ports:
- "8443:8443/tcp"
environment:
- SNELL_PORT=6160
- SNELL_VER=v5
- SNELL_LISTEN_HOST=127.0.0.1
- SHADOWTLS_ENABLE=1
- SHADOWTLS_PORT=8443
- SHADOWTLS_SNI=www.microsoft.com
volumes:
- ./snell-shadowtls-config:/etc/snell
启动、查看密钥、停止:
docker compose up -d
docker logs snell-shadowtls
grep '^psk' ./snell-shadowtls-config/snell-server.conf
cat ./snell-shadowtls-config/shadowtls-password
docker compose down
手动指定 Snell PSK 和 ShadowTLS 密码时,在 environment 中增加:
- SNELL_PSK=your_16_plus_char_psk
- SHADOWTLS_PASSWORD=your_shadowtls_password
Docker:
docker pull jinqians/snell-server:v5
docker rm -f snell-server
docker run -d --name snell-server \
--restart unless-stopped \
-p 6160:6160/tcp \
-p 6160:6160/udp \
-e SNELL_PORT=6160 \
-e SNELL_VER=v5 \
-v ./snell-config:/etc/snell \
jinqians/snell-server:v5
Docker Compose:
docker compose pull
docker compose up -d
删除 Docker 容器:
docker rm -f snell-server
| 变量 | 默认值 | 说明 |
|---|---|---|
SNELL_VER | v4 | Snell 配置模式:v4、v5、v6 |
SNELL_PORT | 6160 | Snell 后端监听端口 |
SNELL_PSK | 自动生成 | Snell PSK;配置文件已存在时不会覆盖已有 psk |
SNELL_LISTEN_HOST | 0.0.0.0 | Snell 监听地址;搭配 ShadowTLS 时使用 127.0.0.1 |
SNELL_IPV6 | true | v4 / v6 配置项 |
SNELL_TFO | true | v4 / v6 配置项 |
SHADOWTLS_ENABLE | 0 | 设置为 1 启用 ShadowTLS |
SHADOWTLS_PORT | 8443 | ShadowTLS 对外监听端口 |
SHADOWTLS_PASSWORD | 自动生成 | ShadowTLS 密码,会保存到 /etc/snell/shadowtls-password |
SHADOWTLS_SNI | www.microsoft.com | ShadowTLS TLS 伪装 SNI |
Content type
Image
Digest
sha256:8e387bad8…
Size
10.3 MB
Last updated
11 days ago
docker pull jinqians/snell-server