Ubuntu11.10配置VPN指定路由翻墙

原文:http://wenfengsun.wordpress.com/2012/03/10/ubuntu11-10%e9%85%8d%e7%bd%aevpn%e6%8c%87%e5%ae%9a%e8%b7%af%e7%94%b1%e7%bf%bb%e5%a2%99/

首先,你需要一个vpn的帐号,来通过Ubuntu的vpn进行连接。连接就在网络菜单的vpn连接。
但是,通过vpn默认会将整个vpn配置为默认路由。这个可以在命令行模式下察看,点开term,在命令行输入route,会显示默认路由:
内核 IP 路由表
目标 网关 子网掩码 标志 跃点 引用 使用 接口
default 192.168.1.1 0.0.0.0 UG 0 0 0 wlan0
如果拨号vpn之后,默认路由变化了,则说明vpn抢走了你默认路由,这样所有的网络都会通过vpn访问,这不是我们的目的。
我们想那写墙了的网站,通过vpn访问,于是,我们先修改vpn不抢占默认路由。
选择路由,配置,选定对应的配置文件,点击编辑,弹出的窗口点击路由,弹出的新窗口,选中下方两个checkbox
1. 忽略自动获取的路由
2.仅将此连接用于相对应的网络上的资源
重新连接,发现vpn不再抢占默认路由,随后,我们想让google的访问走我们指定的vpn连接:
我们可以先ping一下google的ip地址:
># ping www.google.com.hk
PING www-hk.l.google.com (74.125.128.94) 56(84) bytes of data.
64 bytes from hg-in-f94.1e100.net (74.125.128.94): icmp_req=1 ttl=44 time=233 ms
看到这个ip地址是:74.125.128.94
通过设置路由来指定这个ip地址的访问通过vpn访问:
首先,vpn连接后,出现的新路由接口是ppp0
192.168.3.1 0.0.0.0 255.255.255.255 UH 0 0 0 ppp0
可以在命令行先行测试:
输入:># route add -net 74.125.128.0 netmask 255.255.255.0 dev ppp0
再次执行route -n,可以看到新配置的路由已经生效:
74.125.128.0 0.0.0.0 255.255.255.0 U 0 0 0 ppp0
如果你的google已经被墙,这时再访问,惊奇的发现又可以访问了。
关于你的ip和子网掩码需要对应配置,例如ip:74.125.128.0,子网掩码最后一个段也需要是0,表示0-255范围。
现在我们可以通过ubuntu的配置界面配置这些路由。
打开网络菜单下的路由配置,选中你的路由配置,点编辑选项,弹出窗口中选择路由,
将74.125.128.0填入第一个字段,255.255.255.0填入第二个,然后勾选最下方的两个checkbox,保存。
重新连接vpn,这时你通过route -n可以发现新配置的路由已经生效了。
好,基本方法有了,如果你需要访问twitter,你需要首先收集twitter的所有host信息,加入/etc/hosts,然后将配置的host中的所有网段都加入到vpn的路由策略中,重新连接路由,就可以访问twitter.com了。
发表评论