最近拿到了一台 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 连接,修改密码,然后重启:
|
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。给路由器加电,大约十几秒以后,在开机日志中间你会看到一行:
|
Press the [f] key and hit [enter] to enter failsafe mode |
此时向串口发送
f 和换行符。很快你会看到一个 Shell 界面。使用以下命令(通过串口输入,一次一行)开启 SSH 连接,修改密码,然后重启:
|
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 连接参数
|
uci show shadowsocks.@servers[0] |
这样就可以在其他设备上使用啦。
软件方法中, telnet ip 进入后, 需要输入: mount_root , 取得 root 权限, 否则后续操作会报 I/O error
我忘了这事了…… 。 不然不能改配置。
其实 mount_root 是挂载可读写分区
putty/ Kitty 也能连串口