说到翻墙,就不得不说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吧。
安装
直接依次执行下列命令:
1yum install python-setuptools
2easy_install pip
3pip install shadowsocks
即可完成Shadowsocks服务端安装。
配置
加密方式:
- 默认加密方式存在已知弱点,所以推荐用
chacha20-ietf-poly1305
加密方式,但是直接用chacha20-ietf-poly1305
加密方式不行,必须安装llibsodium
,将下列文档保存为.sh脚本执行即可:
1#!/bin/bash
2# If you suppose your server supports chacha and salsa,
3# this script must be run.
4wget https://download.libsodium.org/libsodium/releases/libsodium-1.0.15.tar.gz
5tar xvzf libsodium-1.0.15.tar.gz
6cd libsodium-1.0.15
7./configure
8make
9make install
10cd ..
11echo /usr/local/lib > /etc/ld.so.conf.d/usr_local_lib.conf
12ldconfig
新建 /etc/shadowsocks.json
文件,内容如下:
1{
2 "server":"0.0.0.0",
3 "server_port":8389,
4 "local_address": "127.0.0.1",
5 "local_port":1080,
6 "password":"密码",
7 "timeout":300,
8 "method":"chacha20-ietf-poly1305",
9 "fast_open": false
10}
"server"
;服务器IP,不用更改"server_port"
;服务器端口,即用于给用户连接的端口,范围0-65535,任选一个端口,只要不与常用端口冲突就行,不过不推荐使用80\443等网站用端口,也不推荐大多数ss的默认端口8388"local_address"
;本机地址,不用更改"local_port"
;本地端端口,不用更改"password"
;账户的密码"timeout"
;超时时间(秒),不用改"method"
;加密方式,推荐用 chacha20-ietf-poly1305 ,不用默认的 rc4-md5 或者 aes-256-cfb,因为默认的太多人用,容易被墙"fast_open"
;true 或 false。如果服务器 Linux 内核在 3.7+,可以开启 fast_open 以降低延迟。开启方法: echo 3 > > /proc/sys/net/ipv4/tcp_fastopen 开启之后,将 fast_open 的配置设置为 true 即可
多个账号:
1{
2 "server":"0.0.0.0",
3 "port_password":{
4 "8381":"xxxxxxx",
5 "8382":"xxxxxxx",
6 "8383":"xxxxxxx",
7 "8384":"xxxxxxx"
8 },
9 "timeout":300,
10 "method":"chacha20-ietf-poly1305",
11 "fast_open": false
12}
- 脚本使用json语言,每一行必须以 逗号 结尾,但最后一行不用逗号结尾
运行
- 前台运行(Ctrl+C或者关闭终端服务会自动停止):
1ssserver -c /etc/shadowsocks.json
- 后台运行(推荐,关闭终端后服务会继续运行):
1ssserver -c /etc/shadowsocks.json -d start
2ssserver -c /etc/shadowsocks.json -d stop
其他
限速和限制登陆设备数量
iptables -A INPUT -p tcp --sport 8000 -m limit --limit 10/s --limit-burst 10
该选项就是对主机进行限速
--limit 10/s
:10/s是每秒发个10个包,网卡的MTU值一般为1500B,换算成KB,1500/1024=1.46KB,也就是每个包大小理想情况下是1.46KB,每秒10个包,那就是每秒1.46x10=14.6KB/S--limit-burst 10
:最大峰值也是10个包
日志
1/var/log/shadowsocks.log
uwp应用
uwp应用由于安全限制,需要手动添加代理例外
将下列文本保存为 批处理
文件执行
1@echo OFF
2echo 清楚所有程序 && CheckNetIsolation.exe LoopbackExempt -c 1>nul
3cd %USERPROFILE%\AppData\Local\Packages
4echo 开始添加程序
5for /d %%i in (*) do echo 添加程序%%i && CheckNetIsolation.exe LoopbackExempt -a -n = %%i 1>nul
6pause
或者设置系统 默认直接连接
,即不经过代理:cmd(管理员模式)
1netsh winhttp import proxy source=ie
问题解决
- 注意:为方便看到日志,在出错的时候建议用
ssserver -c /etc/shadowsocks.json
启动ss,以便看到运行日志。
启动 ssserver -c /etc/shadowsocks.json
时显示:
1socket.error: [Errno 98] Address already in use
即端口被占用,解决办法就是更改配置文件 /etc/shadowsocks.json 中所使用的端口。
另:查看系统正在占用的端口:
1netstat -lnp