内容纲要

🗂 | 查看 Surge 专题可浏览更多内容


Snell 是一个加密的代理服务程序。

特性

  • 极致的性能;
  • Snell V2 中提供了完整的 TCP 全状态机支持的 multiplex 支持,以提高性能和减少延迟。但是在实际使用中,由于大多数网站和程序均已使用 HTTP/2 协议,自带了 multiplex 支持,所以并不会产生很多的底层 TCP 连接,代理层再支持 multiplex 的优化意义不大。
    而且 multiplex 的支持会导致额外的问题,如单 TCP 连接被限速,更加复杂繁琐的连接错误检查和纠错等。所以在 Snell V3 中已经关闭了 multiplex 支持;
  • 具有零依赖关系的单一二进制文件(除了 glibc);
  • 一个帮助入门的向导;
  • 嵌入了流量混淆功能(HTTP & TLS);
  • 如果遇到远程错误,代理服务器将向客户端报告。客户端可以针对不同的场景选择对策;
  • 服务器端程序能够与客户端自动协商密码和版本;

macOS

如果你正在使用 Surge Mac 并想以此部署 Snell Server 是非常简单的,只要在 Surge 的配置文件中加入以下字段:

[Snell Server]
interface = 0.0.0.0
port = 6160
psk = RANDOM_KEY_HERE
obfs = off

interface:监听地址
port:端口
psk:密钥
obfsoff 为关闭混淆,或使用混淆 httptls

Linux

如果想在服务器上安装 Snell 服务端,此处以 Linux 服务器为例,首先下载 Snell Server:Github

我的 VPS 是 x86 的所以选择 amd64.zip,下载选项里还有其他平台的。

# 如果系统没有预装可能需要先下载安装 wget 及 unzip
$ sudo apt update && sudo apt install wget unzip

# 下载 Snell Server
$ wget https://github.com/surge-networks/snell/releases/download/v3.0.1/snell-server-v3.0.1-linux-amd64.zip

# 解压 Snell Server 到指定目录
$ sudo unzip snell-server-v3.0.1-linux-amd64.zip -d /usr/local/bin

# 下载 Systemd 服务文件
$ sudo wget https://raw.githubusercontent.com/surge-networks/snell/master/systemd-example -O /lib/systemd/system/snell.service

然后编写配置文件:

# 可以使用 Snell 的 wizard 生成一个配置文件
$ sudo snell-server --wizard -c /etc/snell-server.conf
# 或者自己编写一个
$ sudo vim /etc/snell-server.conf
[snell-server]
listen = 0.0.0.0:21975
psk = TKWYO7tOdimF7slmuyz90joj4hE8OD0
ipv6 = false
obfs = http
  • listen:监听地址及端口;
  • psk:密钥;
  • ipv6:如果需要 IPv6 支持将值为 true
  • obfsoff 为关闭混淆,或使用混淆 httptls

然后使用 Systemd 进行管理:

# 开机运行 Snell
$ sudo systemctl enable snell

# 开启 Snell
$ sudo systemctl start snell

# 关闭 Snell
$ sudo systemctl stop snell

## 查看 Snell 状态
$ sudo systemctl status snell

💡 小技巧:增加内核缓冲区大小可以显著提高 UDP 性能:

$ sudo sysctl -w net.core.rmem_max=26214400
$ sudo sysctl -w net.core.rmem_default=26214400