OpenWrt 刷机

OpenWrt 是基于 Linux 内核的开源路由器嵌入式系统,安装在路由器里,可以自由实现许多很棒的功能,例如科学上网、破解网络限制等。

查询路由器是否支持

首先在 https://wiki.openwrt.org/toh/start 查询支持的机型,本文使用的是 TP-LINK TL-WR941N V5.1 路由器。必须使用机型支持的固件。

刷机到 dd-wrt

在 http://www.dd-wrt.com/site/support/router-database 查找下载对应的 dd-wrt 固件,我用的是 TP-Link TL-WR941N(D) v4.x / (v5.x old) 的 factory-to-ddwrt.bin

登陆路由器,使用软件升级,选择下载的 固件文件(factory-to-ddwrt.bin), 等待升级完成,现在路由器就已经是 dd-wrt 系统了。

通过 telnet 192.168.1.1 可以进入系统

刷机到 OpenWrt

在 https://wiki.openwrt.org/toh/start 查找到相关的型号,点击 View/Edit data 后进入到详情界面,在 Firmware OpenWrt Install URL 后是固件下载链接。例如 https://downloads.openwrt.org/chaos_calmer/15.05.1/ar71xx/generic/openwrt-15.05.1-ar71xx-generic-tl-wr941nd-v4-squashfs-factory.bin

OpenWrt 的版本:目前已经有了4个版本,从 A 到 D, 目前最新稳定版是CC版,即 Chaos Calmer 15.05.1 版,越新的版本功能越强大,但是对应消耗的配置越多,默认的是最新版,我选择的是BB版,需要在 https://downloads.openwrt.org 找到相应的固件,即 openwrt-ar71xx-generic-tl-wr941nd-v4-squashfs-factory.bin

现在就有了 OpenWrt 固件,需要将固件上传到路由器进行安装,方法很多,我用的是 python -m SimpleHTTPServer, 然后 telnet 进入到路由器:

cd /tmp
wget 192.168.1.102:8000/openwrt-ar71xx-generic-tl-wr941nd-v4-squashfs-factory.bin
mtd -r write openwrt-ar71xx-generic-tl-wr941nd-v4-squashfs-factory.bin fireware

等待安装完成,自动重启,至此 OpenWrt 刷机完成。

通过 telnet 进入系统,设置 root 密码,之后通过 SSH 登陆。

打开 Wifi

vim /etc/config/wireless
# 将 option disable 1 一行注销掉
/etc/init.d/network restart

然后就可以通过 wifi 连入到路由器了。

##安装图形管理界面 Luci

OpenWrt 官方的固件可能没有安装图形界面,表现是 浏览器打开 http://192.168.1.1 无法访问。需要手动安装,安装是需要网络的,所以路由器的 Wan 口要有网络才行,直接插在有网的另一个路由器上最简单,默认配置的 eth1 是 dhcp ,所以可以直接连上网。

进入系统:

opkg update
opkg install luci

如果不是 dhcp 或者需要 pppoe 拨号,需要进入系统配置让路由器连上网。

vim /etc/config/network
# 配置 静态 ip
config interface 'wan'
	option ifname 'eth1'
	option proto 'static'
	option ipaddr [ip]
	option netmask [子网掩码]
	option gateway [网关]
	option dns [DNS]
# 或配置 pppoe 拨号
config interface 'wan' 
    option ifname 'eth1' 
    option proto pppoe 
    option username [用户名]
    option password [密码]

然后和上面一样安装 Luci即可,BB版的貌似自带了Luci~

注:教程参考 SCAK博客 好像打不开了,还好有转载的 TL-WR941N路由器刷DD-WRT和OPENWRT教程及使用花生壳 ~

还有我也不知道为什么不直接刷到 OpenWrt,而是要先刷到 dd-wrt ?