OpenWRT是一個嵌入式Linux系統,想要了解嵌入式Linux系統的朋友有福了,今天小編要給大家介紹下OpenWRT路由的基本配置,一起來學習下吧。
chnroutes 路由表
這個路由表集中了所有分配到中國大陸的 IP 段,根據 http://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 中集成的軟件太多,絕大多數用不到,要配置 jffs2 來保存腳本文件,一般配置則保存在nvram中,而且無線較不穩定,5G頻段常搜索不到(當然可能是我這個路由器型號的支持問題)。OpenWRT 的配置文件語法統一,配置都存儲在文件系統中,且 ROM 本身僅集成了必備組件,非常小,可以只安裝需要的東西,WEB管理界面也是可選安裝,簡潔強大,經過若干天的使用一直比較穩定。
配置
已配置好 OpenWRT 上網的童鞋們可以直接跳過 1.刷 ROM 和 2.初始配置
1.刷 ROM
a.首先確定你的設備可以被 OpenWRT 所支持(到這裡查看支持的設備列表:http://wiki.openwrt.org/toh/start),然後到這裡下載編譯好的 ROM:http://downloads.openwrt.org/ 。最新的 stable 版本是 attitude_adjustment(12.09),我下載的是 trunk 版本。
b.在 OpenWRT 官網找相應設備的 Wiki 頁面查看刷機方法,一般都是在路由器官方Web固件升級頁面直接刷入(我的 WNDR3800 Wiki頁面是:http://wiki.openwrt.org/toh/netgear/wndr3800)
2.初始配置
a.路由器啟動後,有的型號沒有安裝 Wifi 模塊,需要先用網線連接到 LAN 口,本機 IP 配置為靜態 192.168.1.x,然後 telnet 到 192.168.1.1,更改 root 密碼,然後 ssh 連入,參考:http://wiki.openwrt.org/doc/start#configuring.openwrt
b.配置 WAN 口,讓路由連上 Internet,參考:http://wiki.openwrt.org/doc/howto/internet.connection 。
比如要配置 PPPoE:
代碼如下:
uci set network.wan.proto=pppoe
uci set network.wan.username=‘[email protected]’
uci set network.wan.password=‘yourpassword’
uci commit network
ifup wan
c.安裝 LuCI Web 管理界面並設置開機自動啟動,參考:http://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 等配置
3.配置 DNS
a.創建 /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,效果如圖:
d.進入 Network -》 Interfaces ,此時應該已經可以看到 VPN Interface 並可以連接,效果如圖:
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 的網關,而 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