5.配置 chnroutes
a.到 chnroutes 項(xiàng)目的下載頁(yè)面:http://chnroutes-dl.appspot.com/ 下載 linux.zip,解壓
b.把 ip-pre-up 重命名為 chnroutes.sh,打開(kāi)編輯,在 if [ ! -e /tmp/vpn_oldgw ]; then 前插入以下代碼,以避免 ppp 連接腳本重復(fù)執(zhí)行導(dǎo)致重復(fù)添加路由表項(xiàng):
代碼如下:
if [ $OLDGW == ‘x.x.x.x’ ]; then
exit 0
fi
其中 x.x.x.x 是 VPN 的網(wǎng)關(guān),可以先本機(jī)連接上去之后查看一下網(wǎng)關(guān)地址。
c.ssh 連接到路由器,執(zhí)行以下命令:
代碼如下:
cd /etc/config/
mkdir pptp-vpncd pptp-vpnvim chnroutes.sh
在 vim 中把編輯好的 chnroutes.sh 粘貼進(jìn)去(當(dāng)然也可以通過(guò) ssh 直接把 chnroutes.sh 文件傳過(guò)去,或者上傳到某個(gè)地方再 wget 下載)
執(zhí)行以下命令,設(shè)置權(quán)限為可執(zhí)行:
chmod a+x chnroutes.sh
d.用 vim 編輯 /lib/netifd/ppp-up 文件:
vim /lib/netifd/ppp-up
在 [ -d /etc/ppp/ip-up.d ] && { 這一行前插入以下內(nèi)容,確保 ppp 連接腳本能夠被執(zhí)行:
sh /etc/config/pptp-vpn/chnroutes.sh
e.重啟路由,啟動(dòng)好之后,進(jìn)入 LuCI 查看接口狀態(tài),等 WAN 和 VPN 都連接成功后,ssh進(jìn)去,執(zhí)行 route -n | head -n 10 ,效果應(yīng)該類似這樣:
代碼如下:
root@FC_R0:/etc/config# route -n | head -n 10
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 10.7.0.1 0.0.0.0 UG 0 0 0 pptp-vpn
1.0.1.0 58.111.43.1 255.255.255.0 UG 0 0 0 pppoe-wan
1.0.2.0 58.111.43.1 255.255.254.0 UG 0 0 0 pppoe-wan
1.0.8.0 58.111.43.1 255.255.248.0 UG 0 0 0 pppoe-wan
1.0.32.0 58.111.43.1 255.255.224.0 UG 0 0 0 pppoe-wan
1.1.0.0 58.111.43.1 255.255.255.0 UG 0 0 0 pppoe-wan
1.1.2.0 58.111.43.1 255.255.254.0 UG 0 0 0 pppoe-wan
1.1.4.0 58.111.43.1 255.255.252.0 UG 0 0 0 pppoe-wan
其中 Destination 為 0.0.0.0 的是默認(rèn)路由,網(wǎng)關(guān)為 VPN 網(wǎng)關(guān),意味著默認(rèn)流量都經(jīng)過(guò) VPN,而以下的條目則把目的為國(guó)內(nèi)的網(wǎng)段都指向了 ISP 提供的網(wǎng)關(guān)。
至此 PPTP VPN 和 chnroutes 已經(jīng)配置完畢。
6.配置 VPN 斷線自動(dòng)重連
a.創(chuàng)建 /etc/config/pptp-vpn/status-check.sh:
vim /etc/config/pptp-vpn/status-check.sh
在 vim 中粘貼以下內(nèi)容(此腳本檢測(cè) VPN 連接狀態(tài),并在斷線后會(huì)斷開(kāi) WAN 和 VPN 接口,10秒后重新連接 WAN,并在 30 秒后重連 VPN):
代碼如下:
#!/bin/sh《/p》 《p》if [ -f “/tmp/vpn_status_check.lock” ]
then
exit 0
fi《/p》 《p》VPN_CONN=`ifconfig | grep pptp-vpn`《/p》 《p》if [ -z “$VPN_CONN” ]
then
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
sleep 10
ifup wan
sleep 30
ifdown vpn
sleep 10
ifup vpn
sleep 40
rm /tmp/vpn_status_check.lock《/p》 《p》else
date 》 /tmp/vpn_status_check.log
fi
執(zhí)行以下命令,設(shè)置權(quán)限為可執(zhí)行:
chmod a+x /etc/config/pptp-vpn/status-check.sh
b.進(jìn)入LuCI 的 System -》 Scheduled Tasks 填入以下內(nèi)容,并保存:
*/1 * * * * /etc/config/pptp-vpn/status-check.sh
以上實(shí)際上是編輯了 cron 配置,cron 每分鐘運(yùn)行檢測(cè) / 重連腳本,重啟 cron:
/etc/init.d/cron restart
c.靜待幾分鐘,查看 /tmp 目錄,應(yīng)該能看到 vpn_oldgw 和 vpn_status_check.log 文件,查看 vpn_status_check.log 文件,可以看到最近一次檢測(cè) VPN 連接狀態(tài)的時(shí)間。
代碼如下:
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 中斷開(kāi) VPN 接口,在接下來(lái)的4-5分鐘,觀察 WAN 和 VPN 的重連情況。
d.分別 traceroute www.google.com 和 www.baidu.com ,觀察第二跳的地址:
代碼如下:
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
fc_r0.lan (192.168.7.1) 2.161 ms 0.912 ms 0.895 ms
10.7.0.1 (10.7.0.1) 193.747 ms 187.789 ms 289.744 ms
23.92.24.2 (23.92.24.2) 259.323 ms 354.625 ms 408.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
1 fc_r0.lan (192.168.7.1) 1.190 ms 0.984 ms 0.731 ms
2 58.111.43.1 (58.111.43.1) 20.616 ms 38.822 ms 18.484 ms
3 183.56.35.133 (183.56.35.133) 20.056 ms 52.353 ms 87.841 ms
可以看出,已成功對(duì)國(guó)內(nèi)外的目標(biāo)地址進(jìn)行了路由選擇。
至此,OpenWRT 路由的基本配置、PPTP VPN、chnroutes 和自動(dòng)重連已經(jīng)配置完成。
上面就是OpenWRT 路由配置的方法介紹了,如果你要給OpenWRT 配置路由的話,不妨試試本文介紹的方法,希望對(duì)你有所幫助。
評(píng)論