最近用 ss 上网的速度越来越慢,工作日晚上 Google 都很难连上。ping 了下服务器,发现都在 300、400 ms,或者 time_out,得想些方法加速一下。
后来发现 ss 支持中继,那么只要有一个服务器,连接自己电脑和 ss 服务器都很快的话就能实现加速。下面选了阿里云作为中继服务器进行实践。
1
|
客户端 < - > 中继服务器 < - > Shadowsocks 服务器
|
在自己电脑上 ping 中继服务器,中继服务器 ping ss 服务器,延迟分别为 10+ ms、60+ ms。阿里云的出口带宽果然不一样。加速条件满足,开始进入安装配置。
HAProxy
简单介绍下 HAProxy,HAProxy 是一个高效的负载均衡软件,可以实现 TCP/HTTP 的代理。这里使用它将我们发给它的请求转发给 ss 服务器。
安装
1 |
// 以 CentOS 7 为例 |
配置
编辑 /etc/haproxy/haproxy.cfg
,保存以下内容
1 |
global |
其中,*:8388
中的 8388 是中继服务器接受请求的端口,222.222.222.222:2222
是 ss 服务器的 IP 地址加端口号。
然后执行
1
|
service haproxy restart
|
HAProxy 就会在后台进行启动。可以使用 ps -ef
查看进程,lsof -i
查看端口占用情况来验证 HAProxy 是否已经运行。若无法连接中继服务器,使用 iptables -L
查看防火墙规则是否有问题。
客户端的配置,只要将原来配置的 ip 地址和端口更换成中继服务器的 ip 地址和端口号就可以了。
未解之迷
加速之后,公司电脑和手机使用都没问题,个人电脑却死活连不上去,一直显示 ERR_CONNECTION_CLOSED
,将原来的 Shadowsocks Mac 客户端替换成 Shadowsocks-libev
之后才行,但明明公司电脑使用的客户端是一样的。
其他加速方法
除 HAProxy 加速之外,还可以使用微林加速,具体可以参考代码家的提速 Shadowsocks。还有个更偷懒的方法,直接购买 CN2 线路的 Shadowsocks。