2024年11月配置OpenWRT路由的方法详解(2)

发布时间:

  ⑴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 配置路由的话,不妨试试本文介绍的方法,希望对你有所帮助。