Snell服务搭建 ft. Surge(4.0.1最新版)
本文最后更新于 2024-05-15,文章原本内容可能已经过时,请查看是否有更新内容。
前言
本文参考: 简单搭建Snell服务, deploying-a-snell-server
原文已经十分清晰明了,这里只是搬运一下以及给自己总结:
可选择手搓或者docker,点击右边目录跳转即可,强烈建议docker
snell手搓教程
如果连接VPS之后不是root用户请先执行以下命令,获取权限:
sudo -i
然后执行以下命令
# APT(debian\ubuntu)
sudo apt update && apt upgrade -y && sudo apt install wget unzip
# DNF (centos)
sudo dnf install unzip
搭建Snell服务端
注意区分自己是
amd
还是arm
这里我的vps是amd所以我选择了linux-amd64,如果你是arm或者amd以外其他系统,请去此网站找到对应版本名称
amd
wget https://dl.nssurge.com/snell/snell-server-v4.0.1-linux-amd64.zip
#解压
sudo unzip snell-server-v4.0.1-linux-amd64.zip -d /usr/local/bin
arm
wget https://dl.nssurge.com/snell/snell-server-v4.0.1-linux-aarch64.zip
#解压
sudo unzip snell-server-v4.0.1-linux-aarch64.zip -d /usr/local/bin
然后赋予服务权限
chmod +x /usr/local/bin/snell-server
再使用snell的wizard生成一个随机配置文件
sudo snell-server --wizard -c /etc/snell-server.conf
更改配置文件(建议略过)
⚠️前排提示:接下来这一步,如果不需要更改什么可以略过这一步,强烈建议略过,直接到下一步
配置systemd文件
,省事
输入以下命令
sudo apt-get install vim
sudo vim /etc/snell-server.conf
如图
操作方法:
按 i
进入编辑模式,然后用键盘右下角的方向键移动光标,可以把端口改成自己想要的,如果不用 obfs
就不用加 obfs = http
了,编辑完后按 esc
退出编辑模式,然后输入冒号 :
加 wq
保存退出即可
⚠️注意:开obfs特征会多一点,按理来说使用起来会更加危险一点,但是一般小流量没啥事,不建议开
如果要开
ipv6
的话,就把listen
那一行的0.0.0.0
改成::0
,然后把下面的ipv6=false
改成ipv6=true
即可
配置 Systemd 文件
第一种方法(建议第二种)
sudo apt-get install vim
sudo vim /lib/systemd/system/snell.service
然后会看到啥都没有,接下来只需要按i
进入编辑模式,然后把下面命令复制进去
[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-server.conf
StandardOutput=syslog
StandardError=syslog
SyslogIdentifier=snell-server
[Install]
WantedBy=multi-user.target
然后按ESC
退出编辑模式,输入 :wq
保存退出即可
第二种方法
直接复制这一串到vps
cat > /lib/systemd/system/snell.service << EOF
[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-server.conf
StandardOutput=syslog
StandardError=syslog
SyslogIdentifier=snell-server
[Install]
WantedBy=multi-user.target
EOF
然后 回车
即可
注意:在一些 Linux 发行版 (CentOS7) 中并无 nogroup 群组,但可以尝试把Group=nogroup修改成 Group=nobody 解决。
重载服务并启动
依次运行以下命令
# 重载服务
sudo systemctl daemon-reload
# 开机运行 Snell
sudo systemctl start snell
# 开启 Snell
sudo systemctl enable snell
## 查看 Snell 状态
sudo systemctl status snell
查看snell状态显示active
就代表成功了,按 q
退出
如果想要停止snell服务可以执行以下命令
sudo systemctl stop snell
surge上导入节点
在VPS输入以下代码查看自己的snell配置
cat /etc/snell-server.conf
就会得到以下格式(示例):
[snell-server]
listen = 0.0.0.0:xxxx(这里表示监听地址和端口)
psk = xxxxxxxxxxxxxxxxxxxx(这里是密钥)
ipv6 = false
obfs = http //⚠️注意可以不开
现在来到surge,我以ios为例:
其他和我一样就行,我这里打开TCP Fast Open了,其实不建议打开
其他和我一样就行,我这里打开TCP Fast Open了,其实不建议打开
至此全部完成 mac surge步骤差不多,找到对应的填就行!!
卸载snell
#停止原snell服务
sudo systemctl disable snell
sudo systemctl stop snell
#移除所有snell文件
rm -rf snell-server-v4.0.0-linux-amd64.zip
rm -rf /usr/local/bin/snell-server
rm -rf /lib/systemd/system/snell.service
rm -rf /etc/snell-server.conf
至此,原来手搓的snell就没了
docker搭建snell教程
用docker compose方便多了,强烈建议!!!
安装docker
依次输入以下命令
apt-get update && apt-get -y upgrade
#获取docker(国外)
curl -fsSL https://get.docker.com | bash -s docker
#如果之前没安装过docker,请忽略这里
#如果之前安装了compose 2.0以下的版本的话,请先执行卸载指令:
sudo rm /usr/local/bin/docker-compose
#如果之前安装了compose 2.0以上的版本的话,请先执行卸载指令:
rm -rf .docker/cli-plugins/
#下载最新compose
apt-get install docker-compose-plugin -y
然后输入以下命令来检测compose版本
docker compose version
正常的话会出现一个版本号
好了,现在docker已经安装好了,
搭建snell
创建docker-compose.yml文件夹
mkdir -p /root/snelldocker/snell-conf
⚠️注意:我这里的snelldocker文件夹名可以自行更改,但接下来的命令也要记得对应更改,最好就是啥也不改,省事
接着输入下面这一串,然后直接 回车
即可,注意区分自己是 amd
还是 arm
amd
cat > /root/snelldocker/docker-compose.yml << EOF
version: "3.8"
services:
snell:
image: accors/snell:latest
container_name: snell
restart: always
network_mode: host
volumes:
- ./snell-conf/snell.conf:/etc/snell-server.conf
environment:
- SNELL_URL=https://dl.nssurge.com/snell/snell-server-v4.0.1-linux-amd64.zip
EOF
注意其他服务端文件请去此网站查找
arm
cat > /root/snelldocker/docker-compose.yml << EOF
version: "3.8"
services:
snell:
image: accors/snell:latest
container_name: snell
restart: always
network_mode: host
volumes:
- ./snell-conf/snell.conf:/etc/snell-server.conf
environment:
- SNELL_URL=https://dl.nssurge.com/snell/snell-server-v4.0.1-linux-aarch64.zip
EOF
注意其他服务端文件请去此网站查找
接下来再输入下面这一串命令,如需要可以自行更改,如果要开 ipv6
的话,就把 listen
那一行的 0.0.0.0
改成 ::0
,然后把下面的 ipv6=false
改成 ipv6=true
即可,接着 回车
cat > /root/snelldocker/snell-conf/snell.conf << EOF
[snell-server]
listen = 0.0.0.0:28261 # 这里28261是端口
psk = GLk1ff4wuQNCDSqr92WwsHwe8KBjy3S # 这里是密钥,可以自行更改
ipv6 = false
EOF
注意,这里我没有把obfs加入了,如果自己加入了obfs=http
记得在surge的配置文件也加上,不建议
现在所有的配置已经完成了!!!
依次输入以下命令即可
cd /root/snelldocker
docker compose up -d
完成之后可以输入以下命令查看日志,来查看是否正常运行snell服务
docker logs -f snell
按 ctrl
+ c
退出日志
那么现在就可以去surge填写配置了,就是这么简单,导入surge教程看上面手搓示例,点击跳转
docker snell更新教程
如果之后更新了就可以输入以下命令完成更新
cd /root/snelldocker && docker compose pull && docker compose up -d
如果之后老刘更新服务端文件的链接了,那就输入以下命令
sudo apt-get install vim
sudo vim /root/snelldocker/docker-compose.yml
把光标移动到下图中红框框处,按 i
进入编辑模式,按 delete
把 =
后面的链接全部删除,然后把新服务端链接复制进去,然后 esc
退出编辑模式,然后 :wq
退出保存,如果操作错误不要慌,输入 :q!
强制退出不保存,重来即可!注意要是英文输入法!
新服务端链接请去此网站查找
然后再输入以下命令即可
cd /root/snelldocker
docker stop snell && docker rm snell
docker compose pull
docker compose up -d
至此,docker compose搭建snell就全部结束啦!!
⚠️一些小技巧
增加内核缓冲区大小可以显着提高 UDP 性能
sysctl -w net.core.rmem_max=26214400
sysctl -w net.core.rmem_default=26214400