Snell¶
服務器系統Debian11、12可用
安裝¶
# 下載 Snell Server https://manual.nssurge.com/others/snell.html
wget https://dl.nssurge.com/snell/snell-server-v5.0.1-linux-amd64.zip
# 解压 Snell Server 到指定目錄
unzip snell-server-v5.0.1-linux-amd64.zip -d /usr/local/bin
# 賦予服務器权限
chmod +x /usr/local/bin/snell-server
# 進入解壓縮後的目錄,執行 ./snell-server 生成設定檔 snell-server.conf。您可以使用文字編輯器修改設定檔,例如更改端口、PSK 等。
cd /usr/local/bin
# ./snell-server
# 配置文件:
mkdir -p /etc/snell
# 生成配置文件
snell-server --wizard -c /etc/snell/snell-server.conf
服務自啓¶
nano /etc/systemd/system/snell.service
[Unit]
Description=Snell Proxy Service
After=network.target
[Service]
Type=simple
User=root
Group=root
LimitNOFILE=32768
ExecStart=/usr/local/bin/snell-server -c /etc/snell/snell-server.conf
Restart=on-failure
RestartSec=5
[Install]
WantedBy=multi-user.target
操作
# 重載服務
systemctl daemon-reload
# 自啓 | 啓動 | 停止 | 狀態 Snell
systemctl enable snell
systemctl start snell
systemctl stop snell
systemctl status snell
# 查看端口占用
ss -lpnt | grep snell
# 日志
journalctl -u snell -f
配置參考¶
snell-server.conf
[Snell Server]
listen = 0.0.0.0:5200
psk = 你的PSK
ipv6 = false
obfs = http
Surge 客戶端配置
[Proxy]
Snell = snell, 你的伺服器IP地址, 你的伺服器端口, psk=你的PSK, version=5
ShadowTLS 安装与配置¶
下载最新版二进制文件
cd /usr/local/bin
sudo wget -O shadow-tls https://github.com/ihciah/shadow-tls/releases/latest/download/shadow-tls-x86_64-unknown-linux-musl
sudo chmod +x shadow-tls
创建 Systemd 服务文件 创建服务以实现后台运行和开机自启:
sudo nano /etc/systemd/system/shadow-tls.service
写入以下内容(注意修改 password 和 tls 域名):
[Unit]
Description=Shadow-TLS Server
After=network.target
[Service]
Type=simple
# --v3: 使用 v3 协议 (推荐)
# --listen: 对外监听端口 (客户端连这个端口)
# --server: 后端 Snell/SS 服务地址 (本地回环地址)
# --password: ShadowTLS 专用密码 (自设,与 Snell 密码不同)
# --tls: 用于伪装的域名 (必须支持 TLS 1.3 的大厂域名)
ExecStart=/usr/local/bin/shadow-tls --v3 server --listen ::0:443 --server 127.0.0.1:5200 --password 你的ShadowTLS密码 --tls www.microsoft.com:443
Restart=always
RestartSec=5
[Install]
WantedBy=multi-user.target
启动服务
systemctl daemon-reload && systemctl enable shadow-tls
systemctl start shadow-tls
Surge 客戶端配置
MyProxy = snell, [你的服务器公网IP], 443, psk=[Snell的PSK], version=5, reuse=true, shadow-tls-password=[ShadowTLS的密码], shadow-tls-version=3, shadow-tls-sni=www.microsoft.com
修改 Nginx 配置 (nginx.conf)¶
你需要修改顶层配置(在 http {} 块之外,通常是在 nginx.conf 的最后添加 stream {} 块):
http {
···
server {
listen 4443 ssl default_server;
ssl_reject_handshake on;
}
}
stream {
# 定义分流逻辑
map $ssl_preread_server_name $backend {
# 将 ShadowTLS 的伪装域名转发给本地 8443
www.microsoft.com shadowtls_backend;
# 默认转发给本地 Nginx HTTPS 端口 (需要把原网站监听改为 127.0.0.1:4443)
default nginx_web_backend;
}
upstream shadowtls_backend {
server 127.0.0.1:8443;
}
upstream nginx_web_backend {
server 127.0.0.1:4443;
}
server {
listen 443 reuseport;
listen [::]:443 reuseport;
proxy_pass $backend;
ssl_preread on; # 开启 SNI 读取,不解密流量
}
}
卸载¶
systemctl stop snell && systemctl disable snell.service && rm /etc/systemd/system/snell.service && systemctl daemon-reload && systemctl status snell
rm -rf /etc/snell/ && rm /usr/local/bin/snell-server