shadowsocks搭建与一键安装脚本

centos搭建shadowsocks步骤

安装pip(pip是python的包管理工具)

执行如下命令:

1
2
3
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

安装完成之后创建shadowsocks配置文件/etc/shadowsocks.json:

1
2
3
4
5
6
7
8
9
10
11
{
"server": "0.0.0.0",
"local_address": "127.0.0.1",
"local_port": 1080,
"port_password": {
"8080": "填写密码",
"8081": "填写密码"
},
"timeout": 600,
"method": "aes-256-cfb"
}

说明:

method为加密方法,可选aes-128-cfb, aes-192-cfb, aes-256-cfb, bf-cfb, cast5-cfb, des-cfb, rc4-md5, chacha20, salsa20, rc4, table

port_password为端口对应的密码,可使用密码生成工具生成一个随机密码

如果你不需要配置多个端口的话,仅配置单个端口,则可以使用以下配置:

1
2
3
4
5
6
{
"server": "0.0.0.0",
"server_port": 8080,
"password": "填写密码",
"method": "aes-256-cfb"
}

说明:

server_port为服务监听端口

password为密码

配置自启动

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
vim /etc/systemd/system/shadowsocks.service
[Unit]
Description=Shadowsocks

[Service]
TimeoutStartSec=0
ExecStart=/usr/bin/ssserver -c /etc/shadowsocks.json

[Install]
WantedBy=multi-user.target

systemctl enable shadowsocks
systemctl start shadowsocks
systemctl status shadowsocks -l
配置完成之后确认服务启动成功后,配置防火墙规则,开放配置的端口。

一键搭建脚本

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
#!/bin/bash
# Install Shadowsocks on CentOS 7

echo "Installing Shadowsocks..."

random-string()
{
cat /dev/urandom | tr -dc 'a-zA-Z0-9' | fold -w ${1:-32} | head -n 1
}

CONFIG_FILE=/etc/shadowsocks.json
SERVICE_FILE=/etc/systemd/system/shadowsocks.service
SS_PASSWORD=$(random-string 32)
SS_PORT=8388
SS_METHOD=aes-256-cfb
SS_IP=`ip route get 1 | awk '{print $NF;exit}'`
GET_PIP_FILE=/tmp/get-pip.py

# install pip
curl "https://bootstrap.pypa.io/get-pip.py" -o "${GET_PIP_FILE}"
python ${GET_PIP_FILE}

# install shadowsocks
pip install --upgrade pip
pip install shadowsocks

# create shadowsocls config
cat <<EOF | sudo tee ${CONFIG_FILE}
{
"server": "0.0.0.0",
"server_port": ${SS_PORT},
"password": "${SS_PASSWORD}",
"method": "${SS_METHOD}"
}
EOF

# create service
cat <<EOF | sudo tee ${SERVICE_FILE}
[Unit]
Description=Shadowsocks

[Service]
TimeoutStartSec=0
ExecStart=/usr/bin/ssserver -c ${CONFIG_FILE}

[Install]
WantedBy=multi-user.target
EOF

# start service
systemctl enable shadowsocks
systemctl start shadowsocks

# view service status
sleep 5
systemctl status shadowsocks -l

echo "================================"
echo ""
echo "Congratulations! Shadowsocks has been installed on your system."
echo "You shadowsocks connection info:"
echo "--------------------------------"
echo "server: ${SS_IP}"
echo "server_port: ${SS_PORT}"
echo "password: ${SS_PASSWORD}"
echo "method: ${SS_METHOD}"
echo "--------------------------------"

Windows客户端下载地址:

https://github.com/shadowsocks/shadowsocks-windows/releases

Mac客户端下载地址:

https://github.com/shadowsocks/ShadowsocksX-NG/releases

Android客户端下载地址:

https://github.com/shadowsocks/shadowsocks-android/releases

参考https://blog.51cto.com/zero01/2064660