系統(tǒng)之家 - 系統(tǒng)光盤下載網(wǎng)站!

當前位置:系統(tǒng)之家 > 系統(tǒng)教程 > OpenWRT路由配置

配置OpenWRT路由的方法詳解

時間:2014-12-19 17:57:55 作者:qipeng 來源:系統(tǒng)之家 1. 掃描二維碼隨時看資訊 2. 請使用手機瀏覽器訪問: https://m.xitongzhijia.net/xtjc/20141219/33067.html 手機查看 評論

  OpenWRT是一個嵌入式Linux系統(tǒng),想要了解嵌入式Linux系統(tǒng)的朋友有福了,今天小編要給大家介紹下OpenWRT路由的基本配置,一起來學習下吧。

  chnroutes 路由表

  這個路由表集中了所有分配到中國大陸的 IP 段,根據(jù) https://ftp.apnic.net/apnic/stats/apnic/delegated-apnic-latest 每天自動更新,可使得在訪問國內地址時不經過 VPN。

  想想如果能夠讓家里的路由直接連接 VPN,在家連接 WiFi 的所有設備直接達到Fan墻的效果,應該很 Cool,所以最近在某寶整了一個 Netgear WNDR3800 二手路由回來,先后分別在 DD-WRT 和 OpenWRT 成功配置 VPN + chnroutes,最后還是選擇了 OpenWRT。

  DD-WRT vs OpenWRT

  關于 DD-WRT 和 OpenWRT,我選擇 OpenWRT 主要因為 DD-WRT ROM 中集成的軟件太多,絕大多數(shù)用不到,要配置 jffs2 來保存腳本文件,一般配置則保存在nvram中,而且無線較不穩(wěn)定,5G頻段常搜索不到(當然可能是我這個路由器型號的支持問題)。OpenWRT 的配置文件語法統(tǒng)一,配置都存儲在文件系統(tǒng)中,且 ROM 本身僅集成了必備組件,非常小,可以只安裝需要的東西,WEB管理界面也是可選安裝,簡潔強大,經過若干天的使用一直比較穩(wěn)定。

  配置

  已配置好 OpenWRT 上網(wǎng)的童鞋們可以直接跳過 1.刷 ROM 和 2.初始配置

  1.刷 ROM

  a.首先確定你的設備可以被 OpenWRT 所支持(到這里查看支持的設備列表:https://wiki.openwrt.org/toh/start),然后到這里下載編譯好的 ROM:https://downloads.openwrt.org/ 。最新的 stable 版本是 attitude_adjustment(12.09),我下載的是 trunk 版本。

  b.在 OpenWRT 官網(wǎng)找相應設備的 Wiki 頁面查看刷機方法,一般都是在路由器官方Web固件升級頁面直接刷入(我的 WNDR3800 Wiki頁面是:https://wiki.openwrt.org/toh/netgear/wndr3800)

  2.初始配置

  a.路由器啟動后,有的型號沒有安裝 Wifi 模塊,需要先用網(wǎng)線連接到 LAN 口,本機 IP 配置為靜態(tài) 192.168.1.x,然后 telnet 到 192.168.1.1,更改 root 密碼,然后 ssh 連入,參考:https://wiki.openwrt.org/doc/start#configuring.openwrt

 配置OpenWRT路由的方法詳解

  b.配置 WAN 口,讓路由連上 Internet,參考:https://wiki.openwrt.org/doc/howto/internet.connection 。

  比如要配置 PPPoE:

  代碼如下:

  uci set network.wan.proto=pppoe

  uci set network.wan.username=‘yougotthisfromyour@isp.su’

  uci set network.wan.password=‘yourpassword’

  uci commit network

  ifup wan

  c.安裝 LuCI Web 管理界面并設置開機自動啟動,參考:https://wiki.openwrt.org/doc/howto/luci.essentials

  代碼如下:

  opkg update

  opkg install luci

  /etc/init.d/uhttpd start

  /etc/init.d/uhttpd enable

  d.瀏覽器輸入路由器 LAN 側 IP(多為192.168.1.1),進行 Wifi 等配置

 配置OpenWRT路由的方法詳解

 

 配置OpenWRT路由的方法詳解

  3.配置 DNS

  a.創(chuàng)建 /etc/config/sec_resolv.conf

  vim /etc/config/sec_resolv.conf  填入以下 DNS Servers:

  代碼如下:

  nameserver 8.8.8.8

  nameserver 8.8.4.4

  nameserver 208.67.222.222

  b.編輯 /etc/config/dhcp

  vim /etc/config/dhcp  找到 option resolvfile 選項,替換為:

  option resolvfile ‘/etc/config/sec_resolv.conf’

  4.配置 PPTP

  a.安裝 ppp-mod-pptp

  代碼如下:

  opkg update

  opkg 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,效果如圖:

 配置OpenWRT路由的方法詳解

  d.進入 Network -》 Interfaces ,此時應該已經可以看到 VPN Interface 并可以連接,效果如圖:

 配置OpenWRT路由的方法詳解

  e.此時在本機 traceroute www.google.com,應該能得到類似以下的結果:

  代碼如下:

  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

  fc_r0.lan (192.168.7.1) 2.266 ms 0.999 ms 0.946 ms

  10.7.0.1 (10.7.0.1) 189.259 ms 187.813 ms 188.368 ms

  23.92.24.2 (23.92.24.2) 189.847 ms 190.489 ms 188.939 ms

  10ge7-6.core3.fmt2.he.net (65.49.10.217) 188.508 ms 192.216 ms 202.863 ms

  10ge10-1.core1.sjc2.he.net (184.105.222.14) 195.695 ms 195.691 ms 284.242 ms

  72.14.219.161 (72.14.219.161) 189.196 ms 192.287 ms 193.220 ms

  216.239.49.170 (216.239.49.170) 192.496 ms 188.547 ms 189.881 ms

  66.249.95.29 (66.249.95.29) 190.125 ms 190.335 ms 190.026 ms

  nuq05s01-in-f17.1e100.net (74.125.239.113) 189.804 ms 190.556 ms 190.242 ms

  可以看出,其中第二跳是 VPN 的網(wǎng)關,而 traceroute www.baidu.com 的話第二跳應該也是同樣的結果。

  這時已經可以訪問 Google, Baidu 等國內外的站點了。

  5.配置 chnroutes

  a.到 chnroutes 項目的下載頁面:https://chnroutes-dl.appspot.com/ 下載 linux.zip,解壓

  b.把 ip-pre-up 重命名為 chnroutes.sh,打開編輯,在 if [ ! -e /tmp/vpn_oldgw ]; then 前插入以下代碼,以避免 ppp 連接腳本重復執(zhí)行導致重復添加路由表項:

  代碼如下:

  if [ $OLDGW == ‘x.x.x.x’ ]; then

  exit 0

  fi

  其中 x.x.x.x 是 VPN 的網(wǎng)關,可以先本機連接上去之后查看一下網(wǎng)關地址。

  c.ssh 連接到路由器,執(zhí)行以下命令:

  代碼如下:

  cd /etc/config/

  mkdir pptp-vpncd pptp-vpnvim chnroutes.sh

  在 vim 中把編輯好的 chnroutes.sh 粘貼進去(當然也可以通過 ssh 直接把 chnroutes.sh 文件傳過去,或者上傳到某個地方再 wget 下載)

  執(zhí)行以下命令,設置權限為可執(zhí)行:

  chmod a+x chnroutes.sh

  d.用 vim 編輯 /lib/netifd/ppp-up 文件:

  vim /lib/netifd/ppp-up

  在 [ -d /etc/ppp/ip-up.d ] && { 這一行前插入以下內容,確保 ppp 連接腳本能夠被執(zhí)行:

  sh /etc/config/pptp-vpn/chnroutes.sh

  e.重啟路由,啟動好之后,進入 LuCI 查看接口狀態(tài),等 WAN 和 VPN 都連接成功后,ssh進去,執(zhí)行 route -n | head -n 10 ,效果應該類似這樣:

  代碼如下:

  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 的是默認路由,網(wǎng)關為 VPN 網(wǎng)關,意味著默認流量都經過 VPN,而以下的條目則把目的為國內的網(wǎng)段都指向了 ISP 提供的網(wǎng)關。

  至此 PPTP VPN 和 chnroutes 已經配置完畢。

  6.配置 VPN 斷線自動重連

  a.創(chuàng)建 /etc/config/pptp-vpn/status-check.sh:

  vim /etc/config/pptp-vpn/status-check.sh

  在 vim 中粘貼以下內容(此腳本檢測 VPN 連接狀態(tà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í)行以下命令,設置權限為可執(zhí)行:

  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 文件,可以看到最近一次檢測 VPN 連接狀態(tài)的時間。

  代碼如下:

  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 中斷開 VPN 接口,在接下來的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

  可以看出,已成功對國內外的目標地址進行了路由選擇。

  至此,OpenWRT 路由的基本配置、PPTP VPN、chnroutes 和自動重連已經配置完成。

  上面就是OpenWRT 路由配置的方法介紹了,如果你要給OpenWRT 配置路由的話,不妨試試本文介紹的方法,希望對你有所幫助。

發(fā)表評論

0

沒有更多評論了

評論就這些咯,讓大家也知道你的獨特見解

立即評論

以上留言僅代表用戶個人觀點,不代表系統(tǒng)之家立場

其他版本軟件

熱門教程

人氣教程排行

Linux系統(tǒng)推薦

官方交流群 軟件收錄