lovechen/snell

By lovechen

Updated 4 days ago

Image
0

137

Snell + ShadowTLS Docker

这是一个集成了 Snell 代理服务器和 ShadowTLS 的 Docker 镜像,支持多架构部署。

功能特点

  • 支持 Snell v4 协议
  • 集成 ShadowTLS v2/v3
  • 多架构支持 (amd64/arm64/armv7)
  • 自动配置和密钥生成
  • 持久化配置存储
  • 支持 Docker Compose 部署
  • UDP支持说明:
    • Snell直连模式支持UDP
    • ShadowTLS模式仅支持TCP (受限于TLS协议)

系统要求

  • Docker 19.03+(需要 buildx 支持)
  • Docker Compose v2.0+ (可选,用于简化部署)
  • 支持的系统架构:
    • x86_64 / amd64
    • arm64 / aarch64
    • armv7

快速开始

使用 Docker Compose(推荐)
  1. 创建项目目录并进入:
mkdir snell-server && cd snell-server
  1. 创建 docker-compose.yml:
cat > docker-compose.yml << 'EOF'
version: '3'

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: unless-stopped
EOF
  1. 启动服务:
docker compose up -d
  1. 查看配置信息:
docker logs snell
使用 Docker 命令行

如果你不想使用 Docker Compose,也可以直接使用 Docker 命令:

docker run -d \
  --name snell \
  -p 6333:6333/tcp \
  -p 6333:6333/udp \
  -p 6334:6334 \
  -v $(pwd)/config:/app/config \
  --restart unless-stopped \
  lovechen/snell:latest
查看配置信息

服务启动后,可以通过以下命令查看配置信息:

docker logs snell

输出内容包括:

  • Snell 直连配置
  • Snell + ShadowTLS 配置
  • 服务器 IP、端口等信息
客户端配置
  1. Surge 配置示例:
[Proxy]
# Snell 直连
Snell-Direct = snell, server_ip, port, psk=your_psk, version=4

# Snell + ShadowTLS
Snell-TLS = snell, server_ip, port, psk=your_psk, version=4, shadow-tls-password=your_password, shadow-tls-sni=your_sni, shadow-tls-version=3

将配置中的参数替换为服务器日志中显示的实际值即可使用。

密钥说明

服务启动时会自动生成两个32位随机密钥:

  • Snell PSK: 用于Snell协议加密
  • ShadowTLS Password: 用于ShadowTLS协议加密

这些密钥在首次启动时自动生成,并保存在配置文件中。重启容器时会继续使用已保存的密钥,除非删除配置文件。

配置文件持久化

所有配置文件都保存在 config 目录下:

  • snell-server.conf: Snell 服务器配置
  • shadowtls.conf: ShadowTLS 配置

重启容器时会自动使用已存在的配置文件。

注意: 配置目录会由程序自动创建,无需手动创建。

Docker Pull Command

docker pull lovechen/snell