2011年12月28日星期三

Tomato PPTP VPN 智能路由 自动切换

Tomato PPTP VPN 智能路由 自动切换:

由于Google在天朝抽风越来越频繁,不得不将Google全站加入到自动切换代理的列表中。最早用来Fan土*啬的工具是GAE,在多APPID多线程下有着不俗的速度。但不知是Chrome下自动切换代理插件的效率问题还是GAE的IP会不定期抽风,经常会出现连接超时、页面响应慢、502错误等。后来换至SSH+GAE,Google、脸书、推特走SSH,其它被土*啬网站走GAE。SSH+GAE配合虽说极品,但每台电脑都这样配置下来,还是略显麻烦。作为一个半吊子的技术宅,自然不会满足。

其实要求很简单,只要能够保证Google、脸书、推特走VPN流量以保证响应速度,其它网站用GAE响应慢点也无妨。突然想到了之前看到的Autoddvpn项目,决定通过路由表的配置来实现自动切换。

正文开始





首先需要一台能刷第三方固件的路由,这里以Tomato固件为例,首先配置好PPTP客户端功能,只用按说明填入服务器地址、用户名、密码即可。在VPN智能路由处选择自定义路由表,路由表的配置需手动填写。

PPTP.png

关于路由表:

自定义路由表中填写的是带掩码位IP段,若访问自定义路由表中的IP段则通过VPN连接,关于各大网站的IP段发现了一个很好的网站http://www.ipduan.com/ 在这里可以查询各大网站使用的IP范围,如图

IPduan.png

如何将IP范围转换为带掩码位的IP段请自行脑补,在这里提供已经换算好的Google、脸书、推特IP地址段:


Google
==================
173.194.0.0/16
198.108.100.192/28
209.185.108.128/25
209.85.128.0/17
216.109.75.80/28
216.239.32.0/19
216.33.229.144/29
216.33.229.160/29
64.233.160.0/19
64.41.221.192/28
64.68.64.64/26
64.68.80.0/21
64.68.88.0/21
66.102.0.0/20
66.249.64.0/19
70.32.128.0/19
72.14.192.0/18
72.14.192.0/16

Facebook
==================
173.252.64.0/18
204.15.20.0/22
66.220.144.0/20
69.171.224.0/19
69.63.176.0/20
74.119.76.0/20

Twitter
==================
199.16.156.0/22
199.59.148.0/22

将这些IP地址段加入到PPTP客户端的自定义路由表中,重启路由使路由表生效。

但由于国内DNS污染问题,会导致部分被墙网站域名无法正确解析,可开启Tomato中截获DNS端口(UDP 53)功能,在DNSmasq中指定被墙网站使用国外DNS,同时在自定义路由表中添加DNS地址,让DNS解析使用VPN加密通道来避免DNS污染。

Google Public DNS IP为:8.8.8.8及8.8.4.4,OpenDNS IP为208.67.222.222及208.67.220.220

若使用Google Public DNS,DNSmasq的规则为:


server=/google.com/8.8.8.8
server=/google.com.hk/8.8.8.8
server=/googleusercontent.com/8.8.8.8
server=/ggpht.com/8.8.8.8
server=/facebook.com/8.8.4.4
server=/fbcdn.net/8.8.4.4
server=/twitter.com/8.8.8.8
server=/twimg.com/8.8.8.8

注意,自定义DNS后一定要将DNS服务器IP添加至自定义路由表中

重启路由,清空电脑的DNS缓存,至此,所有连接到此路由的设备均可以正常的访问Google、脸书以及推特了。

验证:

使用Tracert命令追踪Google、脸书或推特的域名,若出现VPN网关说明成功。

tracert.png

没有评论:

发表评论