Hard-working is actually a cool thing.
努力学习其实是一件很酷的事
本文主要参考了神机(花姐)Surge | 部署 Snell Server – DivineEngine | Site,只是根据自己搭建过程做了一点点改动。感谢花姐以及surge pro群里热心指导的各位。
用ssh连上你的vps后,输入:
sudo -isudo -isudo -i
获取管理权限
如果系统没有预装可能需要先下载安装 vim,wget 及 unzip
APT
sudo apt update && sudo apt install wget unzipsudo apt update && sudo apt install wget unzipsudo apt update && sudo apt install wget unzip
DNF
这一步ubuntu和Debian系统似乎不用。
sudo dnf install unzipsudo dnf install unzipsudo dnf install unzip
安装vim
apt install vimapt install vimapt install vim
下载 Snell Server
Snell Protocol · GitBook下载相应服务器版本。这里以linux-amd64为例
如果你的服务器是其它版本的去官网wget https://dl.nssurge.com/snell/snell-server-v4.0.1-linux-amd64.zipwget https://dl.nssurge.com/snell/snell-server-v4.0.1-linux-amd64.zipwget 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.zipwget https://dl.nssurge.com/snell/snell-server-v4.0.1-linux-aarch64.zipwget 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/binsudo unzip snell-server-v4.0.1-linux-amd64.zip -d /usr/local/binsudo 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/binsudo unzip snell-server-v4.0.1-linux-aarch64.zip -d /usr/local/binsudo unzip snell-server-v4.0.1-linux-aarch64.zip -d /usr/local/bin
赋予服务器权限
花姐的教程里面没有这一步。但是我结合自己之前弄TUIC的经验,觉得应该还是要加上
chmod +x /usr/local/bin/snell-serverchmod +x /usr/local/bin/snell-serverchmod +x /usr/local/bin/snell-server
编写配置文件:
先执行新建文件夹操作
sudo mkdir /etc/snellsudo mkdir /etc/snellsudo mkdir /etc/snell
执行完建立文件夹操作后再进行写入配置
可以使用 Snell 的 wizard 生成一个配置文件
sudo snell-server --wizard -c /etc/snell/snell-server.confsudo snell-server --wizard -c /etc/snell/snell-server.confsudo snell-server --wizard -c /etc/snell/snell-server.conf
或者自己编写一个
sudo vim /etc/snell/snell-server.confsudo vim /etc/snell/snell-server.confsudo vim /etc/snell/snell-server.conf
将下面的复制粘贴进去,按esc 后输入”:wq”保存退出
Tips 如果要进行修改,按“i”后移动光标到相应位置,进行修改完毕后按esc退出并输入“:wq”保存(这个说明给像我这样对vim不熟悉的)
[snell-server]listen = 0.0.0.0:11807psk = AijHCeos15IvqDZTb1cJMX5GcgZzIVEipv6 = false[snell-server] listen = 0.0.0.0:11807 psk = AijHCeos15IvqDZTb1cJMX5GcgZzIVE ipv6 = false[snell-server] listen = 0.0.0.0:11807 psk = AijHCeos15IvqDZTb1cJMX5GcgZzIVE ipv6 = false
参数说明:
listen:监听地址及端口;
psk:密钥;
ipv6:如果需要 IPv6 支持将值为 – true;
然后配置 Systemd 服务文件:
sudo vim /lib/systemd/system/snell.servicesudo vim /lib/systemd/system/snell.servicesudo vim /lib/systemd/system/snell.service
将下面的复制粘贴进去,按esc 后输入“:wq”保存退出
[Unit]Description=Snell Proxy ServiceAfter=network.target[Service]Type=simpleUser=nobodyGroup=nogroupLimitNOFILE=32768ExecStart=/usr/local/bin/snell-server -c /etc/snell/snell-server.confAmbientCapabilities=CAP_NET_BIND_SERVICEStandardOutput=syslogStandardError=syslogSyslogIdentifier=snell-server[Install]WantedBy=multi-user.target[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[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-reloadsudo systemctl daemon-reloadsudo systemctl daemon-reload
开机运行 Snell
sudo systemctl enable snellsudo systemctl enable snellsudo systemctl enable snell
开启 Snell
sudo systemctl start snellsudo systemctl start snellsudo systemctl start snell
关闭 Snell
sudo systemctl stop snellsudo systemctl stop snellsudo systemctl stop snell
查看 Snell 状态
sudo systemctl status snellsudo systemctl status snellsudo systemctl status snell
Tips:运行查看服务器状态后按“q”键退出
如果要查看自己Snell配置:
cat /etc/snell/snell-server.confcat /etc/snell/snell-server.confcat /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=trueAWS-EC2-SG = snell, XXX.XXX.XXX.XXX, 11807, psk=AijHCeos15IvqDZTb1cJMX5GcgZzIVE, version=4, tfo=trueAWS-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.shwget -O snell.sh --no-check-certificate https://raw.githubusercontent.com/getsomecat/Snell/master/snell_new.sh && chmod +x snell.sh && ./snell.shwget -O snell.sh --no-check-certificate https://raw.githubusercontent.com/getsomecat/Snell/master/snell_new.sh && chmod +x snell.sh && ./snell.sh
© 版权声明
文章版权归整点猫咪&Lucky所有,未经允许请勿转载。
THE END
暂无评论内容