Shadowsocks
Shadowsocks 是一个轻量级的代理。它基于 SOCKS5 协议,但额外使用了加密,这提高了安全性并有助于绕过防火墙。
安装
Arch Linux 为 Shadowsocks 打包了多种实现。你可以安装 其中之一
- shadowsocks — 最初用 Python 编写的实现。
- shadowsocks-rust — 最新的且积极开发的,用 Rust 编写的实现。
- go-shadowsocks2AUR, shadowsocks-goAUR — 用 Go 编写。
- shadowsocks-libev-staticAUR — 用 C 编写。不再开发,已被 shadowsocks-rust 取代。
配置
Shadowsocks 的配置通过 JSON 格式的文件完成。参见 Configuration via Config File。
- 要指定多个服务器 IP,可以使用以下语法
"server":["1.1.1.1","2.2.2.2"],。 - 要找出在您的机器上运行最快的方法,您可以使用 iperf.sh 脚本进行基准测试。
使用
客户端
从命令行
客户端通过 ss-local (shadowsocks-libev) 或 sslocal (shadowsocks, shadowsocks-rust) 命令启动,详见 sslocal(1) 手册。
sslocal -b 127.0.0.1:1080 --server-url ss://
或通过配置文件
sslocal -c config.json
config.json
{
"remarks": "Server name",
"server": "111.111.111.111",
"server_port": 804,
"local_port": 1080,
"method": "chacha20-ietf-poly1305",
"password": "server_password"
}
守护进程管理
Shadowsocks 客户端可以通过 systemctl 的 shadowsocks@.service (shadowsocks) 或 shadowsocks-libev@.service (shadowsocks-libev) 实例控制。要使用配置文件 /etc/shadowsocks/config.json,启动 并启用 shadowsocks-libev-server@config.service 或 shadowsocks-server@config.service。
您可能也会对在网络启动后运行 shadowsocks@ 或 shadowsocks-libev@ 实例 感兴趣。
服务器
从命令行
服务器通过 ss-server (shadowsocks-libev) 或 ssserver (shadowsocks, shadowserver-rust) 命令启动,详见 ssserver(1) 手册。
守护进程管理
Shadowsocks 服务器可以通过 shadowsocks-rust-server@.service (shadowsocks-rust) 或 shadowsocks-server@.service (shadowsocks) 的实例控制。要使用配置文件 /etc/shadowsocks/config.json,启动 并启用 shadowsocks-rust-server@config.service 或 shadowsocks-server@config.service。
要将 Shadowsocks 绑定到特权端口(小于 1024),服务器应以 root 用户身份启动
/etc/systemd/system/shadowsocks-server@.service.d/start-as-root.conf
[Service] User=root
技巧与提示
性能优化
- 使用常用端口,如 443。防火长城检查相对较少的常用端口以减少压力。
- 启用 TCP Fast Open.
- 启用 BBR.
- 安装 python-gevent 以提高 shadowsocks 的速度。
- 优化内核参数,请参阅 Optimizing Shadowsocks。
加密
参见 AEAD Ciphers。
安装 python-m2cryptoAUR 软件包将使加密速度更快一点。
要使用 Salsa20 或 ChaCha20 密码,请安装 libsodium 软件包。