CentOS 搭建 Shadowsocks (ss)




说到翻墙,就不得不说shadowsocks,由于大陆GFW的封锁,也就是俗称的,所以很多外网上不去,例如Google,Facebook,想要上就必须翻过去,一般将这种方式称为科学上网,科学上网的方式开始时是VPN,后来被封锁的狠了,就催生出了shadowsocks(ss)这样一个专门用来翻墙的工具,而shadowsocksR(ssr)则在ss的基础上更进一步,提供了更强的混淆能力,可以说,ss和ssr就是为了翻墙而生。当然,ss和ssr没有孰优孰劣之分,ssr比ss多了混淆方式。

shadowsocksR的搭建方式可看:ssrpanel:搭建shadowsocksr流量监控和用户管理面板,这个教程里面包含如何搭建ssr,以及如何搭建相应的面板,以实现流量使用详情、用户管理等功能。

但有的时候,没有混淆就是最好的混淆。这样肯定就有人纠结于要用ss还是用ssr了,不过好在ssr也可以兼容ss,所以如果实在无法抉择,就用ssr吧。

安装

直接依次执行下列命令:

1
2
3
yum install python-setuptools
easy_install pip
pip install shadowsocks

即可完成Shadowsocks服务端安装。

配置

加密方式:

1
2
3
4
5
6
7
8
9
10
11
12
#!/bin/bash
# If you suppose your server supports chacha and salsa,
# this script must be run.
wget https://download.libsodium.org/libsodium/releases/libsodium-1.0.15.tar.gz
tar xvzf libsodium-1.0.15.tar.gz
cd libsodium-1.0.15
./configure
make
make install
cd ..
echo /usr/local/lib > /etc/ld.so.conf.d/usr_local_lib.conf
ldconfig

新建 /etc/shadowsocks.json 文件,内容如下:

1
2
3
4
5
6
7
8
9
10
{
"server":"0.0.0.0",
"server_port":8389,
"local_address": "127.0.0.1",
"local_port":1080,
"password":"密码",
"timeout":300,
"method":"chacha20-ietf-poly1305",
"fast_open": false
}

多个账号:

1
2
3
4
5
6
7
8
9
10
11
12
{
"server":"0.0.0.0",
"port_password":{
"8381":"xxxxxxx",
"8382":"xxxxxxx",
"8383":"xxxxxxx",
"8384":"xxxxxxx"
},
"timeout":300,
"method":"chacha20-ietf-poly1305",
"fast_open": false
}

运行

1
ssserver -c /etc/shadowsocks.json
1
2
ssserver -c /etc/shadowsocks.json -d start
ssserver -c /etc/shadowsocks.json -d stop

其他

限速和限制登陆设备数量

iptables -A INPUT -p tcp --sport 8000 -m limit --limit 10/s --limit-burst 10 该选项就是对主机进行限速

日志

1
/var/log/shadowsocks.log

uwp应用

uwp应用由于安全限制,需要手动添加代理例外

将下列文本保存为 批处理 文件执行

1
2
3
4
5
6
@echo OFF
echo 清楚所有程序 && CheckNetIsolation.exe LoopbackExempt -c 1>nul
cd %USERPROFILE%\AppData\Local\Packages
echo 开始添加程序
for /d %%i in (*) do echo 添加程序%%i && CheckNetIsolation.exe LoopbackExempt -a -n = %%i 1>nul
pause

或者设置系统 默认直接连接,即不经过代理:cmd(管理员模式)

1
netsh winhttp import proxy source=ie

问题解决

启动 ssserver -c /etc/shadowsocks.json 时显示:

1
socket.error: [Errno 98] Address already in use

即端口被占用,解决办法就是更改配置文件 /etc/shadowsocks.json 中所使用的端口。

另:查看系统正在占用的端口:

1
netstat -lnp




评论