SS 服务器搭建
这篇笔记记录了在 Linux VPS 上搭建一个最小化 Shadowsocks 服务器的过程。不同发行版和软件包版本的命令可能略有差异,因此在修改生产配置之前,请先在服务器上确认名称和路径。
1. 准备服务器
从一台干净的 VPS 开始,使用受支持的 Linux 发行版,并确保有 SSH 访问权限和一个普通的 sudo 用户。
先更新软件包索引:
sudo apt update
sudo apt upgrade
安装用于检查服务和防火墙的基础工具:
sudo apt install curl vim ufw
检查服务器的公网 IP 地址:
curl -4 ifconfig.me
2. 安装 Shadowsocks
在许多 Debian 或 Ubuntu 系统上,可以通过 shadowsocks-libev 软件包安装:
sudo apt install shadowsocks-libev
如果发行版的软件仓库中没有该软件包,请使用当前版本的官方软件源或构建说明。除非已经审查过随机安装脚本的具体行为,否则应避免使用它们。
确认二进制文件存在:
ss-server -h
3. 配置服务器
创建或编辑服务器配置文件。常见路径为:
sudo vim /etc/shadowsocks-libev/config.json
示例配置:
{
"server": "0.0.0.0",
"server_port": 8388,
"password": "replace-with-a-long-random-password",
"timeout": 300,
"method": "chacha20-ietf-poly1305",
"fast_open": false,
"mode": "tcp_and_udp"
}
使用一个较长的随机密码。method 的值应为已安装版本支持的加密方法;在可用时,优先使用 chacha20-ietf-poly1305 这类认证加密方法。
如有需要,可在本地生成密码:
openssl rand -base64 32
4. 打开防火墙
如果使用 ufw,在启用它之前先允许 SSH:
sudo ufw allow OpenSSH
然后允许 Shadowsocks 端口。端口需与 config.json 中的配置一致:
sudo ufw allow 8388/tcp
sudo ufw allow 8388/udp
sudo ufw enable
sudo ufw status
如果 VPS 服务商有独立的防火墙面板,也需要在那里打开相同的 TCP 和 UDP 端口。
5. 启动并启用服务
服务名称可能因软件包而异。在安装了 shadowsocks-libev 的 Debian 和 Ubuntu 上,可以尝试:
sudo systemctl enable shadowsocks-libev
sudo systemctl restart shadowsocks-libev
sudo systemctl status shadowsocks-libev
如果服务无法启动,请查看日志:
journalctl -u shadowsocks-libev --no-pager -n 100
确认服务器正在监听端口:
sudo ss -lntup | grep 8388
6. 客户端设置
使用与服务器相同的值配置客户端:
- 服务器地址:VPS 的公网 IP 或域名
- 端口:
8388,或你配置的自定义端口 - 密码:生成的密码
- 加密方法:
chacha20-ietf-poly1305,或config.json中的方法 - 模式:TCP 和 UDP,如果客户端支持
使用浏览器或命令行客户端进行测试。如果连接失败,请按顺序检查以下项目:
- 服务器进程正在运行。
- 端口已在操作系统防火墙和 VPS 服务商防火墙中打开。
- 客户端的方法、密码和端口与服务器配置完全一致。
- 服务器 IP 地址正确。
- 服务器日志中没有 JSON 语法错误或绑定错误。
7. 维护说明
保持系统更新:
sudo apt update
sudo apt upgrade
sudo systemctl restart shadowsocks-libev
修改 config.json 后,在重启前先验证 JSON:
python3 -m json.tool /etc/shadowsocks-libev/config.json
然后重启服务:
sudo systemctl restart shadowsocks-libev
出于安全考虑,避免复用密码,关闭未使用的端口,并在不再需要时删除旧的客户端配置。
