本文主要参考了神机(花姐)Surge | 部署 Snell Server – DivineEngine | Site,只是根据自己搭建过程做了一点点改动。感谢花姐以及surge pro群里热心指导的各位。

用ssh连上你的vps后,输入:

sudo -i

获取管理权限

如果系统没有预装可能需要先下载安装 vim,wget 及 unzip

APT

sudo apt update && sudo apt install wget unzip

DNF

这一步ubuntu和Debian系统似乎不用。

sudo dnf install unzip

安装vim

apt install vim

下载 Snell Server

如果你的服务器是其它版本的去官网Snell Protocol · GitBook下载相应服务器版本。这里以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 Server 到指定目录

AMD

sudo unzip snell-server-v4.0.1-linux-amd64.zip -d /usr/local/bin

ARM

sudo unzip snell-server-v4.0.1-linux-aarch64.zip -d /usr/local/bin

赋予服务器权限

花姐的教程里面没有这一步。但是我结合自己之前弄TUIC的经验,觉得应该还是要加上

chmod +x /usr/local/bin/snell-server

编写配置文件:

先执行新建文件夹操作

sudo mkdir /etc/snell

执行完建立文件夹操作后再进行写入配置

可以使用 Snell 的 wizard 生成一个配置文件

sudo snell-server --wizard -c /etc/snell/snell-server.conf

或者自己编写一个

sudo vim /etc/snell/snell-server.conf

将下面的复制粘贴进去,按esc 后输入":wq"保存退出

[snell-server]
listen = 0.0.0.0:11807
psk = AijHCeos15IvqDZTb1cJMX5GcgZzIVE
ipv6 = false

参数说明:

listen:监听地址及端口; psk:密钥; ipv6:如果需要 IPv6 支持将值为 – true;

然后配置 Systemd 服务文件:

sudo vim /lib/systemd/system/snell.service

将下面的复制粘贴进去,按esc 后输入“:wq”保存退出

[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 发行版 (CentOS7) 中并无 nogroup 群组,但可以尝试修改成 Group=nobody 解决。如果需要使用特权端口,可以在 [Service] 增加一条:AmbientCapabilities=CAP\_NET\_BIND\_SERVICE 以解决权限不足不能绑定的问题;

然后使用命令:

重 载服务

sudo systemctl daemon-reload

开机运行 Snell

sudo systemctl enable snell

开启 Snell

sudo systemctl start snell

关闭 Snell

sudo systemctl stop snell

查看 Snell 状态

sudo systemctl status snell

Tips:运行查看服务器状态后按“q”键退出

如果要查看自己Snell配置:

cat /etc/snell/snell-server.conf

查看后将相应的配置输出到surge里面:

格式如下:(XXX.XXX.XXX.XXX换成你自己的vps IP,端口和psk也是自己改成自己设置的snell-server.conf里面相应数据。)

AWS-EC2-SG = snell, XXX.XXX.XXX.XXX, 11807, psk=AijHCeos15IvqDZTb1cJMX5GcgZzIVE, version=4, tfo=true

中午我是自己在 AWS -EC2 上按照这个步骤自己来了一遍并通了的。

如果你看完教程觉得好麻烦啊我不想动手搞,那么这个一键脚本应该可以帮到你

wget -O snell.sh --no-check-certificate https://raw.githubusercontent.com/getsomecat/Snell/master/snell_new.sh && chmod +x snell.sh && ./snell.sh