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 格式正确(无多余逗号、引号完整) |
此处评论已关闭