vim /etc/config/dhcp
找到 option resolvfile 选项,替换为:
option resolvfile '/etc/config/sec_resolv.conf'
4.配置 PPTP
a.安装 ppp-mod-pptp
opkg updateopkg install ppp-mod-pptp
如果需要 LuCI 支持(推荐):
opkg install luci-proto-ppp
b.去配置 vpn 接口,要编辑 /etc/config/network 文件,理应已经存在以下内容(要是不存在,就得插入),还要去配置其中的 server、username 以及 password:
config 'interface' 'vpn' option 'ifname''pptp-vpn' option 'proto' 'pptp' option 'username''vpnusername' option 'password''vpnpassword' option 'server''vpn.example.org or ipaddress' option 'buffering' '1'
c.去到Network那儿,进入其中的Firewall,接着将vpn添加进wan zone里面 ,呈现出来的效果跟图上所描绘的一样。

d.走进 Network ,来到 Interfaces ,这个时候呢,理应已然能够瞅见 虚拟专用网络 Interface ,而且能够进行连接,呈现出来的效果就如同图示这般。

e.此刻于这台本机之上,对www.google.com进行traceroute操作,理应能够获取到跟以下这般相类似的结果:
FL-MBP:~ fatlyz$ traceroute www.google.com traceroute: Warning: www.google.com has multiple addresses; using 74.125.239.113 traceroute to www.google.com (74.125.239.113), 64 hops max, 52 byte packets 1fc_r0.lan (192.168.7.1)2.266 ms0.999 ms0.946 ms 210.7.0.1 (10.7.0.1)189.259 ms187.813 ms188.368 ms 323.92.24.2 (23.92.24.2)189.847 ms190.489 ms188.939 ms 410ge7-6.core3.fmt2.he.net (65.49.10.217)188.508 ms192.216 ms202.863 ms 510ge10-1.core1.sjc2.he.net (184.105.222.14)195.695 ms195.691 ms284.242 ms 672.14.219.161 (72.14.219.161)189.196 ms192.287 ms193.220 ms 7216.239.49.170 (216.239.49.170)192.496 ms188.547 ms189.881 ms 866.249.95.29 (66.249.95.29)190.125 ms190.335 ms190.026 ms 9nuq05s01-in-f17.1e100.net (74.125.239.113)189.804 ms190.556 ms190.242 ms
能够看得出,在这当中,第二跳是那基于虚拟专用网络构建的网关,并且呢,要是去执行traceroute www.baidu.com这个指令,那么第二跳理应也是呈现出相同的结果。
在这个时候,已然能够去进行对Google、Baidu等这类国内外站点的访问操作了。
5.配置 chnroutes
a.去到chnroutes项目的那个下载页面,也就是http://chnroutes-dl.appspot.com/ ,去下载linux.zip ,然后进行解压。
b.将ip – pre – up改名为chnroutes.sh,开启编辑,于if。
! -e /tmp/vpn_oldgw
在“; then”之前,插入下面这些代码,目的是防止 ppp 连接脚本会因为重复执行,从而造成重复添加路由表项的情况出现:
if [ $OLDGW == 'x.x.x.x' ]; thenexit 0 fi
里头存在着这样一个情况,x.x.x.x身为虚拟专用网络的网关;能够先于本机连接上去;之后去查看一下网关对应的地址。
c.ssh 连接到路由器,执行以下命令:
cd /etc/config/
mkdir pptp-vpn
cd pptp-vpn
vim chnroutes.sh
于vim里头,将编辑好了的chnroutes.sh粘贴进去,当然啦,也能够借助ssh直接把chnroutes.sh文件传递过去,抑或是上传至某个地方,之后再通过wget下载。
执行以下命令,设置权限为可执行:
chmod a+x chnroutes.sh
d.动用 vim 来对 /lib/netifd/ppp-up 文件予以编辑。
vim /lib/netifd/ppp-up
-d /etc/ppp/ip-up.d
这一行前插入内容,以使 ppp 连接脚本能够被执行,确保,&& { ,以上 ,这些 ,做到 ,达成。
sh /etc/config/pptp-vpn/chnroutes.sh
e.重新启动路由,在启动完毕好了之后,进入LuCI去查看接口状态,等到WAN和虚拟专用网络都成功连接以后,通过ssh进入,执行route -n | head -n 10,效果应当类似这样子:
root@FC_R0:/etc/config# route -n | head -n 10 Kernel IP routing table Destination Gateway Genmask Flags Metric RefUse Iface 0.0.0.0 10.7.0.10.0.0.0 UG000 pptp-vpn 1.0.1.0 58.111.43.1 255.255.255.0 UG000 pppoe-wan 1.0.2.0 58.111.43.1 255.255.254.0 UG000 pppoe-wan 1.0.8.0 58.111.43.1 255.255.248.0 UG000 pppoe-wan 1.0.32.058.111.43.1 255.255.224.0 UG000 pppoe-wan 1.1.0.0 58.111.43.1 255.255.255.0 UG000 pppoe-wan 1.1.2.0 58.111.43.1 255.255.254.0 UG000 pppoe-wan 1.1.4.0 58.111.43.1 255.255.252.0 UG000 pppoe-wan
当中,Destination呈现为0.0.0.0的那个,属于默认路由,网关是虚拟专用网络网关,这意味着,默认流量全都经由虚拟专用网络,然而,以下的条目,把目的是国内的网段,都导向了ISP所提供的网关。
到此为止,PPTP 虚拟专用网络,以及 chnroutes,已然配置完成了。
6.配置 虚拟专用网络 断线自动重连
a.进行创建,针对 /etc/config/pptp – vpn/status – check.sh 这个文件!
vim /etc/config/pptp-vpn/status-check.sh
将以下内容粘贴到vim里,这个脚本用于检测虚拟专用网络连接状况,当出现断线情况时,会先断开WAN以及虚拟专用网络接口,历时10秒后重新连接WAN,接着在30秒后再度连接虚拟专用网络。
#!/bin/sh if [ -f "/tmp/vpn_status_check.lock" ] then exit 0 fi 虚拟专用网络_CONN=`ifconfig | grep pptp-vpn` if [ -z "$虚拟专用网络_CONN" ] then touch /tmp/vpn_status_check.lock echo WAN_虚拟专用网络_RECONNECT at: >> /tmp/vpn_status_check_reconn.log date >> /tmp/vpn_status_check_reconn.log ifdown vpn ifdown wan sleep 10 ifup wan sleep 30 ifdown vpn sleep 10 ifup vpn sleep 40 rm /tmp/vpn_status_check.lock else date > /tmp/vpn_status_check.log fi
执行以下命令,设置权限为可执行:
chmod a+x /etc/config/pptp-vpn/status-check.sh
b.去到LuCI里边儿的 System -> 把Scheduled Tasks找出来,往里面填进下面这些内容,填完之后保存一下:
*/1 * * * * /etc/config/pptp-vpn/status-check.sh
以上实际上实行了对 cron 配置的编辑操作,该 cron 会每分钟开展运行检测以及重连脚本的动作,随后重启 cron:
/etc/init.d/cron restart
c.静静地等待几分钟,去查看一下 /tmp 目录,理应能够看到 vpn_oldgw 和 vpn_status_check.log 文件,再去查看 vpn_status_check.log 文件,可以看到最近一次检测虚拟专用网络连接状态的时间。
root@FC_R0:/tmp# ls vpn* vpn_oldgw vpn_status_check.log root@FC_R0:/tmp# cat vpn_status_check.log Tue Jul 15 00:04:02 HKT 2014 root@FC_R0:/tmp#
你能够于 LuCI 里中断 虚拟专用网络 接口,于接下来的 4 至 5 分钟时间范围,去观察 WAN 以及 虚拟专用网络 的重连状况。
d.对 www.google.com 进行 traceroute 操作,同时,对 www.baidu.com 进行 traceroute 操作,之后,观察第二跳所对应的地址。
FL-MBP:~ fatlyz$ traceroute www.google.com | head -n 3 traceroute: Warning: www.google.com has multiple addresses; using 74.125.239.115 traceroute to www.google.com (74.125.239.115), 64 hops max, 52 byte packets 1fc_r0.lan (192.168.7.1)2.161 ms0.912 ms0.895 ms 210.7.0.1 (10.7.0.1)193.747 ms187.789 ms289.744 ms 323.92.24.2 (23.92.24.2)259.323 ms354.625 ms408.535 ms
FL-MBP:~ fatlyz$ traceroute www.baidu.com | head -n 3 traceroute to www.a.shifen.com (180.76.3.151), 64 hops max, 52 byte packets 1fc_r0.lan (192.168.7.1)1.190 ms0.984 ms0.731 ms 258.111.43.1 (58.111.43.1)20.616 ms38.822 ms18.484 ms 3183.56.35.133 (183.56.35.133)20.056 ms52.353 ms87.841 ms
可以看出,已成功对国内外的目标地址进行了路由选择。
到这个时候,OpenWRT路由的基础设置,PPTP,chnroutes以及自动重新连接,都已经弄好了。
未经允许不得转载:openwrt技术分享 » OpenWrtVPN配置指南:PPTP及相关设置实现访问国内外站点

openwrt技术分享
微信关注,获取更多