snell简单搭建

官网下载最新snell-server,以linux-amd64为例

1
wget https://dl.nssurge.com/snell/snell-server-v4.1.1-linux-amd64.zip

解压 snell-server 至指定目录

1
sudo unzip snell-server-v4.1.1-linux-amd64.zip -d /usr/local/bin && rm snell-server-v4.1.1-linux-amd64.zip

编写配置文件

  • 先创建配置文件夹
1
sudo mkdir /etc/snell
  • 可以使用 snell 的 wizard 生成一个配置文件
1
sudo snell-server --wizard -c /etc/snell/snell-server.conf
  • 或者自己编一个
1
sudo vim /etc/snell/snell-server.conf
  • 将下面的复制粘贴进去
1
2
3
4
[snell-server]
listen = 0.0.0.0:port
psk = psk
ipv6 = false
  • 注:psk 可以用 openssl 生成
1
openssl rand -base64 32

可以创建一个独立的低权限用户来运行 snell

1
sudo useradd --system --no-create-home --shell /usr/sbin/nologin snell
  • 确保运行目录和配置文件权限正确
1
2
sudo chown -R snell:snell /usr/local/bin/snell-server
sudo chown -R snell:snell /etc/snell

配置 systemd 进程守护文件

1
sudo vim /etc/systemd/system/snell.service
  • 将下面的复制粘贴进去
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
[Unit]
Description=Snell Proxy Service
After=network.target

[Service]
Type=simple
User=snell
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

使用 systemctl 命令设置程序自启动

1
2
3
sudo systemctl daemon-reload
sudo systemctl enable snell
sudo systemctl start snell

查看 snell 运行状态

1
sudo systemctl status snell

关闭 snell

1
sudo systemctl stop snell