让路由飞越长城(二)
配置好了高级的路由器,安装了dd-wrt版本的固件,现在还不忙着让路由器翻墙,先在一台机器上测试能通过新路由器能正常上网和翻墙,可以了之后我们再来配置路由器的翻墙功能。
VPN
翻墙基本是两种方式:SSH和VPN。SSH是在浏览器上连接国外的服务器从而可以浏览被和谐的网站,而VPN是让整个设备的网络都连上国外的服务器,包括浏览器和其他任何软件。VPN的好处是可以让其他软件更快速地连接国外服务器,比如要下载android的sdk,国内网络经常半天没有反应,翻墙后下载速度就快多了,但缺点也比较明显,就是访问国内网站的时候会比较慢,使用国内软件比如QQ的时候时不时会掉线。
这里有个比较好的VPN推荐一下Strong VPN(需要翻墙才能访问),这个是一个美国比较好的VPN,连接稳定,访问快速,24小时技术支持,价格也比较合适,有个55美刀/年的套餐,支持PPTP,L2TP和SSTP连接。国内的VPN和SSH我用了几个都不大满意,不是有些网站不能上,就是经常掉线连不上。如果有米的话,还可以去租VPS(虚拟专用服务器),自己搭VPN服务,那速度绝对比直接买的VPN快,甚至还可以自己卖VPN账号。
不管怎样,我们需要一个VPN账号,而且可以支持PPTP连接的,下面会用到。
autoddvpn(需要翻墙才能访问)
autoddvpn是一个解决方案,主要有下面几大功能:
- 让你的dd-wrt路由器可以自由翻墙,路由下的所有设备仿佛在墙外一样,完全感觉不到墙的存在;
- 智能路由,可以自动判断访问的网站是墙内还是墙外的,如果是墙内的就不走VPN,如果是墙外的走VPN;
- 守护进程,监控你的VPN服务是否正常,如果VPN断了可以随时重连。
autoddvpn有2种设置模式:传统模式(classicMode)和优雅模式(graceMode),这里我们主要介绍graceMode。在gracemode中,我们主要看PPTP这一块的内容,因为我们的VPN账号只支持PPTP,不支持OpenVPN(Strong VPN支持PPTP,L2TP,SSTP连接,但dd-wrt不支持L2TP和SSTP)。
- 首先开启路由器的JFFS,这样可以将我们的脚本放到jffs里面(jffs我理解是一块可以挂载的小硬盘);
- 接着按照文档设置DNS(PPTP设置);
- ssh或telnet到你的路由器,登录名和密码是你刷了dd-wrt版本后进入web页面设置的用户名和密码;
1 | $ telnet 192.168.11.1 |
- 登陆后执行下面的命令;
1 | mkdir /jffs/pptp |
一般执行上面的wget命令都是不行的,因为autoddvpn网站要翻墙才能访问,所以可以在pptp目录下创建那3个脚本文件,然后将网站上脚本的内容copy到脚本文件里面,命令更新如下。
1 | mkdir /jffs/pptp |
- 参考文档的
设置PPTP client
部分进行dd-wrt的PPTP客户端设置; - 重启dd-wrt路由器,启动后会产生一个Log文件
/tmp/autoddvpn.log 這是autoddvpn的log
; - 最后关于守护进程的脚本,autoddvpn没有提供,其实就是定时检查一下PPTP连接是否通的,不通的话就重连,下面给一个openvpn的检查脚本,pptp的上网自己查一下;
1 |
|
然后在dd-wrt的web界面的“管理”->“管理”下启用Cron,并且在附加任务中输入:
1 | */2 * * * * /jffs/openvpn/openvpnDaemon.sh |
悬而未决的问题——PPTP无法连接
可能有的人使用VPN进行PPTP连接时会发现连接不上,在windows下是报一个806
的异常,这种可能是你的ISP(网络服务提供商——电信或联通)没有提供这个服务,这种情况下还不知道怎么解决。在网上查过不少资料,说什么设置路由器的PPTP穿透功能,配置1723端口开启等,这些都没有什么效果,希望有高手告知这种情况要怎么解决。谢谢