前期准备
首先,确认你已具备以下条件:
- 一台运行 CentOS(7、8 或以上版本)的 VPS 或物理服务器,具有 root 或 sudo 权限。
- 已开启系统更新,以便安装最新依赖并修补安全漏洞。
- 服务端公网 IP 地址或可访问域名可用于客户端连接。
- 如果你使用云服务器或 VPS,确保其网络端口(如 443、8388 等)未被宿主商家屏蔽。
- 建议提前做好备份或快照,以便出错时恢复。
更新系统与安装依赖
1. 使用 root 或 sudo 用户登录服务器。
2. 执行系统更新:
sudo yum update -y
sudo yum upgrade -y
3. 安装 EPEL 源(如果尚未安装):
sudo yum install -y epel-release
4. (可选)若你准备使用 snap 包方式安装,需安装 snapd:
sudo yum install -y snapd
sudo systemctl enable --now snapd.socket
此时系统已准备好安装 shadowsocks‑libev。
安装 Shadowsocks-libev 服务端
有两种主流方式可选: YUM/DNF 安装 或 Snap 安装。
1. 使用系统包管理器安装
适用于 CentOS-7 / 8 等,并且 EPEL 源已开启。
sudo yum install -y shadowsocks-libev
2. 使用 snap 安装
适用于你已经启用了 snapd 的系统。
sudo snap install shadowsocks-libev
无论哪种方式,安装完成后即可进入配置环节。
配置 Shadowsocks 服务端
在服务端创建并编辑配置文件,例如:
/etc/shadowsocks-libev/config.json 或 snap 路径下的配置目录。示例配置内容如下:
{
"server": ["::0", "0.0.0.0"],
"mode": "tcp_and_udp",
"server_port": 443,
"password": "你的强密码",
"timeout": 60,
"method": "chacha20-ietf-poly1305",
"nameserver": "1.1.1.1"
}
关键说明:
- "server": ["::0","0.0.0.0"] 表示同时监听 IPv6 与 IPv4 所有网卡。
- "server_port" 设置为你选择的端口(如 443、8388);建议选择不常用端口以避免被扫描。
- "password" 建议使用长且随机生成的值。
- "method" 推荐使用 chacha20-ietf-poly1305 或 aes-256-gcm 等现代密码。
- "mode" 可设置为 "tcp_and_udp" 以同时支持 TCP 和 UDP。
保存配置后,可测试配置是否正常无语法错误。
设置 Systemd 服务自动启动
建议为 Shadowsocks 创建 systemd 服务,以实现开机自动启动。
在 /etc/systemd/system/shadowsocks-libev.service 中创建如下内容:
[Unit]
Description=Shadowsocks-Libev Server
After=network-online.target
[Service]
Type=simple
ExecStart=/usr/bin/ss-server -c /etc/shadowsocks-libev/config.json
Restart=always
RestartSec=2
[Install]
WantedBy=multi-user.target
然后依次执行:
sudo systemctl daemon-reload
sudo systemctl enable shadowsocks-libev
sudo systemctl start shadowsocks-libev
sudo systemctl status shadowsocks-libev
如果状态显示为 “active (running)”,表示服务已正常运行。
防火墙与SELinux 配置
防火墙设置(以 firewalld 为例)
假设你的服务监听端口为 443:
sudo firewall-cmd --permanent --add-port=443/tcp
sudo firewall-cmd --permanent --add-port=443/udp
sudo firewall-cmd --reload
SELinux 设置
如果你的系统启用了 SELinux,可能需允许端口访问或暂时将 SELinux 设为宽松模式(不建议长期如此):
sudo setenforce 0
更推荐是使用 semanage 为该端口添加规则,使其合法。
安全优化建议
1. 修改默认 SSH 端口、禁用 root 直接登录、启用 公钥认证。
2. 使用 iptables 或 firewalld 限制仅可信 IP/范围访问管理端口。
3. 定期检查系统可用更新并及时应用。
4. 可启用 TCP BBR 拥塞控制算法以提升连接速度:
sudo nano /etc/sysctl.conf
在末尾添加:
net.core.default_qdisc = fq
net.ipv4.tcp_congestion_control = bbr
然后执行:
sudo sysctl -p
5. 使用较为隐蔽的端口(如 443、80 或 非标准端口)减低扫描风险。
6. 若服务器同时运行网页服务,建议使用不同端口或 SNI 伪装插件。
故障排查常见问题
- 服务启动失败:查看日志 sudo journalctl -u shadowsocks-libev,检查配置文件语法或端口冲突。
- 客户端无法连接:确认防火墙是否已开放端口、服务是否监听该端口、密码加密方式是否匹配。
- 连接速度慢或不稳定:考虑使用 BBR 算法、切换加密方式为 chacha20 系列、选择低延迟的 VPS 节点。
- 系统资源占用高:确认使用的是 libev 版(C语言实现),比 Python 版占用更低。
总结
通过以上步骤,你即可在 CentOS 系统中成功部署 Shadowsocks-libev 服务端,从系统更新、依赖安装、服务部署、配置加固、防火墙管理、安全优化直至客户端连接都已涵盖。部署完成后,建议定期监控服务运行状态、安全日志和系统资源,以保障稳定、安全的代理服务。