CentOS7安装Shadowsocks

安装pip


pip官方安装文档:https://pip.pypa.io/en/stable/installation/

1
2
wget https://bootstrap.pypa.io/get-pip.py
python get-pip.py

安装Shadowsocks


1
pip install shadowsocks

创建Shadowsocks配置文件


配置文件有两种用户模式,分别是单用户多用户

1
vim /etc/shadowsocks.json

单用户

1
2
3
4
5
6
7
8
9
{
"server":"my-server",
"server_port":9001,
"local_port":8888,
"password":"password0",
"timeout":600,
"method":"aes-256-cfb",
"auth": true
}

参数说明
server:配置主机名或服务器IP(IPv4/IPv6),若配置主机名需要在/etc/hosts里添加主机名与服务器IP地址的解析
server_port:服务器端口号
local_port:本地端口号
password:用于加密传输的密码
timeout:连接超时时间(以秒为单位)
method:加密算法,bf-cfbaes-256-cfbdes-cfbrc4等,建议使用aes-256-cfb
auth:一次性认证,设置为true以启用一次性认证功能

多用户

1
2
3
4
5
6
7
8
9
10
11
12
13
14
{
"server":"my-ssserver",
"local_address":"127.0.0.1",
"local_port":8888,
"port_password":{
"9001":"password1",
"9002":"password2",
"9003":"password3",
"9004":"password4"
},
"timeout":600,
"method":"aes-256-cfb",
"fast_open": false
}

参数说明
server:配置主机名或服务器IP(IPv4/IPv6),若配置主机名需要在/etc/hosts里添加主机名与服务器IP地址的解析
local_port:本地端口号
port_password:格式为"服务器端口":"用于加密传输的密码",一行对应一个端口及其密码
timeout:连接超时时间(以秒为单位)
method:加密算法,加密算法,bf-cfbaes-256-cfbdes-cfbrc4等,建议使用aes-256-cfb
auth:一次性认证,设置为true以启用一次性认证功能
fast_open:truefalse。如果你的服务器Linux内核在3.7以上,可以开启fast_open以降低延迟

配置Shadowsocks启动文件


说明
ExecStart参数中配置的ssserver可执行文件路径要根据实际环境修改,可通过执行which ssserver查找

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
cat > /usr/lib/systemd/system/ss.service << EOF
[Unit]
Description=Shadowsocks Server
After=network.target

[Service]
PermissionsStartOnly=true
ExecStartPre=/bin/mkdir -p /run/shadowsocks
ExecStartPre=/bin/chown nobody:nobody /run/shadowsocks
ExecStart=/usr/bin/ssserver -c /etc/shadowsocks.json
Restart=on-abort
User=nobody
Group=nobody
UMask=0027
LimitNOFILE=51200

[Install]
WantedBy=multi-user.target
EOF

启动Shadowsocks服务并设置开机自启


1
2
systemctl start ss
systemctl enable ss

说明
启动Shadowsocks服务时出现类似如下错误,可以参考此链接中的方法进行处理。

1
AttributeError: /usr/local/ssl/lib/libcrypto.so.1.1: undefined symbol: EVP_CIPHER_CTX_cleanup

设置Firewall防火墙


设置允许连接Shadowsocks的服务器端口,协议为TCP/UDP

1
2
3
firewall-cmd --zone=public --add-port=9001/tcp --permanent
firewall-cmd --zone=public --add-port=9001/udp --permanent
firewall-cmd --reload

配置Shadowsocks客户端


客户端下载地址:https://github.com/shadowsocks

配置参考下图: