Ask and Learn

通过 PING 选取连接最快的 VPN 服务

作为一个程序员,尤其是一个远程工作的程序员,翻墙的技术可以说是立身之本,作为一个常年翻墙者, Shadowsocks 和 VPN 那都得备着,SS 是自己搭建的,只有一个服务器可以用,没有什么最快的概念, 这里我讲讲 VPN。

VPN 我使用的是云梯的服务,用了两年左右了,以前还写过一个批量创建 VPN 配置的文章, 不过自从入了 MBP 后,官方有 OSX 一键安装的脚本,方便多了。

没有哪个翻墙服务是一一直稳定的,云梯也是一样,虽然有多个服务器可以切换,但一个个试也比较烦, 于是有了今天这篇文章(我需要一个能找出连接相对稳定的服务器的脚本)

因为我自己并不懂 ping 的原理,所以这里用了一个别人写好的脚本修改而来,

https://gist.github.com/greatghoul/24b093637e39f0bd3df3

原理是对每个 ip 执行发四个包,平均咱就时间最快的就认为最稳定,你需要准备一个 hosts.txt 文件, 每行写一个服务器地址,和下载的脚本 check_vpn.py 放在同一目录:

a1.examplevpn.com
a2.examplevpn.com
a3.examplevpn.com
a4.examplevpn.com
a5.examplevpn.com

然后在断开 VPN 的情况下以 sudo 执行以下命令

sudo python check_vpn.py

会得到平均响应时间由低到高排列的结果列表:

host                  lost/total  avg/min/max
a3.examplevpn.com     0/4         108.0587/82.1869/161.1369
a2.examplevpn.com     0/4         108.8945/84.0471/178.5910
a4.examplevpn.com     0/4         118.3317/113.8020/124.9740
a5.examplevpn.com     0/4         143.3793/137.8958/146.4632
a1.examplevpn.com     0/4         164.5067/153.4820/187.5679

然后就可以选择靠前的这几个 VPN 来连接了,相对会比较流畅一些。