CentOS 7 安装 shadowsocks 客户端

安装 pip

pip 是 Python 的包管理工具,这里我们用 pip 安装 shadowsocks。

方法一:使用 yum 安装

1
2
yum -y install epel-release
yum -y install python-pip

安装好 pip 后,可以输入 which pip 确认一下

方法二:手动安装

1
2
curl "https://bootstrap.pypa.io/get-pip.py" -o "get-pip.py"
python get-pip.py

安装 Shadowsocks 客户端

安装

1
2
pip install --upgrade pip
pip install shadowsocks

配置

新建配置文件 /etc/shadowsocks/shadowsocks.json

1
2
mkdir /etc/shadowsocks
vi /etc/shadowsocks/shadowsocks.json

添加配置信息:

1
2
3
4
5
6
7
8
9
10
11
{
"server": "x.x.x.x", # 你的 ss 服务器 ip
"server_port": 0, # 你的 ss 服务器端口
"local_address": "127.0.0.1", # 本地 ip
"local_port": 1080, # 本地端口
"password": "password", # 连接 ss 密码
"timeout": 300, # 等待超时
"method": "aes-256-cfb", # 加密方式
"fast_open": false, # 可选开启 fast_open 以降低延迟
"workers": 1 # 工作线程数
}

开启 fast_open 可以降低延迟,但要求Linux内核在3.7+。开启方法:

1
echo 3 > /proc/sys/net/ipv4/tcp_fastopen

启动

新建启动脚本文件 /etc/systemd/system/shadowsocks.service,内容如下:

1
2
3
4
5
6
7
[Unit]
Description=Shadowsocks
[Service]
TimeoutStartSec=0
ExecStart=/usr/bin/sslocal -c /etc/shadowsocks/shadowsocks.json
[Install]
WantedBy=multi-user.target

启动 Shadowsocks 客户端:

1
2
3
systemctl enable shadowsocks.service
systemctl start shadowsocks.service
systemctl status shadowsocks.service

测试

验证 Shadowsocks 客户端是否正常运行:

1
curl --socks5 127.0.0.1:1080 http://httpbin.org/ip`

若 Shadowsock 客户端已正常运行,则结果如下:

1
2
3
{
"origin": "x.x.x.x" # 你的 ss 服务器 ip
}

安装 Privoxy

Shadowsocks 是一个 socket5 服务,我们需要使用 Privoxy 把流量转到 http/https 上。

安装

1
yum -y install privoxy

配置

修改配置文件 /etc/privoxy/config

1
vi /etc/privoxy/config

确保如下内容没有被注释掉:

1
2
listen-address 127.0.0.1:8118 # 8118 是默认端口,不用改
forward-socks5t / 127.0.0.1:1080 . # 转发到本地端口

设置 http/https 代理,修改配置文件 /etc/profile

1
vi /etc/profile

添加如下信息:

1
2
export http_proxy=http://127.0.0.1:8118
export https_proxy=http://127.0.0.1:8118

运行一下:

1
source /etc/profile

注:端口和 privoxy 中的监听端口保持一致

启动

1
2
3
systemctl enable privoxy
systemctl start privoxy
systemctl status privoxy

测试

1
curl www.google.com

返回一大堆 html 则说明 shadowsocks 正常工作了。

常见问题

如何共享给局域网其它电脑

修改配置文件 /etc/shadowsocks/shadowsocks.json,将下面内容:

1
"local_address": "127.0.0.1"

修改为:

1
"local_address": "0.0.0.0"

如何暂时禁掉代理

如果不需要用代理了,记得把 /etc/profile 里的配置注释掉,不然会一直走代理流量。