OPENWRT瞎折腾
自己瞎折腾了快两天,中间走了各种弯路,特地写成文章纪念一下,顺便帮助大家少走弯路。
刷ROM
选取的路由器型号是 TP-LINK TL-MR3020
,直接去openwrt
的官方wiki上去找对应该型号的ROM即可,这里选取的是AA12.09
版的固件。如果你不知道什么样的路由器可以刷入openwrt,可以在这份列表上查询:http://wiki.openwrt.org/toh/start#supported.hardware.-.router.type
本路由器的wiki页面:http://wiki.openwrt.org/toh/tp-link/tl-mr3020
AA12.09地址:http://downloads.openwrt.org/attitude_adjustment/12.09/ar71xx/generic/openwrt-ar71xx-generic-tl-mr3020-v1-squashfs-factory.bin
下载好固件后直接从路由器里的固件升级的位置刷入就可以了。
基本配置
大部分配置方法都在官方的wiki上有写,这里只简单总结一下。
刷好后首先将路由器和电脑直接用网线连起来(这个路由器的WAN和LAN是一个口,而且只有这一个网线口,所以略蛋疼),路由器的默认地址是192.168.1.1,首先将自己的电脑IP设置成静态的192.168.1.x,掩码255.255.255.0,其他的不需要设置。
之后telnet
上你的路由器,使用passwd
命令修改root
密码。然后就可以SSH到你的路由器进行各种配置了。
- 配置WAN口
首先来配置WAN口,编辑/etc/config/network
文件,首先将interface lan
下面的option ifname eth0
注释掉。
如果你的上游是PPPoE
网络,请参考如下配置:
config interface 'wan'
option proto 'pppoe'
option ifname eth0
option username 'your pppoe name'
option password 'your pppoe password'
如果上游是DHCP,请参考如下配置:
config interface 'wan'
option proto 'dhcp'
option ifname 'eth0'
配置好WAN口之后,如果无法上网,可以尝试ifup wan
命令。
- 配置DNS
在/etc/config
下新建一个文件,名字为dns_resolv.conf
,名字无所谓,随便取。在文件中输入如下内容:
nameserver 223.5.5.5
nameserver 8.8.8.8
这里使用的是阿里和谷歌的DNS,如果你有更合适的DNS请替代他们。然后编辑/etc/config/dhcp
文件,将option resolvfile 'xxxx'
改为你刚刚建立的文件。如option resolvfile '/etc/config/dns_resolv.conf'
。
- 配置WiFi
WiFi的配置可以通过192.168.1.1的WEB管理页面来配置。不多赘述。
更多配置
到这里基本配置已经完成了,如果需要更高级的配置,可以参考此部分内容。
- 配置pptp
首先需要安装ppp-mod-pptp
opkg update
opkg install ppp-mod-pptp
接下来配置VPN的接口。
编辑/etc/config/network
文件,参考以下内容并加入:
config interface 'vpn'
option ifname 'pptp-vpn'
option proto 'pptp'
option username 'your-pptp-username'
option password 'your-pptp-password'
option server 'your-pptp-server'
option buffering '1'
然后进入WEB管理页面,在VPN的Firewall Setting
中,选择wan zone
并保存。接下来在interface界面中即可连接VPN。
- VPN分流?
如果按照该教程配置下来,现在的全局流量都是走的VPN,这就导致访问国内速度变慢。这里使用chnroutes
来分流,首先在github上把这东西下载下来。执行python chnroutes.py -p android
,等待运行完成后会在同目录下生成vpnup.sh
,此文件其实会把几千条路由导入路由表中,我们需要对其进行一下修改。将文件开头的alias
几行全部注释掉。然后将此文件上传到路由器上,随便你放在哪。执行后即可导入路由表。
导入后路由表看起来应该是下面这个样子:
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
default <PPTP GW> 0.0.0.0 UG 0 0 0 pptp-vpn
1.0.1.0 192.168.156.254 255.255.255.0 UG 0 0 0 eth0
1.0.2.0 192.168.156.254 255.255.254.0 UG 0 0 0 eth0
1.0.8.0 192.168.156.254 255.255.248.0 UG 0 0 0 eth0
1.0.32.0 192.168.156.254 255.255.224.0 UG 0 0 0 eth0
1.1.0.0 192.168.156.254 255.255.255.0 UG 0 0 0 eth0
1.1.2.0 192.168.156.254 255.255.254.0 UG 0 0 0 eth0
1.1.4.0 192.168.156.254 255.255.252.0 UG 0 0 0 eth0
...
...
你会发现默认的流量是走VPN网关的,而在路由表中出现的其他网段是走本地网关的。(GW是啥?就是Gateway的简写)
如果你想每次都自动导入的话,可以把这个vpnup.sh
这个文件加上x
属性,然后在rc.local
或者/lib/netifd/ppp-up
中将这个脚本加入,形如sh /xx/xx/vpnup.sh
,就可以了,不过自动导入本人一直未成功,每次获取到的GW是错误的。不知道网上的其他人是怎么实现的。
到这里如果没有问题的话应该可以实现VPN的分流了。
- 升级!shadowsocks
当遇到上面的需要分流的问题的时候本人就想到搞个SS了,但是安装shadowsocks-libev-spec_2.1.4-1_ar71xx.ipk
这个的时候发现需要依赖openssl,又懒得去装openssl了,粗略的查了下好像装openssl挺麻烦,就暂时没有研究SS的部分。有兴趣的童鞋可以自己去查一下相关资料,听说用SS比PPTP爽多了!
配置出问题了怎么办
有时候会遇到WEB管理页面无法访问,SSH也没反应,莫慌,不一定是变砖了。首先将路由器断电,用网线将你的路由器和电脑连接起来,电脑设置静态IP为192.168.1.2
(必须是这个IP),掩码255.255.255.0
。打开路由器,当你看到WPS灯开始闪烁的时候,按下WPS按钮(灯就是按钮),WPS灯会以更快的频率进行闪烁。此时路由器进入了Failsafe Mode
,然后就可以telnet到你的路由器上(telnet 192.168.1.1)。之后你就可以:
此处讲的进入Failsafe Mode的方法为AA固件的方法,BB固件的方法请看官方wiki页面
- 执行
firstboot
将路由器重置。 - 执行
mount_root
挂载后修改你的配置文件。 - ETC。。。
如果这样还无法拯救你的路由器,可以尝试使用TFTP重新输入新的固件,方法请见官方wiki页面,我也没这样尝试过。
请问大大
TL-MR3020可以刷成如下列文章,完成相机和手机连上拍照?
https://www.minwt.com/dc/10448.html
因为拜读你的文章,仅到刷韧体就无解了,所以请大大帮忙解惑!!