翻q篇(一)OpenWRT PPTP/VPN的配置以及国内外线路自动分流
写这篇教程之前!先要感谢一下autovpn项目的作者@pahud...@gmail.com,还要感谢提供我账号的大哥@TM(琼—C—知)由于autovpn项目是运行在DD-WRT下,还有就是autovpn的vpnup.sh一些IP已经失效和routes很久都没有更新!造成现在已经不能适用了!所以对这两项进行更新和应用到openwrt。以下文中要下载的文件到我的博客里面下载!www.router008.com有于直接从我的博客里面复制的格式看起来会有点不适应!对不住大家了
1.环境前提前:
a.路由器:TP-LINK 842ND V2
b.系统:attitude_adjustment 12.09
c.挂了一个U盘(由于路由器的储存空间有限)
d.需要安装的插件:dnsmasq subversion pptp
c.需要翻q账号
d.SVN autovpn 代码
e.技术支持: @pahud...@gmail.com@TM(琼—C—知)@houzi @QD
f.技术交流群:251106362
2.软件环境:
opkg updateopkg install subversion-clientopkg install ppp-mod-pptpopkg install luci-proto-ppp
3.SVNautovpn代码:
cd /mnt/sda1/etc #自己根据自己openwrt的配置情况修改svn checkout http://autoddvpn.googlecode.com/svn/trunk/autoddvpn#还有如果SVN不成功的话!可以用TortoiseSVN来获取到本地!然后把文件扔进/etc文件夹里面#
4.给dnsmasq 使用 autoddvpn 的配置:
cd /etcmkdir dnsmasq.dcd dnsmasq.d/ln -s/mnt/sda1/etc/autoddvpn/grace.d/dnsmasq_options./autoddvpn.conf #给dnsmasq 使用 autoddvpn ,建立一个软链接/etc/init.d/dnsmasq restart
该软链接会在/etc/dnsmasq.d文件夹生成一个autoddvpn.conf文件!autoddvpn.zip
用我提供的这个文件替换掉里面那个!并且在修改/etc/dnsmasq.conf 文件并在后面增加一条指令conf-dif=/etc/dnsmasq.d ##目的是能够调用到dnsmasq.d里的autovpn.conf文件
5.给 autoddvpn 生成 openwrt 能用的配置:
cd /mnt/sda1/etc/autoddvpn/grace.d//bin/grep "^route add" vpnup.sh |/bin/sed "s/ gw / dev /g" | /bin/sed "s/VPNGW/1/g" > /mnt/etc/autoddvpn/gen_route.sh #生成openwrt可用的routes文件
6.配置你的 PPTP VPN:
vi /etc/ppp/options.pptp####################在后面加上以下的的配置mppe requiredmppe statelessrefuse-paprefuse-chaprefuse-eaprefuse-mschap#### 指明加密的方式,为避免连接不上####vi /etc/config/networkconfig interface 'GFWVPN' option ifname' 'GFWVPN' option proto' 'pptp' option username '你的用户名' option password '你的密码' option defaultroute '0' option peerdns '0' option server 'VPN 服务器地址'####option defaultroute '0' , option peerdns '0' 设置!因为这里设置 VPN 不要修改路由器的缺省路由!####rebootifconfig #会出现以下的代码来表示VPN已经连接上了##################################pptp-GFWVPN Link encap:Point-to-Point Protocol inet addr:172.16.36.3P-t-P:172.16.36.1Mask:255.255.255.255 UP POINTOPOINT RUNNING NOARP MULTICASTMTU:1500Metric:1 RX packets:380 errors:0 dropped:0 overruns:0 frame:0 TX packets:425 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:3 RX bytes:290863 (284.0 KiB)TX bytes:174267 (170.1 KiB)#若果还是看不到连接成功的信息#
你可到LUCI界面看系统日志!如果没有出现该字样 :Sep9 10:31:50 OpenWrt daemon.notice netifd: Interface 'GFWVPN' is now up请自行检查一下自己的配置
7.调用autovpn生成的gen_route.sh配置:
写了一个调用的脚本,来配合openwrt调用autuvpn》》》这也就相当于dd-wrt的vpnup.sh文件《《《 pptp-GFWVPN.zip
用winscp把脚本扔到ip-up.d里面《没有该文件夹就建立一个,建立方法跟步骤的一样》
cd /etc/ppp/ip-up.dchmod a+x pptp-GFWVPN
pptp-GFWVPN脚本如下: #!/bin/shset -xexport PATH="/bin:/sbin:/usr/sbin:/usr/bin"## configure device name hereVPNDEVICE=pptp-GFWVPNcase $1 in "pptp-GFWVPN") goto addRoute ;; *) # others exit 0 ;;esacaddRoute:## add route which was generated from autoddvpn/bin/sh /mnt/sda1/etc/autoddvpn/gen_route.sh $VPNDEVICE sleep 10## OpenWrt would do this automatically## /usr/sbin/iptables -t nat -A POSTROUTING -o $VPNDEVICE -j MASQUERADE## /sbin/route add -net $REMOTESUB netmask $REMOTENET dev $VPNDEVICE##### begin batch route ##### # your own custom IP #route add -host 192.168.200.123 dev $VPNDEVICE#route add -net 192.168.0.0/16dev $VPNDEVICE##### end batch route ##### ## restart dnsmasq/etc/init.d/dnsmasq restartexit 0从上面的脚本你可以看到,我们调用了 /bin/sh /mnt/sda1/etc/autoddvpn/gen_route.sh $VPNDEVICE
8.重启路由器,然后执行route -n | head -n 10 会输出以下的路由表规则:
root@OpenWrt:~#route -n | head -n 10
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 10.1.118.1 0.0.0.0 UG 0 0 0 pppoe-wan
4.28.99.0 0.0.0.0 255.255.255.0 U 0 0 0 pptp-GFWVPN
4.53.82.215 0.0.0.0 255.255.255.255 UH 0 0 0 pptp-GFWVPN
5.9.126.141 0.0.0.0 255.255.255.255 UH 0 0 0 pptp-GFWVPN
5.9.135.157 0.0.0.0 255.255.255.255 UH 0 0 0 pptp-GFWVPN
5.34.241.230 0.0.0.0 255.255.255.255 UH 0 0 0 pptp-GFWVPN
5.226.176.11 0.0.0.0 255.255.255.255 UH 0 0 0 pptp-GFWVPN
5.226.178.10 0.0.0.0 255.255.255.255 UH 0 0 0 pptp-GFWVPN
指定以下的IP走VPN!注意哦!不只是这么多!有上千条!我只是截图前10条的路由表!
路由表可以根据自己的情况进行无限的添加!
我也会不定期地对路由表进行更新和维护!低调行事哦!别张扬!哦 !哈哈哈哈!http://www.router008.com/admin/editor/plugins/emoticons/images/0.gifENJOY!
9.优点:比较很好的解决国内外线路分流的问题!国内网站的加载速度没有使用VPN的缘故而受到影响!
缺点:所有DNS查询了避免被劫持,必须使用8.8.8.8 Google DNS或OpenDNS, 这样一来跟Google DNS之间必须依赖可靠稳定的VPN连线,所有DNS UDP query封包走了很远的路到DNS查询使得网页打开很慢。这一问题出现在打开国外网页缓慢!环境测试是在移动宽带下测试的!不知道其他的ISP怎么样!还有CDN问题也没有得到很好的解决!这也是以后该项目所要解决的方向!
此教程还未完全结束!由于GFW的原因!dnsmasq options 无法涵盖我们所有被污染的域名!还有我们需要把routes保持最新!由于时间的原因还没来得急写个自动更新脚本!还有没把SVN库建立!所以简便有了脚本也不能进行实时的更新!还有我会在后面推出如何自定义访问和建立自己的dnsmasq和routes我会尽量完成后续的工作!呵呵!我究竟要不要贴一张我成功的照片呢!低调!哎!还是贴吧!以增加那些看我教程者的信心!以便他们继续走下去!come on!
还有就是在使用过程中出现的问题请到改博客进行反馈!我将会在google code单独开一个项目!
注意哦!千万不要用国内的浏览器去打开境外的有些网站!避免DNS的域名被污染! {:5_241:}大神。二楼我的 额,恩山飘到ANYWLAN的路过,楼主NB 这个确实很不错的说。 学习,感谢分享~~~~~~~ FQ账号怎么搞到啊? 这么好的贴沉了这么久。绑定。。 值得期待,就是账号不好弄了现在.... 谢谢分享,pptp方便
页:
[1]