Everything_i_do 发表于 2014-9-9 20:38

翻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的域名被污染!

血洗刀锋 发表于 2014-9-9 20:50

{:5_241:}大神。二楼我的

liulcq 发表于 2014-9-12 12:45

额,恩山飘到ANYWLAN的路过,楼主NB

你吗好 发表于 2014-9-12 15:14

这个确实很不错的说。

newwig 发表于 2014-11-28 00:17

学习,感谢分享~~~~~~~

wa407 发表于 2015-2-10 12:44

FQ账号怎么搞到啊?

qma10 发表于 2015-3-30 12:18

这么好的贴沉了这么久。绑定。。

zhanggh新手 发表于 2015-7-5 18:25

值得期待,就是账号不好弄了现在....

kintel 发表于 2015-8-10 12:02

谢谢分享,pptp方便
页: [1]
查看完整版本: 翻q篇(一)OpenWRT PPTP/VPN的配置以及国内外线路自动分流