|
|
写这篇教程之前!先要感谢一下autov p n项目的作者@pahud...@gmail.com,还要感谢提供我账号的大哥@TM(琼—C—知)由于autov p n项目是运行在DD-WRT下,还有就是autov p n的v p nup.sh一些IP已经失效和routes很久都没有更新!造成现在已经不能适用了!所以对这两项进行更新和应用到openwrt。
以下文中要下载的文件到我的博客里面下载! 有于直接从我的博客里面复制的格式看起来会有点不适应!对不住大家了
改进版:http://www.router008.com/OpenWrt-gfwv p n2.html
1.环境前提前:
a.路由器:TP-LINK 842ND V2
b.系统:attitude_adjustment 12.09
c.挂了一个U盘(由于路由器的储存空间有限)
d.需要安装的插件:dnsmasq subversion p p t p
c.需要fan greatwall账号
d.SVN autov p n 代码
e.技术支持: @pahud...@gmail.com@TM(琼—C—知)@houzi @QD
f.技术交流群:251106362
2.软件环境:
opkg updateopkg install subversion-clientopkg install ppp-mod-p p t popkg install luci-proto-ppp
3.SVN autov p n代码:
cd /mnt/sda1/etc #自己根据自己openwrt的配置情况修改svn checkouthttp://autoddv p n.googlecode.com/svn/trunk/ autoddv p n#还有如果SVN不成功的话!可以用TortoiseSVN来获取到本地!然后把文件扔进/etc文件夹里面#
4.给dnsmasq 使用 autoddv p n 的配置:
cd /etcmkdir dnsmasq.dcd dnsmasq.d/ln -s /mnt/sda1/etc/autoddv p n/grace.d/dnsmasq_options ./autoddv p n.conf #给dnsmasq 使用 autoddv p n ,建立一个软链接/etc/init.d/dnsmasq restart
该软链接会在/etc/dnsmasq.d文件夹生成一个autoddv p n.conf文件!autoddv p n.zip
用我提供的这个文件替换掉里面那个!并且在修改/etc/dnsmasq.conf 文件并在后面增加一条指令conf-dif=/etc/dnsmasq.d ##目的是能够调用到dnsmasq.d里的autov p n.conf文件
5.给 autoddv p n 生成 openwrt 能用的配置:
cd /mnt/sda1/etc/autoddv p n/grace.d//bin/grep "^route add" v p nup.sh | /bin/sed "s/ gw / dev /g" | /bin/sed "s/v p nGW/1/g" > /mnt/etc/autoddv p n/gen_route.sh #生成openwrt可用的routes文件
6.配置你的 p p t p v p n:
vi /etc/ppp/options.p p t p####################在后面加上以下的的配置mppe requiredmppe statelessrefuse-paprefuse-chaprefuse-eaprefuse-mschap#### 指明加密的方式,为避免连接不上####vi /etc/config/networkconfig interface 'GFWv p n' option ifname' 'GFWv p n' option proto' 'p p t p' option username '你的用户名' option password '你的密码' option defaultroute '0' option peerdns '0' option server 'v p n 服务器地址'####option defaultroute '0' , option peerdns '0' 设置!因为这里设置 v p n 不要修改路由器的缺省路由!####rebootifconfig #会出现以下的代码来表示v p n已经连接上了##################################p p t p-GFWv p n Link encap oint-to-Point Protocol inet addr:172.16.36.3 P-t-P:172.16.36.1 Mask:255.255.255.255 UP POINTOPOINT RUNNING NOARP MULTICAST MTU:1500 Metric: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界面看系统日志!如果没有出现该字样 :Sep 9 10:31:50 OpenWrt daemon.notice netifd: Interface 'GFWv p n' is now up请自行检查一下自己的配置
7.调用autov p n生成的gen_route.sh配置:
写了一个调用的脚本,来配合openwrt调用autuv p n》》》这也就相当于dd-wrt的v p nup.sh文件《《《 p p t p-GFWv p n.zip
用winscp把脚本扔到ip-up.d里面《没有该文件夹就建立一个,建立方法跟步骤的一样》
cd /etc/ppp/ip-up.dchmod a+x p p t p-GFWv p n
p p t p-GFWv p n 脚本如下: #!/bin/shset -xexport PATH="/bin:/sbin:/usr/sbin:/usr/bin"## configure device name herev p nDEVICE=p p t p-GFWv p ncase $1 in "p p t p-GFWv p n") goto addRoute ;; *) # others exit 0 ;;esacaddRoute:## add route which was generated from autoddv p n/bin/sh /mnt/sda1/etc/autoddv p n/gen_route.sh $v p nDEVICE sleep 10## OpenWrt would do this automatically## /usr/sbin/iptables -t nat -A POSTROUTING -o $v p nDEVICE -j MASQUERADE## /sbin/route add -net $REMOTESUB netmask $REMOTENET dev $v p nDEVICE##### begin batch route ##### # your own custom IP #route add -host 192.168.200.123 dev $v p nDEVICE#route add -net 192.168.0.0/16 dev $v p nDEVICE##### end batch route ##### ## restart dnsmasq/etc/init.d/dnsmasq restartexit 0从上面的脚本你可以看到,我们调用了 /bin/sh /mnt/sda1/etc/autoddv p n/gen_route.sh $v p nDEVICE
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 p p t p-GFWv p n
4.53.82.215 0.0.0.0 255.255.255.255 UH 0 0 0 p p t p-GFWv p n
5.9.126.141 0.0.0.0 255.255.255.255 UH 0 0 0 p p t p-GFWv p n
5.9.135.157 0.0.0.0 255.255.255.255 UH 0 0 0 p p t p-GFWv p n
5.34.241.230 0.0.0.0 255.255.255.255 UH 0 0 0 p p t p-GFWv p n
5.226.176.11 0.0.0.0 255.255.255.255 UH 0 0 0 p p t p-GFWv p n
5.226.178.10 0.0.0.0 255.255.255.255 UH 0 0 0 p p t p-GFWv p n
指定以下的IP走v p n!注意哦!不只是这么多!有上千条!我只是截图前10条的路由表!
路由表可以根据自己的情况进行无限的添加!
我也会不定期地对路由表进行更新和维护!低调行事哦!别张扬!哦 !哈哈哈哈! ENJOY!
9.优点:比较很好的解决国内外线路分流的问题!国内网站的加载速度没有使用v p n的缘故而受到影响!
缺点:所有DNS查询了避免被劫持,必须使用8.8.8.8 Google DNS或OpenDNS, 这样一来跟Google DNS之间必须依赖可靠稳定的v p n连线,所有DNS UDP query封包走了很远的路到DNS查询使得网页打开很慢。这一问题出现在打开国外网页缓慢!环境测试是在移动宽带下测试的!不知道其他的ISP怎么样!还有CDN问题也没有得到很好的解决!这也是以后该项目所要解决的方向!
此教程还未完全结束!由于GFW的原因!dnsmasq options 无法涵盖我们所有被污染的域名!还有我们需要把routes保持最新!由于时间的原因还没来得急写个自动更新脚本!还有没把SVN库建立!所以简便有了脚本也不能进行实时的更新!还有我会在后面推出如何自定义访问和建立自己的dnsmasq和routes我会尽量完成后续的工作!呵呵!我究竟要不要贴一张我成功的照片呢!低调!哎!还是贴吧!以增加那些看我教程者的信心!以便他们继续走下去!come on!
还有就是在使用过程中出现的问题请到改博客进行反馈!我将会在google code单独开一个项目!
#补充:要修改network文件!添加静态DNS!
option dns '8.8.8.8 8.8.4.4 x.x.x.x x.x.x.x' # 后面的两排XX是填写你当地的DNS!这样为了解析的网站速度快点!如果不加会有一些影响!
|
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?立即注册
×
评分
-
查看全部评分
|