小米路由器 SSH 解锁记录:从 Telnet 到持久化管理入口

2024 年 6 月 21 日 星期五(已编辑)
/ , , , ,
10
摘要
独立的设备折腾记录,不放进 All-in-One 主线。记录自有小米路由器从 Telnet 到 SSH 持久化的流程,用于安装工具、发送 WOL、运行轻量脚本和检查内网状态。路由器 SSH + WOL 能跑通,但不是最终日常远程重启主方案。

阅读此文章之前,你可能需要首先阅读以下的文章才能更好的理解上下文。

小米路由器 SSH 解锁记录:从 Telnet 到持久化管理入口

编写时间:2024-06-21

这篇是独立的设备折腾记录,不放进 All-in-One 服务器搭建主线。它记录的是在自有路由器上开启 SSH 的流程,用于安装工具、发送 WOL、运行轻量脚本和检查内网状态。

路由器 SSH + WOL 是一条有效的远程开机尝试,但最后日常远程重启还是智能插座 + 通电自启更简单。路由器这条链路依赖固件、SSH 持久化、工具安装和网络入口,能跑通,但维护成本偏高。

不同型号和固件版本差异很大,所有 stok、SN、密码、URL 参数都做了模板化处理;请只在自己的设备上操作。

为什么要开 SSH

软路由或家用路由器如果能 SSH,就可以承担更多内网管理任务:

任务价值
发送 WOL 魔术包远程唤醒服务器或主力机
检查网络状态不进 Web 后台也能排障
安装轻量工具etherwakecurl、脚本任务
配合受控入口让路由器成为内网里的轻量运维节点

准备工作

  1. 确认型号和固件版本;
  2. 下载对应的可降级固件或官方恢复工具;
  3. Windows 开启 Telnet 客户端;
  4. 获取路由器 LAN IP,例如 [router-lan-ip]
  5. 登录 Web 后台,从 URL 中获取当前 stok

stok 只是一段当前会话令牌,重启后会变化:

http://[router-lan-ip]/cgi-bin/luci/;stok=[current-stok]/web/home#router

真实 stok、SN 计算结果和密码都不适合长期记录,只保留占位符和操作位置。

固件降级与开发入口

部分机型需要先降级到特定固件版本才能开启调试入口。流程通常是:

  1. Web 后台上传指定版本固件;
  2. 如果提示不能降级,按对应机型的恢复流程处理;
  3. 降级完成后重新登录后台并获取新的 stok

开启调试入口通常依赖设备自身的管理接口漏洞或隐藏参数。博客版只保留结构,不保留可直接复制的真实会话:

http://[router-lan-ip]/cgi-bin/luci/;stok=[current-stok]/api/misystem/set_sys_time?timezone=[encoded-command]

执行后重启路由器:

http://[router-lan-ip]/cgi-bin/luci/;stok=[current-stok]/api/misystem/set_sys_time?timezone=[encoded-reboot-command]

每次重启后都重新获取 stok

Telnet 进入并开启 SSH

Telnet 打开后,从本机连接路由器:

telnet [router-lan-ip]

进入 shell 后设置 SSH 相关开关,并重启 Dropbear。命令保留模板:

bdata set boot_wait=on
bdata commit
nvram set ssh_en=1
nvram set telnet_en=1
nvram set uart_en=1
nvram set boot_wait=on
nvram commit
sed -i 's/channel=.*/channel="debug"/g' /etc/init.d/dropbear
/etc/init.d/dropbear restart
passwd root

密码不要写在命令里,也不要进入长期笔记。交互式输入更安全。

SSH 持久化

部分路由器从 Telnet 打开的 SSH 重启后会失效,需要把启动脚本写入持久化分区。常见做法是使用社区维护的 auto_ssh.sh 方案:

ssh root@[router-lan-ip]
mkdir -p /data/auto_ssh
cd /data/auto_ssh
curl -O https://cdn.jsdelivr.net/gh/lemoeo/AX6S@main/auto_ssh.sh
chmod +x auto_ssh.sh
./auto_ssh.sh install

安装完成后,建议在路由器后台备份配置。后续升级固件或恢复出厂设置时,可以更快恢复 SSH。

清理临时开发入口

SSH 持久化后,应清理临时打开的开发入口,减少风险:

ssh root@[router-lan-ip]
mtd erase crash
reboot

如果开启 SSH 后时区异常,可以按系统配置修正:

uci set system.@system[0].timezone='CST-8'
uci set system.@system[0].webtimezone='CST-8'
uci commit

opkg 与工具安装

某些固件根分区只读,安装工具时要注意路径。以安装 WOL 工具为例:

mkdir -p /tmp/opkg
opkg update
opkg install --dest tmp etherwake

如果需要换源,博客里只写源类型,不写个人定制配置。源不稳定时优先查对应机型和固件版本的社区说明。

升级后的恢复流程

升级或重置后 SSH 可能失效。恢复思路:

只要保留好固件版本、恢复工具、社区脚本地址和自己的配置备份,恢复成本不高。

风险边界

这类操作的风险主要有三类:

风险应对
刷错固件确认型号、硬件版本和固件版本
暴露管理入口SSH 只在内网或 VPN 中使用
密码泄露不在笔记和博客记录真实密码
升级丢配置完成后备份路由器配置

开 SSH 的目的不是把路由器变成公网服务器,而是让它在家庭网络里承担轻量运维节点的角色。

使用社交账号登录

  • Loading...
  • Loading...
  • Loading...
  • Loading...
  • Loading...