最近拿到了一台FreedBox Mini路由器(基于GL-iNet AR150平台改造)。它给了一个不怎么好用并且一点都不好看的管理界面,关键是管理界面的登录密码还不能修改——这显然不能满足我的折腾需求。于是花了几分钟,我找到了root它的方案。
软件方法
需求:一台带有Telnet客户端和有线网卡的电脑,以及一根网线。
路由器断电,把电脑的有线接口和路由器的LAN口相连,然后设置电脑对应有线端口:
- IP地址:192.168.1.2
- 子网掩码:255.255.255.0
- 网关:192.168.1.1
然后给路由器加电,同时观察前面板的中间一个灯:它应该短暂闪烁一次,然后一直亮起,过了数秒开始以半秒一次的频率闪烁。它一旦再次开始闪烁,立即短按一下侧面的reset按钮,过数秒后灯会以更快的频率闪烁。(如果没有看到这个过程,请拔掉电源再试一次。)
此时使用 telnet 192.168.1.1 连上路由器,使用以下命令开启SSH连接,修改密码,然后重启:
1 2 3 4 5 6 |
mount_root uci set dropbear.@dropbear[0].PasswordAuth='on' uci set dropbear.@dropbear[0].RootPasswordAuth='on' uci commit passwd # 这里会提示输入两次新密码 reboot |
硬件方法
需求:一个TTL串口,装有串口通信软件(我用Arduino IDE内置的Serial Monitor,使用
minicom 等软件也可以)
拆开路由器,在电路板正面会看到三根针分别标有GND,TX和RX,分别连接到TTL串口板的GND,RX和TX上。在电脑上监听对应串口,波特率115200,换行符CR。给路由器加电,大约十几秒以后,在开机日志中间你会看到一行:
1 |
Press the [f] key and hit [enter] to enter failsafe mode |
此时向串口发送 f 和换行符。很快你会看到一个Shell界面。使用以下命令(通过串口输入,一次一行)开启SSH连接,修改密码,然后重启:
1 2 3 4 5 6 |
mount_root uci set dropbear.@dropbear[0].PasswordAuth='on' uci set dropbear.@dropbear[0].RootPasswordAuth='on' uci commit yes "你要设置的新密码" | passwd reboot |
待重启完成, ssh 192.168.200.254 连上去,享受完整功能的OpenWRT吧。
注:查看它附带的Shadowsocks连接参数
1 |
uci show shadowsocks.@servers[0] |
这样就可以在其他设备上使用啦。
软件方法中, telnet ip 进入后, 需要输入: mount_root , 取得root权限, 否则后续操作会报 I/O error
我忘了这事了……
其实 mount_root 是挂载可读写分区。不然不能改配置。
putty/ Kitty也能连串口