搭建 Snell Server
适用场景:为 Surge 客户端搭建一个轻量的自建代理服务端。本文参考 Surge | 部署 Snell Server – DivineEngine,并结合实际部署过程做了简化整理,从安装依赖到 systemd 托管全流程覆盖。
1. 获取管理权限
sudo -i
2. 安装依赖
APT 系统
sudo apt update
sudo apt install wget unzip vim
DNF 系统
sudo dnf install unzip
3. 下载 Snell Server
如果你的机器是 linux-amd64:
wget https://dl.nssurge.com/snell/snell-server-v4.0.1-linux-amd64.zip
如果是 ARM 机器:
wget https://dl.nssurge.com/snell/snell-server-v4.0.1-linux-aarch64.zip
更多版本可参考官方页面: Snell Protocol 文档
4. 解压并赋权
AMD64:
sudo unzip snell-server-v4.0.1-linux-amd64.zip -d /usr/local/bin
ARM64:
sudo unzip snell-server-v4.0.1-linux-aarch64.zip -d /usr/local/bin
赋予执行权限:
chmod +x /usr/local/bin/snell-server
5. 编写配置文件
创建配置目录:
sudo mkdir -p /etc/snell
可以使用向导生成配置:
sudo snell-server --wizard -c /etc/snell/snell-server.conf
也可以手动创建:
sudo vim /etc/snell/snell-server.conf
示例配置:
[snell-server]
listen = 0.0.0.0:11807
psk = AijHCeos15IvqDZTb1cJMX5GcgZzIVE
ipv6 = false
参数说明:
listen:监听地址和端口psk:连接密钥ipv6:是否启用 IPv6
6. 配置 systemd 服务
sudo vim /lib/systemd/system/snell.service
写入以下内容:
[Unit]
Description=Snell Proxy Service
After=network.target
[Service]
Type=simple
User=nobody
Group=nogroup
LimitNOFILE=32768
ExecStart=/usr/local/bin/snell-server -c /etc/snell/snell-server.conf
AmbientCapabilities=CAP_NET_BIND_SERVICE
StandardOutput=syslog
StandardError=syslog
SyslogIdentifier=snell-server
[Install]
WantedBy=multi-user.target
注意:
- 某些 Linux 发行版中没有
nogroup,可以改成Group=nobody。 - 如果需要绑定特权端口,
AmbientCapabilities=CAP_NET_BIND_SERVICE很有用。
7. 启动服务
sudo systemctl daemon-reload
sudo systemctl enable snell
sudo systemctl start snell
常用命令:
sudo systemctl stop snell
sudo systemctl status snell
cat /etc/snell/snell-server.conf
8. 客户端示例
将服务端信息填入 Surge:
AWS-EC2-SG = snell, XXX.XXX.XXX.XXX, 11807, psk=AijHCeos15IvqDZTb1cJMX5GcgZzIVE, version=4, tfo=true
9. 一键脚本
如果你不想手动部署,也可以尝试以下脚本:
wget -O snell.sh --no-check-certificate https://raw.githubusercontent.com/getsomecat/Snell/master/snell_new.sh
chmod +x snell.sh
./snell.sh
验证与自查
sudo systemctl status snell显示 active(running)ss -lntup | grep 11807确认监听端口正常(若改了端口以实际为准)- 在 Surge 中添加节点后延迟测试通过,可正常访问外网
sudo journalctl -u snell -e无报错