CentOS 系统部署 Shadowsocks 服务端全流程教程

前期准备

首先,确认你已具备以下条件:

  • 一台运行 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 服务端,从系统更新、依赖安装、服务部署、配置加固、防火墙管理、安全优化直至客户端连接都已涵盖。部署完成后,建议定期监控服务运行状态、安全日志和系统资源,以保障稳定、安全的代理服务。

评论 添加
暂无评论,来聊两句?