背景介绍:
由于近期“伟大的墙”越来越坚固,很多人不得不用上了VPN。但在VPN连接状态下,我们访问国内网站的速度会受到影响,同时也会造成VPN流量的浪费。
有没有可能在系统中把所有天朝的静态路由都加上呢?这样,即使VPN连接状态下,所有的数据请求都会自动分流。
答案是可以的,因为在APNIC上可以获取到所有天朝的公网IP段,我统计了一下总共有4000多个IP段,于是我写了一个脚本将其全部取出再循环添加到系统中,用起来效果真的很不错。
脚本地址:https://github.com/mcsrainbow/shell-scripts/blob/master/scripts/smartroutes/smartroutes.sh
安装部署:
1. 下载smartroutes.sh
2. 下载http://ftp.apnic.net/apnic/stats/apnic/delegated-apnic-latest
3. 创建一个名为smartroutes的alias指向到smartroutes.sh
注意:目前我的脚本仅支持Mac OS X,如果想要运行在Linux上,需要做一些简单的修改。
操作示例:
[dong@Dong-MacBookPro ~]$ smartroutes
SmartRoutes is OFF
[dong@Dong-MacBookPro ~]$ smartroutes on
Adding the routes... Done
[dong@Dong-MacBookPro ~]$ netstat -rn | head -n 20
Routing tables
Internet:
Destination Gateway Flags Refs Use Netif Expire
default 10.192.168.1 UGSc 23 2 ppp0
default 192.168.0.1 UGScI 1 0 en1
1.0.1/24 192.168.0.1 UGSc 0 0 en1
1.0.2/23 192.168.0.1 UGSc 0 0 en1
1.0.8/21 192.168.0.1 UGSc 0 0 en1
1.0.32/19 192.168.0.1 UGSc 0 0 en1
1.1/24 192.168.0.1 UGSc 0 0 en1
1.1.2/23 192.168.0.1 UGSc 0 0 en1
1.1.4/22 192.168.0.1 UGSc 0 0 en1
1.1.8/21 192.168.0.1 UGSc 0 0 en1
1.1.16/20 192.168.0.1 UGSc 0 0 en1
1.1.32/19 192.168.0.1 UGSc 0 0 en1
1.2/23 192.168.0.1 UGSc 0 0 en1
1.2.2/24 192.168.0.1 UGSc 0 0 en1
1.2.4/24 192.168.0.1 UGSc 0 0 en1
1.2.5/24 192.168.0.1 UGSc 0 0 en1
[dong@Dong-MacBookPro ~]$ smartroutes off
Deleting the routes... Done