OpenWRT路由器基础

OpenWRT路由器基础
OpenWRT路由器基础

已配置好OpenWRT 上网的童鞋们可以直接跳过1.刷ROM和 2.初始配置

1.刷 ROM

a.首先确定你的设备可以被OpenWRT 所支持(到这里查看支持的设备列表:https://www.360docs.net/doc/7614750035.html,/toh/start),然后到这里下载编译好的ROM:https://www.360docs.net/doc/7614750035.html,/ 。最新的stable 版本

是 attitude_adjustment(12.09),我下载的是trunk 版本。

b.在OpenWRT 官网找相应设备的Wiki 页面查看刷机方法,一般都是在路由器官方Web固件升级页面直接刷入(我的WNDR3800 Wiki页面是:

https://www.360docs.net/doc/7614750035.html,/toh/netgear/wndr3800)

2.初始配置

a.路由器启动后,有的型号没有安装Wifi 模块,需要先用网线连接到LAN 口,本机IP 配置为静态192.168.1.x,然后telnet 到192.168.1.1,更改root 密码,然后ssh 连入,参考:https://www.360docs.net/doc/7614750035.html,/doc/start#configuring.openwrt

b.配置WAN 口,让路由连上Internet,参考:

https://www.360docs.net/doc/7614750035.html,/doc/howto/internet.connection 。

比如要配置PPPoE:

uci set network.wan.proto=pppoe

uci set https://www.360docs.net/doc/7614750035.html,ername='yougotthisfromyour@isp.su'

uci set network.wan.password='yourpassword'

uci commit network

ifup wan

c.安装LuCI Web 管理界面并设置开机自动启动,参考:

https://www.360docs.net/doc/7614750035.html,/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 updateopkg 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''https://www.360docs.net/doc/7614750035.html, or ipaddress'

option 'buffering''1'

c.进入Network -> Firewall ,把vpn 加入wan zone,效果如图:

d.进入Network -> Interfaces ,此时应该已经可以看到VPN Interface 并可以连接,效果如图:

e.此时在本机traceroute https://www.360docs.net/doc/7614750035.html,,应该能得到类似以下的结果:

FL-MBP:~ fatlyz$ traceroute https://www.360docs.net/doc/7614750035.html,

traceroute: Warning: https://www.360docs.net/doc/7614750035.html, has multiple addresses; using

74.125.239.113

traceroute to https://www.360docs.net/doc/7614750035.html, (74.125.239.113), 64 hops max, 52byte packets

1 fc_https://www.360docs.net/doc/7614750035.html,n (192.168.7.1) 2.266 ms 0.999 ms 0.946 ms

210.7.0.1 (10.7.0.1) 189.259 ms 187.813 ms 188.368 ms

323.92.24.2 (23.92.24.2) 189.847 ms 190.489 ms 188.939 ms

4 https://www.360docs.net/doc/7614750035.html, (65.49.10.217) 188.508 ms 192.216 ms 202.863 ms

5 https://www.360docs.net/doc/7614750035.html, (184.105.222.14) 195.695ms 195.691ms 284.242 ms

672.14.219.161 (72.14.219.161) 189.196 ms 192.287 ms 193.220 ms 7216.239.49.170 (216.239.49.170) 192.496 ms 188.547 ms 189.881 ms 866.249.95.29 (66.249.95.29) 190.125 ms 190.335 ms 190.026 ms

9 https://www.360docs.net/doc/7614750035.html, (74.125.239.113) 189.804 ms 190.556 ms 190.242 ms

可以看出,其中第二跳是VPN 的网关,而 traceroute https://www.360docs.net/doc/7614750035.html, 的话第二跳应该也是同样的结果。

这时已经可以访问Google, Baidu 等国内外的站点了。

5.配置 chnroutes

a.到chnroutes 项目的下载页面:https://www.360docs.net/doc/7614750035.html,/ 下载linux.zip,解压

b.把ip-pre-up 重命名为chnroutes.sh,打开编辑,在if [ ! -e

/tmp/vpn_oldgw ]; then前插入以下代码,以避免ppp 连接脚本重复执行导致重复添加路由表项:

if [ $OLDGW == 'x.x.x.x' ]; then exit 0

fi

其中x.x.x.x 是VPN 的网关,可以先本机连接上去之后查看一下网关地址。

c.ssh 连接到路由器,执行以下命令:

cd /etc/config/

mkdir pptp-vpn

cd pptp-vpn

vim chnroutes.sh

在vim 中把编辑好的chnroutes.sh 粘贴进去(当然也可以通过ssh 直接把chnroutes.sh 文件传过去,或者上传到某个地方再wget 下载)

执行以下命令,设置权限为可执行:

chmod a+x chnroutes.sh

d.用vim 编辑/lib/netifd/ppp-up 文件:

vim /lib/netifd/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 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.010.7.0.10.0.0.0 UG 000 pptp-vpn

1.0.1.058.111.43.1255.255.255.0 UG 000 pppoe-wan

1.0.

2.058.111.4

3.1255.255.25

4.0 UG 000 pppoe-wan

1.0.8.058.111.43.1255.255.248.0 UG 000 pppoe-wan

1.0.3

2.058.111.4

3.1255.255.22

4.0 UG 000 pppoe-wan

1.1.0.058.111.43.1255.255.255.0 UG 000 pppoe-wan

1.1.

2.058.111.4

3.1255.255.25

4.0 UG 000 pppoe-wan

1.1.4.058.111.43.1255.255.25

2.0 UG 000 pppoe-wan

其中Destination 为 0.0.0.0 的是默认路由,网关为VPN 网关,意味着默认流量都经过VPN,而以下的条目则把目的为国内的网段都指向了ISP 提供的网关。

至此PPTP VPN 和chnroutes 已经配置完毕。

6.配置 VPN 断线自动重连

a.创建/etc/config/pptp-vpn/status-check.sh:

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

在vim 中粘贴以下内容(此脚本检测VPN 连接状态,并在断线后会断开WAN 和VPN 接口,10秒后重新连接WAN,并在30 秒后重连VPN):

#!/bin/sh

if [ -f "/tmp/vpn_status_check.lock" ]

then

exit 0

fi

VPN_CONN=`ifconfig | grep pptp-vpn`

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

ifdown vpn

ifdown wan

sleep10

ifup wan

sleep30

ifdown vpn

sleep10

ifup vpn

sleep40

rm /tmp/vpn_status_check.lock

else

date> /tmp/vpn_status_check.log

fi

执行以下命令,设置权限为可执行:

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 连接状态的时间。

root@FC_R0:/tmp# ls vpn*

vpn_oldgw vpn_status_check.log

root@FC_R0:/tmp# cat vpn_status_check.log

Tue Jul 1500:04:02 HKT 2014

root@FC_R0:/tmp#

你可以在LuCI 中断开VPN 接口,在接下来的4-5分钟,观察WAN 和VPN 的重连情况。

d.分别traceroute www.googl

https://www.360docs.net/doc/7614750035.html, 和https://www.360docs.net/doc/7614750035.html, ,观察第二跳的地址:

FL-MBP:~ fatlyz$ traceroute https://www.360docs.net/doc/7614750035.html, | head -n 3

traceroute: Warning: https://www.360docs.net/doc/7614750035.html, has multiple addresses; using 74.125.239.115

traceroute to https://www.360docs.net/doc/7614750035.html, (74.125.239.115), 64 hops max, 52byte packets

1 fc_https://www.360docs.net/doc/7614750035.html,n (192.168.7.1) 2.161 ms 0.91

2 ms 0.895 ms

210.7.0.1 (10.7.0.1) 193.747 ms 187.789 ms 289.744 ms

323.92.24.2 (23.92.24.2) 259.323 ms 354.625 ms 408.535 ms

FL-MBP:~ fatlyz$ traceroute https://www.360docs.net/doc/7614750035.html, | head -n 3

traceroute to https://www.360docs.net/doc/7614750035.html, (180.76.3.151), 64 hops max, 52byte packets

1 fc_https://www.360docs.net/doc/7614750035.html,n (192.168.7.1) 1.190 ms 0.984 ms 0.731 ms

258.111.43.1 (58.111.43.1) 20.616 ms 38.822 ms 18.484 ms

3183.56.35.133 (183.56.35.133) 20.056 ms 52.353 ms 87.841 ms

可以看出,已成功对国内外的目标地址进行了路由选择。

至此,OpenWRT 路由的基本配置、PPTP VPN、chnroutes 和自动重连已经配置完成。

相关文档
最新文档