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 软件包。