前言

整了个 Surge 5.7.6 (2838),发现居然不支持 VLESS,倒是支持自带轻量加密协议 Snell,专门为它整一个试试吧

安装

Ref: https://asuk.me/posts/f500c74e/index.html

  1. 下载

    1
    2
    3
    4
    wget -O snell-server.zip https://dl.nssurge.com/snell/snell-server-v5.0.0-linux-amd64.zip \
    && sudo unzip snell-server.zip -d /usr/local/bin \
    && sudo chmod +x /usr/local/bin/snell-server \
    && rm snell-server.zip
  2. 创建配置

    1
    sudo mkdir /etc/snell && sudo snell-server --wizard -c /etc/snell/snell-server.conf

    或者

    1
    sudo mkdir /etc/snell && sudo nano /etc/snell/snell-server.conf

    内容示例

    1
    2
    3
    4
    [snell-server]
    interface = 0.0.0.0:12345
    psk = RANDOM_KEY_HERE
    ipv6 = false

    可以使用 openssl 生成随机 PSK

    1
    openssl rand -base64 32

创建独立用户运行 Snell

  1. 建议为 Snell 创建一个低权限系统用户以提高安全性

    1
    sudo useradd --system --no-create-home --shell /usr/sbin/nologin snell
  2. 确保执行文件和配置文件拥有正确权限

    1
    2
    sudo chown -R snell:snell /usr/local/bin/snell-server
    sudo chown -R snell:snell /etc/snell

配置 systemd 服务

为了便于管理 Snell 服务,建议配置 systemd 单元:

1
sudo nano /etc/systemd/system/snell.service

添加以下内容:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
[Unit]
Description=Snell Proxy Service
After=network.target

[Service]
User=snell
ExecStart=/usr/local/bin/snell-server -c /etc/snell/snell-server.conf
LimitNOFILE=32768
AmbientCapabilities=CAP_NET_BIND_SERVICE
SyslogIdentifier=snell-server
Restart=on-failure

[Install]
WantedBy=multi-user.target

保存后执行以下命令启动并设置开机启动:

1
2
sudo systemctl daemon-reload
sudo systemctl enable --now snell

查看服务状态:

1
sudo systemctl status snell

开放防火墙端口

根据配置中监听的端口号,在防火墙中放行:

1
sudo ufw allow 12345

更新 Snell

更新 Snell 的方式与首次安装类似,只需下载新版覆盖旧文件即可,注意替换下载链接:

1
2
3
4
5
6
sudo systemctl stop snell
wget -O snell-server.zip https://dl.nssurge.com/snell/snell-server-v5.0.0-linux-amd64.zip \
&& sudo unzip snell-server.zip -d /usr/local/bin \
&& sudo chmod +x /usr/local/bin/snell-server \
&& rm snell-server.zip
sudo systemctl start snell

你也可以查看官方发布页确认是否有新版本。