Shadowsocks 代理配置

本部分记录在 Linux 服务器(以亚马逊 EC2 为例)上通过 pip 安装 Shadowsocks 服务端,并使用 JSON 配置文件启动的全过程。适用场景:需要在客户端与远端服务器之间建立基于 SOCKS5 的加密代理转发通道,属于正向代理的一种实现。

一、前提条件

  • 拥有一台可访问的服务器(如亚马逊 EC2 实例);
  • 服务器安全组/防火墙已放行为 Shadowsocks 准备的端口(下文示例使用 1443,建议不要使用 443,以免与 HTTPS 冲突)。

二、安装 Python 与 setuptools

大多数 Linux 系统已自带 Python。安装 python-setuptools 以获得 easy_install:

yum install -y python-setuptools

三、安装 pip

easy_install pip

四、通过 pip 安装 Shadowsocks

pip install shadowsocks

安装完成后,可通过以下命令查看帮助信息确认安装成功:

ssserver -h

五、创建配置目录

mkdir /etc/shadowsocks

六、编辑配置文件

vim /etc/shadowsocks/config.json

写入以下内容:

{
    "server": "0.0.0.0",
    "server_port": 1443,
    "local_address": "127.0.0.1",
    "local_port": 1080,
    "password": "XXX",
    "timeout": 300,
    "method": "aes-256-cfb",
    "fast_open": false,
    "workers": 1
}

字段说明:

字段 含义
server 服务端监听地址,0.0.0.0 表示监听所有网卡
server_port 服务端监听端口,需在云服务商安全组中放行,建议不要用 443
local_address 本地绑定地址
local_port 本地端口
password 客户端连接所需密码,请替换为强密码
timeout 超时时间(秒)
method 加密方式,示例为 aes-256-cfb
fast_open 是否启用 TCP Fast Open
workers 工作进程数

七、启动服务端

ssserver -c /etc/shadowsocks/config.json -d start

参数说明:

  • -c 指定配置文件路径;
  • -d start 以守护进程方式后台启动;
  • 对应地,-d stop 可停止服务。

至此,Linux 下 Shadowsocks 服务端配置完成。

八、开机自启

可将启动命令写入 /etc/rc.local 实现开机自动运行:

# echo "ssserver -c /etc/shadowsocks/config.json -d start" >> /etc/rc.local
# chmod +x /etc/rc.local

九、客户端配置

客户端使用相同的服务器地址、端口、密码和加密方式即可连接:

配置项 取值
服务器地址 服务器的公网 IP
服务器端口 1443(与 server_port 一致)
密码 与 password 一致
加密方式 与 method 一致,如 aes-256-cfb
本地监听端口 1080(本地 SOCKS5 代理端口)

客户端启动后会在本机监听 127.0.0.1:1080 的 SOCKS5 代理,浏览器或其他程序指向该地址即可使用。

十、常见问题

现象 排查思路
客户端连不上服务端 检查云服务商安全组/防火墙是否放行 server_port(TCP 与 UDP);netstat -tnlp | grep 1443 确认服务已监听
ssserver 命令找不到 确认 pip install shadowsocks 成功;检查 pip 安装路径是否在 PATH 中
加密方式报错 部分新版 OpenSSL 移除了旧算法,导致 aes-256-cfb 不可用,可改用其他受支持的加密方式
端口冲突 不要使用 443,以免与 HTTPS 服务冲突
服务异常退出 查看启动时输出的日志信息,确认配置文件 JSON 格式正确(无多余逗号、引号完整)

原有课后题目

动手练习

最后修改:2026 年 09 月 20 日
如果觉得我的文章对你有用,请随意赞赏