使用串口修复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

串口连接设置

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

2513738346.png

使用串口登录

按路由器的开机键,此时在putty的窗口上应该可以看到OpenWrt的启动信息。

有两种方式可以登录路由器:

  • 使用用户名和密码正常登录
    如果记得登录密码,可以在路由器启动完毕后随便输入一条命令,这时会提示你登录,输入用户名和密码就可以登录了,和SSH的过程是一样的。

3529201868.png

  • 安全模式登录
    如果忘记登录密码,可以在路由器启动显示Press the [f] key and hit [enter] to enter failsafe mode信息是迅速按下f键并回车,此时路由器进入安全模式,不需要密码就可以以root身份登录。

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

3085639852.png

修复网络连接

登陆OpenWrt后可以通过对系统进行配置了,比如修改密码、更改WEB页面端口等。由于我的路由器只是无法连接,所以只需要更改网络配置文件就行了。OpenWrt的网络配置文件为/etc/config/network,可以通过vi编辑器修改。
各个路由器的网卡配置不一样,需要根据实际情况修改,下面是我的HG255D的lanwan网卡配置:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
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管理页面。

参考资料

作者

Lance Liao

发布于

2014-05-30

更新于

2022-10-13

许可协议

CC BY-NC-ND 4.0

评论