小米路由器开启 Shell

136次阅读
没有评论

共计 3920 个字符,预计需要花费 10 分钟才能阅读完成。

目前国产路由器的硬件是越来越好,但诸如 shell 等功能却默认不再支持了,因此有时我们会有“刷机”的需求。目前很多刷机教程都需要使用额外的 OpenWrt 设备来支持“刷机”,笔者以自己使用的小米 AX6000 路由器为例分享下如何只用一台电脑来“刷机”。如果是小米路由器的其他型号(如 AX9000),可先在 MiWiFi 平台查看是否有对应型号的开发版 ROM,用其替换文中 AX6000 的 ROM,其余过程类似。

工具下载提示

  1. 下述操作过程中的工具包在这里下载。
  2. 有网友私信说下文中 OpenWrt 硬盘文件下载速度太慢,于是笔者将其放了一份到百度网盘中,提取码在微信公众号 qileq 中回复openwrt获取:

更新

  • 2024-09-25: 不小心升级了次路由器固件,只得重新安装,参考本文仍能成功开启 Shell。

降级路由器固件

  1. 输入 http://192.168.31.1/ 打开小米路由器管理后台,点击右上角的下拉框,点击系统升级
    小米路由器开启 Shell
  2. 在“升级检测”中点击手动升级,点击选择文件,从这里下载 AX6000 的 1.0.55 版本的 ROM 文件,然后上传 ROM 文件,点击开始升级
  3. 跳转到“升级注意”,勾选清除当前所有用户配置,点击确定,等待路由器重启。
  4. 升级完成后,自动跳转到路由器首页,点击马上体验。若没有自动跳转,点击 xiaomi-router-xxx_xx 会跳转到路由器首页。
    小米路由器开启 Shell
  5. 在“上网向导”中,设置 Wi-Fi 名称和密码,然后点击下一步,Wi-Fi 自动重启。
  6. 在浏览器中输入 192.168.31.1,登录路由器管理后台,可以看到 ROM 版本为 1.0.55,这里也能看到 SN 号,在后面登录路由器时会用到 SN 来计算 root 密码。
    小米路由器开启 Shell
  7. 若为了防止 ROM 不小心升级时能快速恢复,可点击“常用设置”/“系统设置”,在“备份与恢复” 中点击新建备份做个备份。
  8. 关闭路由器的自动升级
    默认情况下路由器会自动更新 ROM 固件,笔者第一次配置完没关闭自动升级,睡一觉后人傻了 T_T。
    关闭自动升级过程如下:

    • 手机上安装米家 APP,绑定路由器后,在路由设置中点击升级助手
      小米路由器开启 Shell
    • 点击右上角的管理图标
      小米路由器开启 Shell
    • 关闭自动更新
      小米路由器开启 Shell

设置 OpenWrt 虚拟机

虽然没有 OpenWrt 设备,但我们可以通过创建 OpenWrt 虚拟机,利用虚拟机的的网卡来帮助我们刷机。

安装 VMware

如果已安装过 VMware,启动即可;否则下载 VMware Workstation Player 并安装,启动 VMware Workstation Player。

创建 OpenWrt 虚拟机

  1. 点击创建新虚拟机
  2. 点击稍后安装操作系统
  3. 选择 Linux,版本选择其它 Linux 3.x 内核 64 位,点击下一步
    小米路由器开启 Shell
  4. 填写虚拟机名称(笔者命名为 OpenWrt)和位置,点击下一步
    小米路由器开启 Shell
  5. 选择“将虚拟磁盘存储为单个文件”,点击下一步,再点击完成

编辑 OpenWrt 虚拟机配置

  1. 点击编辑虚拟机设置
  2. 各硬件设置如下:
    • 内存:1G
    • 处理器:1
    • 网络适配器:选择桥接模式,并勾选“复制物理网络连接状态”。
    • 移除 CD/DVD 驱动器、USB 控制器、声卡和打印机。
    • 硬盘:
      • 移除默认的硬盘
      • 点击添加按钮,选择硬盘,点击下一步来加载已下载好的 OpenWrt 虚拟机硬盘文件
      • 虚拟磁盘类型为 SCSI,点击下一步
      • 点击使用现有虚拟磁盘,点击下一步
      • 下载 OpenWrt 硬盘文件,并选择该文件,点击完成
      • 在弹出的对话框中点击保持现有格式
        小米路由器开启 Shell

配置 OpenWrt 虚拟机

如果是使用本文提供的 OpenWrt 虚拟机镜像,则此章节可跳过;若是第三方 OpenWrt 虚拟机镜像,可参考本文配置。

  1. 启动创建好 OpenWrt 虚拟机。
  2. 回到 Windows,打开“网络连接“,点击 WLAN -> 右键属性 -> 点击 Internet 协议版本 4(TCP/IPv4) -> 点击属性 -> 点击使用下面的 IP 地址,设置 IP 地址为 192.168.5.2 -> 点击确认。
    小米路由器开启 Shell
  3. 浏览器打开 http://192.168.5.1 ,输入用户名 root,密码 openwrt,点击登录
  4. 点击网络 -> 接口 -> 点击 LAN 的修改,将 IPv4 地址修改为 169.254.31.1
    小米路由器开启 Shell
  5. 向下滑动到 DHCP 服务器,设置如下:
    • 基本调置:勾选“忽略此接口”
    • 高级设置:取消勾选“动态 DHCP” 和“强制”。
      小米路由器开启 Shell
      然后点击保存&应用
  6. 重复第 2 步的操作,不过将 IP 地址设置为 169.254.31.2,然后在浏览器中打开 http://169.254.31.1 ,此时会显示 OpenWrt 管理后台的登录页面。
  7. 使用 scp 或 WSL 1(若为 WSL 2 可执行 wsl --set-version Ubuntu-22.04 1 先切换为 WSL 1,更多 WSL 相关内容参考 Windows 使用 WSL)将工具包中的 xqsystem.lua 脚本上传到 169.254.31.1(即 OpenWrt 虚拟机)的 /usr/lib/lua/luci/controller/admin 目录下,若使用 WSL 1 的话上传命令为 scp xqsystem.lua [email protected]:/usr/lib/lua/luci/controller/admin/
  8. 重复第 2 步,将 IP 地址恢复为“自动获得 IP 地址”。

开启热点

  1. 打开“网络和 Internet”,点击“移动热点”,点击编辑,设置如下:
    • 名称:openwrt
    • 密码:12345678
    • 频带:2.4GHz
      名称和密码可设置为其他信息,频带选择 2.4GHz,然后开启移动热点。
  2. 测试热点。
    使用手机或其它电脑连接该热点是否正常。
  3. 打开“网络连接”,可以看到多了个“本地连接* X”,此即热点网卡,右键查看其属性,知其名称为 “Microsoft Wi-Fi Direct Virtual Adapter#2”:
    小米路由器开启 Shell
  4. 配置 OpenWrt 连接热点。
    回到 VMware,点击左上角的 “Player” -> 选择管理-> 点击虚拟机设置
    小米路由器开启 Shell
    点击网络适配器 -> 点击配置适配器 -> 只勾选热点连接,即 “Microsoft Wi-Fi Direct Virtual Adapter#2”,点击确定
    小米路由器开启 Shell
    操作完成后,重启虚拟机。

开启路由器 Shell

  1. 浏览器打开 http://miwifi.com/ 并登录,自动跳转到 http://miwifi.com/cgi-bin/luci/;stok=xxxx/web/home#router 。拷贝 stok=/web 之间的字符串。
  2. 用拷贝的字符串替换下述字符串的 <STOK>
    http://192.168.31.1/cgi-bin/luci/;stok=/api/xqsystem/extendwifi_connect_inited_router?ssid=openwrt&password=12345678&encryption=WPA2PSKenctype=CCMP&channel=1&band=2g&admin_username=root&admin_password=admin&admin_nonce=xxx

    如果热点网络名称和密码与笔者不同,则需修改该字符串中的 ssid 和 password 为自己的热点名和密码,然后再拷贝该字符串到浏览器中打开,出现如下界面表现成功:
    小米路由器开启 Shell

  3. 登录路由器终端。
    使用 iTerm2 或 Putty 等终端 ssh 登录路由器后台,输入 ssh [email protected],此时会提示要求输入密码,可以访问 miwifi.dev 来计算密码。输入 SN 号可计算出 root 密码。SN 号在路由器背面或登录 http://192.168.31.1 后首页查看。登录后看到如下输出表示成功:
    小米路由器开启 Shell
  4. 关闭 OpenWrt 虚拟机和移动热点。

安装 ShellCrash

如果有科学上网需求的话,可以在小米路由器终端安装 ShellCrash,过程如下:

  1. 执行如下命令下载 ShellCrash,并根据提示安装。

    export url='https://fastly.jsdelivr.net/gh/juewuy/ShellCrash@master' && sh -c "(curl -kfsSlurl/install.sh)" && source /etc/profile &> /dev/null

    如果下载失败的话,参考官方文档换个方式安装。

  2. 执行 crash 开始配置,如下图:
    小米路由器开启 Shell
    注:本图为 clash 修改成 crash 前的截图,两者大致操作相同,因此仍使用 clash 的操作来说明。
    然后生成配置文件,设置完成后在浏览器打开 http://192.168.31.1:9999/ui/#/ 查看 ShellCrash 情况。
    由于会重启路由器,所以最好设置 ShellCrash 开机自启动,以免每次都要登录路由器来启动 Crash。

到此整个过程终于结束,可以愉快的在手机 Pad 电视等设备上安装油管奈飞等学习啦。

如果在使用一段时间后需要更新配置文件,可以运行 ShellCrash,选择“导入配置文件” -> “更新配置文件” -> 输入“1”确认更新配置文件 -> 输入“1”重启 crash 服务,如下图:
小米路由器开启 Shell

遇到的问题

  1. 开启路由器 Shell 时提示:“对端路由器不支持此功能”
    如果出现 {"msg":"对端路由器不支持此功能","code":1646} 提示,检查热点是否开启了动态 DHCP 功能。参考配置 OpenWrt 虚拟机关于 DHCP 功能后再重试。
  2. no matching host key type found. Their offer: ssh-rsa
    在通过 WSL 1 或 Ubuntu 虚拟机登录路由器后台时报错:"Unable to negotiate with 192.168.31.1 port 22: no matching host key type found. Their offer: ssh-rsa",可按如下操作解决:

    ❯ cd
    ❯ cat << EOF > .ssh/config
    Host *
       HostKeyAlgorithms +ssh-rsa
    EOF
    ❯ ssh [email protected]
正文完
 0
管理员
版权声明:本站原创文章,由 管理员 于2022-08-21发表,共计3920字。
转载说明:除特殊说明外本站文章皆由 CC-4.0 协议发布,转载请注明出处。
评论(没有评论)