OpenWRT是一个嵌入式Linux系统。想了解嵌入式Linux系统的朋友们有福了。下面介绍一下OpenWRT路由的基本配置,一起学习一下。
chnroutes路由表
该路由表集中了分配给中国大陆的所有IP段,并且每天自动更新,这使得无需通过VPN就可以访问国内地址。
想到家里路由可以直接连VPN,家里所有连WiFi的设备都可以直接达到风扇墙的效果,应该很酷吧。所以最近在某宝完成了一个二手网件WNDR3800路由,分别在DD-WRT和OpenWRT成功配置了VPN+chnroutes,最终选择了OpenWRT。
DD-WRTvsOpenWRT
关于DD-WRT和OpenWRT,选择OpenWRT主要是因为DD-WRTROM中集成的软件太多,大部分都用不到。jffs2应该配置为保存脚本文件,一般配置保存在nvram中。而且无线不稳定,5G频段不能经常搜索(当然可能是我路由器型号的支持问题)。OpenWRT的配置文件有统一的语法,配置存储在文件系统中。而且ROM本身只集成了必要的组件,非常小,只能安装需要的。WEB管理界面可选,简单而强大,使用几天后已经稳定。
配置
配置OpenWRT的童鞋可以跳过1。刷ROM和2。直接初始配置。
1.刷只读存储器
A.首先确定设备可以被OpenWRT支持,然后下载编译好的ROM。最新稳定版是attitude_adjustment(12.09),下载的是主干版。
B.在OpenWRT官网找到相应设备的Wiki页面查看刷机方法。一般可以直接在路由器官方web固件升级页面刷。
2.初始配置
A.路由器启动后,部分型号没有安装Wifi模块。你需要先用网线连接到局域网端口。这台机器的IP配置为静态192.168.1.x,然后telnet到192.168.1.1,更改root密码,然后通过ssh连接。
B.配置WAN端口,将路由连接到互联网。
例如,要配置PPPoE:
代码如下:
ucisetnetwork.wan.proto=pppoe
UCIsetnetwork.wan.username=‘yougotthisfromhour@ISP.su’
uci设置network.wan.password=‘您的密码&rsquo
uci提交网络
ifup万
C.安装LuCIWeb管理界面,设置启动后自动启动。
代码如下:
opkg更新
opkg安装luci
/etc/init.d/uhttpdstart
/etc/init.d/uhttpdenable
D.浏览器输入路由器局域网侧的IP(多为192.168.1.1)进行Wifi等配置。
3.配置DNS
A.创建/etc/config/sec_resolv.conf。
Vim/etc/config/sec_resolv.conf填写以下DNS服务器:
代码如下:
8.8.8.8域名服务器
8.8.4.4域名服务器
208.67.222.222域名服务器
B.编辑/etc/config/dhcp
vim/etc/config/dhcp
找到选项resolvfile选项,并将其替换为:
选项解析文件&lsquo/etc/config/sec_resolv.conf’
4.配置PPTP
A.安装ppp-mod-pptp
代码如下:
opkg更新
opkg安装ppp-mod-pptp
如果需要LuCI支持(推荐):
opkg安装luci-proto-ppp
B.配置vpn接口并编辑/etc/config/network文件。应该已经有以下内容(如果没有,需要插入),并在里面配置服务器、用户名和密码:
代码如下:
配置&lsquo界面&rsquo&lsquovpn&rsquo
选项&lsquoifname&rsquo&lsquoPPTP-VPN’
选项&lsquoproto。&lsquopptp&rsquo
选项&lsquo用户名&rsquo&lsquovpnusername&rsquo
选项&lsquo密码&rsquo&lsquovpnpassword&rsquo
选项&lsquo服务器&rsquo&lsquovpn.example.org或IP地址&rsquo
选项&lsquo缓冲&rsquo&lsquo1&rsquo
C.进入网络-》防火墙,将vpn添加到wan区域。效果如图所示:
D.进入网络-》接口”。此时,您应该已经能够看到VPN接口并进行连接。效果如图所示:
E.此时,在本地traceroutewww.google.com中,您应该能够得到类似如下的结果:
代码如下:
佛罗里达州-www.google.comMBP:~fatlyz$traceroute
traceroute:警告:www.google.com有多个地址;使用74.125.239.113
到www.google.com(74.125.239.113)的跟踪路由,最大64跳,52字节数据包
fc_r0.lan(192.168.7.1)2.266毫秒0.999毫秒0.946毫秒
189.259毫秒187.813毫秒188.368毫秒
23.92.24.2(23.92.24.2)
10ge7-6.core3.fmt2.he.net(65.49.10.217)188.508毫秒192.216毫秒202.863毫秒
10ge10-1.core1.sjc2.he.net(184.105.222.14)195.695毫秒195.691毫秒284.242毫秒
72.14.219.161(72.14.219.161)189.196毫秒192.287毫秒193.220毫秒
216.239.49.170(216.239.49.170)192.496毫秒188.547毫秒189.881毫秒
66.249.95.29(66.249.95.29)
nuq05s01-in-f17.1e100.net(74.125.239.113)189.804毫秒190.556毫秒190.242毫秒
可以看出,第二跳是VPN的网关,如果使用Traceroutewww.baidu.com,第二跳应该会有相同的结果。
这时,你已经可以访问国内外的谷歌、百度等网站。
5.配置chnroutes
A.去chnroutes项目的下载页面下载linux.zip并解压。
B.将ip-pre-up重命名为chnroutes.sh,打开编辑,在if[!-e/tmp/VPN_oldGW];然后在前面插入下面的代码,为了避免ppp连接脚本的重复执行,导致路由表条目的重复添加:
代码如下:
if[$oldGW==‘x.x.x.x’];然后
出口0
船方不负担装货费用
X.x.x.x是VPN的网关,本地连接后可以查看网关的地址。
C.ssh连接到路由器并执行以下命令:
代码如下:
cd/etc/config/
mkdirPPTP-VPNCDPPTP-vpnvimCHNroutes.sh
将编辑好的chnroutes.sh粘贴到vim中(当然也可以直接通过ssh传输chnroutes.sh文件,或者上传到某个地方用wget下载)
执行以下命令,将权限设置为可执行:
chmoda+xchnroutes.sh
D.用vim编辑/lib/netifd/ppp-up文件:
vim/lib/netifd/ppp-up
at[-d/etc/PPP/IP-up.d]&;{在此行之前插入以下内容,以确保ppp连接脚本可以执行:
sh/etc/config/PPTP-VPN/CHNroutes.sh
E.重启路线。启动后,进入LuCI检查接口状态。WAN和VPN连接成功后,sshin并执行route-n|head-n10。效果应该是这样的:
代码如下:
root@FC_R0:/etc/config#route-n|head-n10
内核IP路由表
目的网关Genmask标志度量参考使用I接口
0.00.010.70.10.00.0UG0000PPTP-VPN
1.0.1.058.111.43.1
1.0.2.058.111.43.1
58.111.43.1
1.0.32.058.111.43.1
1.1.0.058.111.43.1
1.1.2.058.111.43.1
1.1.4.058.111.43.1
其中0.0.0.0的目的地为默认路由,网关为VPN网关,表示所有的默认流量都流经VPN,而下面的条目指向的是ISP提供的网关国内网段。
至此,PPTPVPN和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《p》if[-f/tmp/VPN_status_check.lock;]
然后
出口0
fi“/p”《p》VPN_CONN=`ifconfig|grepPPTP-VPN`《p》《p》if[-z$VPN_CONN]
然后
touch/tmp/VPN_status_check.lock
echoWAN_VPN_RECONNECTat:》》/tmp/VPN_status_check_reconn.log
date》》/tmp/VPN_status_check_reconn.log《p》ifdownVPN
ifdown万
睡眠10
ifup万
睡眠30
ifdownvpn
睡眠10
ifupvpn
睡眠40
RM/tmp/VPN_status_check.lock“/p”《p》else
date》/tmp/vpn_status_check.log
船方不负担装货费用
执行以下命令,将权限设置为可执行:
chmoda+x/etc/config/PPTP-VPN/status-check.sh
B.进入LuCI的系统-》预定任务,填写以下内容,保存:
*/1****/etc/config/PPTP-VPN/status-check.sh
上面实际上是在编辑cron配置,cron每分钟都会运行检测/重新连接脚本来重启cron:
/etc/init.d/cron重新启动
C.等待几分钟,检查/tmp目录,您应该能够看到vpn_oldgw和vpn_status_check.log文件。检查vpn_status_check.log文件,可以看到上次检测到vpn连接状态的时间。
代码如下:
root@FC_R0:/tmp#lsvpn*
vpn_oldgwvpn_status_check.log
root@FC_R0:/tmp#catVPN_status_check.log
2014年7月15日星期二00:04:02HKT
root@FC_R0:/tmp#
您可以在LuCI中断开VPN接口,并在接下来的4-5分钟内观察WAN和VPN的重新连接。
D.分别跟踪www.google.com和www.baidu.com,并观察第二跳的地址:
代码如下:
佛罗里达州-www.google.comMBP:~fatlyz$traceroute|head-n3
traceroute:警告:www.google.com有多个地址;使用74.125.239.115
到www.google.com(74.125.239.115)的跟踪路由,最大64跳,52字节数据包
fc_r0.lan(192.168.7.1)2.161毫秒0.912毫秒0.895毫秒
193.747毫秒187.789毫秒289.744毫秒
23.92.24.2(23.92.24.2)259.323毫秒354.625毫秒408.535毫秒
代码如下:
佛罗里达州-www.baidu.comMBP:~fatlyz$traceroute|head-n3
到www.a.shifen.com(180.76.3.151)的跟踪路由,最大64跳,52字节数据包
1fc_r0.lan(192.168.7.1)1.190毫秒0.984毫秒0.731毫秒
58.111.43.1(58.111.43.1)20.616毫秒38.822毫秒18.484毫秒
3183.56.35.133(183.56.35.133)20.056毫秒52.353毫秒87.841毫秒
可以看出,国内外的目的地址都已经路由成功。
至此,OpenWRT路由、PPTPVPN、chnroutes和自动重连的基本配置已经完成。
OpenWRT路由就是这样配置的。如果想为OpenWRT配置路由,不妨试试本文描述的方法。希望对你有帮助。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)