⑴a.创建 /etc/config/sec_resolv.conf
⑵vim /etc/config/sec_resolv.conf填入以下 DNS Servers:
⑶nameserver ...
⑷nameserver ...
⑸nameserver ...
⑹b.编辑 /etc/config/dhcp
⑺vim /etc/config/dhcp找到 option resolvfile 选项,替换为:
⑻option resolvfile ‘/etc/config/sec_resolv.conf’
⑼.配置 PPTP
⑽a.安装 ppp-mod-pptp
⑾opkg update
⑿opkg install ppp-mod-pptp
⒀如果需要 LuCI 支持(推荐:
⒁opkg install luci-proto-ppp
⒂b.配置 vpn 接口,编辑 /etc/config/work 文件,应该已经有以下内容(如果没有,需要插入,并配置里面的 server、username 和 password:
⒃config ‘interface’ ‘vpn’
⒄option ‘ifname’ ‘pptp-vpn’
⒅option ‘proto’ ‘pptp’
⒆option ‘username’ ‘vpnusername’
⒇option ‘password’ ‘vpnpassword’
⒈option ‘server’ ‘vpn.example. or ipaddress’
⒉option ‘buffering’ ‘’
⒊c.进入 work -》 Firewall ,把 vpn 加入 wan zone,效果如图:
⒋d.进入 work -》 Interfaces ,此时应该已经可以看到 VPN Interface 并可以连接,效果如图:
⒌e.此时在本机 traceroute 应该能得到类似以下的结果:
⒍FL-MBP:~ fatlyz$ traceroute
⒎traceroute: Warning: has multiple addresses; using ...
⒏traceroute to (..., hops max, byte packets
⒐fc_r.lan (... . ms . ms . ms
⒑... (... . ms . ms . ms
⒒... (... . ms . ms . ms
⒓ge-.core.fmt.he. (... . ms . ms . ms
⒔ge-.core.sjc.he. (... . ms . ms . ms
⒕... (... . ms . ms . ms
⒖... (... . ms . ms . ms
⒗... (... . ms . ms . ms
⒘nuqs-in-f.e. (... . ms . ms . ms
⒙可以看出,其中第二跳是 VPN 的网关,而 traceroute 的话第二跳应该也是同样的结果。
⒚这时已经可以访问 Google, Baidu 等国内外的站点了。
⒛.配置 chnroutes
①a.到 chnroutes 项目的下载页面: 下载 linux.zip,解压
②b.把 ip-pre-up 重命名为 chnroutes.sh,打开编辑,在 if [ ! -e /tmp/vpn_oldgw ]; then 前插入以下代码,以避免 ppp 连接脚本重复执行导致重复添加路由表项:
③if [ $OLDGW == ‘x.x.x.x’ ]; then
④其中 x.x.x.x 是 VPN 的网关,可以先本机连接上去之后查看一下网关地址。
⑤c.ssh 连接到路由器,执行以下命令:
⑥cd /etc/config/
⑦mkdir pptp-vpncd pptp-vpnvim chnroutes.sh
⑧在 vim 中把编辑好的 chnroutes.sh 粘贴进去(当然也可以通过 ssh 直接把 chnroutes.sh 文件传过去,或者上传到某个地方再 wget 下载
⑨执行以下命令,设置权限为可执行:
⑩chmod a+x chnroutes.sh
Ⅰd.用 vim 编辑 /lib/ifd/ppp-up 文件:
Ⅱvim /lib/ifd/ppp-up
Ⅲ在 [ -d /etc/ppp/ip-up.d ] && { 这一行前插入以下内容,确保 ppp 连接脚本能够被执行:
Ⅳsh /etc/config/pptp-vpn/chnroutes.sh
Ⅴe.重启路由,启动好之后,进入 LuCI 查看接口状态,等 WAN 和 VPN 都连接成功后,ssh进去,执行 route -n | head -n ,效果应该类似这样:
ⅥrootFC_R:/etc/config# route -n | head -n
ⅦKernel IP routing table
ⅧDestination Gateway Genmask Flags Metric Ref Use Iface
Ⅸ... ... ... UG pptp-vpn
Ⅹ... ... ... UG pppoe-wan
㈠... ... ... UG pppoe-wan
㈡... ... ... UG pppoe-wan
㈢... ... ... UG pppoe-wan
㈣... ... ... UG pppoe-wan
㈤... ... ... UG pppoe-wan
㈥... ... ... UG pppoe-wan
㈦其中 Destination 为 ... 的是默认路由,网关为 VPN 网关,意味着默认流量都经过 VPN,而以下的条目则把目的为国内的网段都指向了 ISP 提供的网关。
㈧至此 PPTP VPN 和 chnroutes 已经配置完毕。
㈨.配置 VPN 断线自动重连
㈩a.创建 /etc/config/pptp-vpn/status-check.sh:
vim /etc/config/pptp-vpn/status-check.sh
在 vim 中粘贴以下内容(此脚本检测 VPN 连接状态,并在断线后会断开 WAN 和 VPN 接口,秒后重新连接 WAN,并在 秒后重连 VPN:
#!/bin/sh《/p》 《p》if [ -f “/tmp/vpn_status_check.lock” ]
fi《/p》 《p》VPN_CONN=`ifconfig | grep pptp-vpn`《/p》 《p》if [ -z “$VPN_CONN” ]
touch /tmp/vpn_status_check.lock
echo WAN_VPN_RECONNECT at: 》》 /tmp/vpn_status_check_reconn.log
date 》》 /tmp/vpn_status_check_reconn.log《/p》 《p》 ifdown vpn
ifdown wan
ifup wan
ifdown vpn
ifup vpn
rm /tmp/vpn_status_check.lock《/p》 《p》else
date 》 /tmp/vpn_status_check.log
执行以下命令,设置权限为可执行:
chmod a+x /etc/config/pptp-vpn/status-check.sh
b.进入LuCI 的 System -》 Scheduled Tasks 填入以下内容,并保存:
*/ * * * * /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 文件,可以看到最近一次检测 VPN 连接状态的时间。
rootFC_R:/tmp# ls vpn*
vpn_oldgw vpn_status_check.log
rootFC_R:/tmp# cat vpn_status_check.log
Tue Jul :: HKT
rootFC_R:/tmp#
你可以在 LuCI 中断开 VPN 接口,在接下来的-分钟,观察 WAN 和 VPN 的重连情况。
d.分别 traceroute 和 ,观察第二跳的地址:
FL-MBP:~ fatlyz$ traceroute | head -n
traceroute: Warning: has multiple addresses; using ...
traceroute to (..., hops max, byte packets
fc_r.lan (... . ms . ms . ms
... (... . ms . ms . ms
... (... . ms . ms . ms
FL-MBP:~ fatlyz$ traceroute | head -n
traceroute to (..., hops max, byte packets
fc_r.lan (... . ms . ms . ms
... (... . ms . ms . ms
... (... . ms . ms . ms
可以看出,已成功对国内外的目标地址进行了路由选择。
至此,OpenWRT 路由的基本配置、PPTP VPN、chnroutes 和自动重连已经配置完成。
上面就是OpenWRT 路由配置的方法介绍了,如果你要给OpenWRT 配置路由的话,不妨试试本文介绍的方法,希望对你有所帮助。