家庭网络 2014 年 5 月 30 日

使用串口修复OpenWrt路由器

本文介绍了如何通过串口登录OpenWrt路由器,修改网络配置,从而修复因参数设置错误导致的无法通过网络连接的问题。作者提到避免使用刷机方式修复路由器,因为刷机会丢失所有的设置参数。通过串口登录路由器,可以避免这个问题。文章详细介绍了准备工作、接线方法、串口连接设置和使用串口登录的步骤。对于忘记登录密码的情况,作者还提供了安全模式登录的方法。
由于配置网络时参数设置错误,导致一台OpenWrt路由器无法通过网络连接,也就是说变砖了。 路由器型号是华为HG255D,内置的bootloder具有WEB刷机功能,可以通过刷机方式来修复,但是刷机这种方式太不优雅,而且会丢失所有的设置参数。所以除非迫不得已,尽量避免刷机。
想起HG255D主板上有串行接口,也许可以通过串口登录路由器修改网络配置,然后通过网络重新连接。查阅了OpenWrt官网的WIKI之后,证明这种想法的确是可行的。

准备工作

  • 具备TTL接口的OpenWrt路由器一台
  • USB转TTL转换器一个
  • putty软件

接线

将TTL转换器的RX、TX、GND端和路由器的串口连接,注意根据串口的通信原理,通信两端的RX、TX需要交叉接线,即TTL转换器的RX接路由器的TX,TTL转换器的TX接路由器的RX。华为HG255D的串口端接线如下:
| RX | NC | VCC | GND | TX |
1086980413.jpg
1086980413.jpg

串口连接设置

打开putty软件,在Connection type选择Serial,填写串口端口号和波特率就可以点击Open打开端口了。
2513738346.png
2513738346.png

使用串口登录

按路由器的开机键,此时在putty的窗口上应该可以看到OpenWrt的启动信息。
有两种方式可以登录路由器:
  • 使用用户名和密码正常登录 如果记得登录密码,可以在路由器启动完毕后随便输入一条命令,这时会提示你登录,输入用户名和密码就可以登录了,和SSH的过程是一样的。
3529201868.png
3529201868.png
  • 安全模式登录 如果忘记登录密码,可以在路由器启动显示Press the [f] key and hit [enter] to enter failsafe mode信息是迅速按下f键并回车,此时路由器进入安全模式,不需要密码就可以以root身份登录。

**注意:**安全模式登录后挂载的是不可写的文件系统,需要输入mount_root命令挂载可写入的JFFS2分区才能修改文件。

3085639852.png
3085639852.png

修复网络连接

登陆OpenWrt后可以通过对系统进行配置了,比如修改密码、更改WEB页面端口等。由于我的路由器只是无法连接,所以只需要更改网络配置文件就行了。OpenWrt的网络配置文件为/etc/config/network,可以通过vi编辑器修改。 各个路由器的网卡配置不一样,需要根据实际情况修改,下面是我的HG255D的lanwan网卡配置:
config interface 'lan'
	option type 'bridge'
	option proto 'static'
	option netmask '255.255.255.0'
	option macaddr '00:0c:43:30:52:77'
	option _orig_ifname 'eth2.1 ra0'
	option _orig_bridge 'true'
	option ifname 'eth2.1 ra0'
	option ipaddr '10.1.1.1'
	option gateway '10.1.1.1'
	option dns '114.114.114.114'

config interface 'wan'
	option ifname 'eth2.2'
	option macaddr '00:0c:43:30:52:78'
	option proto 'static'
	option ipaddr '192.168.1.249'
	option netmask '255.255.255.0'
	option gateway '192.168.1.1'
	option dns '114.114.114.114 114.114.115.115'

WEB登录

正确配置网卡后输入reboot命令重启系统,启动完毕后可以通过电脑连接路由器的有线或无线网络,然后登陆WEB管理页面。

参考资料