已配置好OpenWRT上网的童鞋们可以直接跳过1.刷ROM和2.初始配置1.刷ROMa.首先确定你的设备可以被OpenWRT所支持(到这里查看支持的设备列表:),然后到这里下载编译好的ROM:。最新的stable版本是attitude_adjustment(12.09),我下载的是trunk版本。b.在OpenWRT官网找相应设备的Wiki页面查看刷机方法,一般都是在路由器官方Web固件升级页面直接刷入(我的WNDR3800Wiki页面是:)2.初始配置a.路由器启动后,有的型号没有安装Wifi模块,需要先用网线连接到LAN口,本机IP配置为静态192.168.1.x,然后telnet到192.168.1.1,更改root密码,然后ssh连入,参考:配置WAN口,让路由连上Internet,参考:。比如要配置PPPoE:ucisetnetwork.wan.proto=pppoeucisetnetwork.wan.username='yougotthisfromyour@isp.su'ucisetnetwork.wan.password='yourpassword'ucicommitnetworkifupwanc.安装LuCIWeb管理界面并设置开机自动启动,参考:浏览器输入路由器LAN侧IP(多为192.168.1.1),进行Wifi等配置3.配置DNSa.创建/etc/config/sec_resolv.confvim/etc/config/sec_resolv.conf填入以下DNSServers:nameserver8.8.8.8nameserver8.8.4.4nameserver208.67.222.222b.编辑/etc/config/dhcpvim/etc/config/dhcp找到optionresolvfile选项,替换为:optionresolvfile'/etc/config/sec_resolv.conf'4.配置PPTPa.安装ppp-mod-pptpopkgupdateopkginstallppp-mod-pptp如果需要LuCI支持(推荐):opkginstallluci-proto-pppb.配置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.orgoripaddress'option'buffering''1'c.进入Network-Firewall,把vpn加入wanzone,效果如图:d.进入Network-Interfaces,此时应该已经可以看到VPNInterface并可以连接,效果如图:e.此时在本机traceroute,应该能得到类似以下的结果:FL-MBP:~fatlyz$traceroute:(74.125.239.113),64hopsmax,52bytepackets1fc_r0.lan(192.168.7.1)2.266ms0.999ms0.946ms210.7.0.1(10.7.0.1)189.259ms187.813ms188.368ms323.92.24.2(23.92.24.2)189.847ms190.489ms188.939ms410ge7-6.core3.fmt2.he.net(65.49.10.217)188.508ms192.216ms202.863ms510ge10-1.core1.sjc2.he.net(184.105.222.14)195.695ms195.691ms284.242ms672.14.219.161(72.14.219.161)189.196ms192.287ms193.220ms7216.239.49.170(216.239.49.170)192.496ms188.547ms189.881ms866.249.95.29(66.249.95.29)190.125ms190.335ms190.026ms9nuq05s01-in-f17.1e100.net(74.125.239.113)189.804ms190.556ms190.242ms可以看出,其中第二跳是VPN的网关,而traceroute的话第二跳应该也是同样的结果。这时已经可以访问Google,Baidu等国内外的站点了。5.配置chnroutesa.到chnroutes项目的下载页面:下载linux.zip,解压b.把ip-pre-up重命名为chnroutes.sh,打开编辑,在if[!-e/tmp/vpn_oldgw];then前插入以下代码,以避免ppp连接脚本重复执行导致重复添加路由表项:if[$OLDGW=='x.x.x.x'];thenexit0fi其中x.x.x.x是VPN的网关,可以先本机连接上去之后查看一下网关地址。c.ssh连接到路由器,执行以下命令:cd/etc/config/mkdirpptp-vpncdpptp-vpnvimchnroutes.sh在vim中把编辑好的chnroutes.sh粘贴进去(当然也可以通过ssh直接把chnroutes.sh文件传过去,或者上传到某个地方再wget下载)执行以下命令,设置权限为可执行:chmoda+xchnroutes.shd.用vim编辑/lib/netifd/ppp-up文件:vim/lib/netifd/ppp-up在[-d/etc/ppp/ip-up.d]&&{这一行前插入以下内容,确保ppp连接脚本能够被执行:sh/etc/config/pptp-vpn/chnroutes.she.重启路由,启动好之后,进入LuCI查看接口状态,等WAN和VPN都连接成功后,ssh进去,执行route-n|head-n10,效果应该类似这样:root@FC_R0:/etc/config#route-n|head-n10KernelIProutingtableDestinationGatewayGenmaskFlagsMetricRefUseIface0.0.0.010.7.0.10.0.0.0UG000pptp-vpn1.0.1.058.111.43.1255.255.255.0UG000pppoe-wan1.0.2.058.111.43.1255.255.254.0UG000pppoe-wan1.0.8.058.111.43.1255.255.248.0UG000pppoe-wan1.0.32.058.111.43.1255.255.224.0UG000pppoe-wan1.1.0.058.111.43.1255.255.255.0UG000pppoe-wan1.1.2.058.111.43.1255.255.254.0UG000pppoe-wan1.1.4.058.111.43.1255.255.252.0UG000pppoe-wan其中Destination为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/shif[-f/tmp/vpn_status_check.lock]thenexit0fiVPN_CONN=`ifconfig|greppptp-vpn`if[-z$VPN_CONN]thentouch/tmp/vpn_status_check.lockechoWAN_VPN_RECONNECTat:/tmp/vpn_status_check_reconn.logdate/tmp/vpn_status_check_reconn.logifdownvpnifdownwansleep10ifupwansleep30ifdownvpnsleep10ifupvpnsleep40rm/tmp/vpn_status_check.lockelsedate/tmp/vpn_status_check.logfi执行以下命令,设置权限为可执行:chmoda+x/etc/config/pptp-vpn/status-check.shb.进入LuCI的System-ScheduledTasks填入以下内容,并保存:*/1****/etc/config/pptp-vpn/status-check.sh以上实际上是编辑了cron配置,cron每分钟运行检测/重连脚本,重启cron:/etc/init.d/cronrestartc.静待几分钟,查看/tmp目录,应该能看到vpn_oldgw和vpn_status_check.log文件,查看vpn_status_check.log文件,可以看到最近一次检测VPN连接状态的时间。root@FC_R0:/tmp#lsvpn*vpn_oldgwvpn_status_check.logroot@FC_R0:/tmp#catvpn_status_check.logTueJul1500:04:02HKT2014root@FC_R0:/tmp#你可以在LuCI中断开VPN接口,在接下来的4-5分钟,观察WAN和VPN的重连情况。d.分别traceroute,观察第二跳的地址:FL-MBP:~fatlyz$traceroute|head-n3traceroute:Warning:(74.125.239.115),64hopsmax,52bytepackets1fc_r0.lan(192.168.7.1)2.161ms0.912ms0.895ms210.7.0.1(10.7.0.1)193.747ms187.789ms289.744ms323.92.24.2(23