小米路由器3潘多拉固件刷机教程

2023-11-12

小米路由器的官方固件优化不够好,很多人都出现限速、断流的现象。我之前也出现过限速的情况,最后没办法只能设置路由器定时重启。前几天突发奇想把定时重启关了,发现路由器居然连着好几天都没啥问题,我以为从此以后就能安心用了,可惜今天又出现了无法上网的情况。我实在是忍无可忍,遂寻找路由器的刷机办法。

小米路由器3刚出来的时候,由于闪存类型变为了NAND,导致很长时间都没有第三方刷机包出来。不过过了这么长时间,终于有了适配。本文参考了OpenWrt网站小米路由器3页面MassMesh维基,如果英语好的话可以直接看原文。另外由于是外网的教程,所以用到的网盘等资源可能无法正常访问,请自备加速器。另外再说一下,本文讨论的是小米路由器3的刷机教程,注意别弄错了。由于涉及到终端linux命令,建议没有Linux使用经验的同学先去在虚拟机里练习一下基本命令,免得到时候手忙脚乱,命令输错了就麻烦了。最后注意一下,一旦获取了SSH权限乃至刷了机,就失去了保修资格,大家在刷机之前还是要好好考虑一下。

不过最后我想了一下,还是把资源上传到了百度网盘( 提取码: 3533)。文件夹点进去就能看到路由器刷机资源了,包含2.11.20降级包和潘多拉固件。潘多拉压缩包解压之后有几个文件夹,bootloader和firmware里面用最新的就可以了,stock文件夹用于刷回官方固件。

获取SSH权限

首先将路由器降级为2.11.20,降级包在此。降级方法很简单,在小米路由器管理界面中选择系统升级,手动上传ROM包即可。

降级系统

然后正常设置并登录路由器管理界面,注意地址栏路径的STOK,注意这个参数很重要,后面经常要用到。当然现在也不用着急把它记下来,这个参数每次登录路由器的时候都会变,你只要记下来这次登录的stok就行了。

stok参数

然后依次访问下面的URL,注意将替换为实际的字符串值。OLD_PASSWORD就是刚才设置路由器时候设置的密码,NEW_PASSWORD随便设,别忘了就行,新旧密码我都设置的8个1。这几步操作涉及到字符串复制和替换,很有可能出错,大家在执行的时候一定要注意。

* http://192.168.31.1/cgi-bin/luci/;stok=<STOK>/api/xqnetwork/set_wifi_ap?ssid=Xiaomi&encryption=NONE&enctype=NONE&channel=1%3Bnvram%20set%20ssh%5Fen%3D1%3B%20nvram%20commit
* http://192.168.31.1/cgi-bin/luci/;stok=<STOK>/api/xqnetwork/set_wifi_ap?ssid=Xiaomi&encryption=NONE&enctype=NONE&channel=1%3Bsed%20%2Di%20%22%3Ax%3AN%3As%2Fif%20%5C%5B%2E%2A%5C%3B%20then%5Cn%2E%2Areturn%200%5Cn%2E%2Afi%2F%23tb%2F%3Bb%20x%22%20%2Fetc%2Finit.d%2Fdropbear
* http://192.168.31.1/cgi-bin/luci/;stok=<STOK>/api/xqnetwork/set_wifi_ap?ssid=Xiaomi&encryption=NONE&enctype=NONE&channel=1%3B%2Fetc%2Finit.d%2Fdropbear%20start

* http://192.168.31.1/cgi-bin/luci/;stok=<STOK>/api/xqsystem/set_name_password?oldPwd=<OLD_PASSWORD>&newPwd=<NEW_PASSWORD>

前三条命令比较安全,顺利的话应该返回{"msg":"未能连接到指定WiFi(Probe timeout)","code":1616},如果不是这个结果可以重来一遍,直到返回结果是这个为止。其实如果学过计算机的应该可以看出来,这大概算是利用了旧版固件的漏洞,直接在地址栏上附带参数进行渗透攻击。最后一条命令应该返回的结果是{"code":0}

这时候应该已经可以用SSH访问路由器了。然后需要一个可以SSH到Linux的软件,Windows 10的WSL、Git for Windows、MobaXterm等软件都可以。我这里用的是MobaXterm。然后用下面的命令SSH到路由器里面。SSH密码就是刚刚最后一条URL的NEW_PASSWORD。

ssh root@192.168.31.1

成功的话应该会显示出欢迎信息,并进入到了一个新终端。
进入路由器终端

成功进入到终端之后,依次输入下面的命令重新激活串口功能,最后用reboot命令重启路由器使之生效。建议一条一条复制。

nvram set flag_last_success=1
nvram set boot_wait=on
nvram set uart_en=1
nvram commit
reboot

刷入潘多拉固件

刷入bootloader

上面的步骤做完了之后,就可以刷入潘多拉固件了。固件下载地址在Mega网盘上,或者用我上传的百度网盘资源也行。下载并解压了潘多拉固件之后,在SSH软件中切进该目录,然后用scp命令将BootLoader复制到/tmp文件夹中。

scp pb-boot-xiaomi3-20181021-fd6329c.img root@192.168.31.1:/tmp

这里我改用了WSL,不过不管用啥SSH道理都一样,大家注意终端里的相对路径就行了。不懂这个的最好先去虚拟机里面建一个Linux练一练。
上传BootLoader

然后SSH登录到路由器上。

ssh root@192.168.31.1

然后依次执行以下命令。其实说白了就是切进/tmp目录把刚刚上传的固件刷到BootLoader里面去。刚刚scp上传的是哪个文件,这里刷的就是哪个文件。最后一条命令重启路由器,等到路由器再次启动,离大功告成也就差不多了。

cd /tmp
mtd write pb-boot-xiaomi3-20181021-fd6329c.img Bootloader
reboot

如果用ls命令看一下,可以发现/tmp里面东西还是挺多的。观察一下,固件上传成功就好。
/tmp目录文件

刷入固件

上面的命令执行完之后,路由器会重启,等待4-5分钟左右。这时候路由器应该一直处于黄灯状态。

然后拔掉电源线来关闭路由器,找根曲别针插到路由器后面的RESET按钮上,不要松开,然后插上线重启路由器,路由器通电后等1-2秒钟在松开RESET,这时候路由器应该会处于黄灯闪烁的状态。然后浏览器打开192.168.1.1,应该会看到潘多拉恢复模式。

潘多拉恢复固件

这时候就很好办了,点击浏览文件,选择PandoraBox Firmware里面的固件(形如*-sysupgrade.bin的文件),然后点击恢复固件。

选择固件文件

等待一段时间之后,就可以进入到路由器管理页面了,默认密码是admin。如此一来,潘多拉固件就成功刷入了!
潘多拉固件一览

刷回原厂固件

如果你觉得潘多拉固件不好用,还可以刷回原厂固件。原厂固件相关文件在Revert to Stock文件夹中。

  1. 首先进入潘多拉恢复模式,然后选择openwrt-ramips-mt7620-xiaomi_miwifi-r3-squashfs-pb-boot.bin文件并上传。
  2. 浏览器中登录192.168.1.1,不需要密码直接登录,然后在里面设置密码并开启SSH。
  3. 用scp命令将必要的文件(Bootloader.bin和kernel0.bin)传到/tmp目录中。
  4. 在SSH中执行以下命令。
cd /tmp
mtd write Bootloader.bin Bootloader
mtd write kernel0.bin kernel0_rsvd
reboot
  1. 等路由器重启之后,再次进入SSH,输入以下命令:
fw_setenv flag_try_sys2_failed 1
reboot
  1. 重启之后,路由器应该会显示为红灯闪烁状态,说明进入了恢复模式。然后准备一个FAT32格式的U盘,将miwifi.bin固件放入,然后插到路由器上。
  2. 按住RESET按钮1-2秒,直到红灯闪烁变为黄灯闪烁。
  3. 等待4-5分钟,然后登录192.168.31.1设置路由器。

潘多拉固件网络设置

我虽然是计算机专业的,学过计算机网络这门课程,不过也就是随便看看混过去的水平。不过就算我这样的,配置一般的路由器也是不在话下。因为这些路由器自带的固件设置一般都是简化过的。不过在配置潘多拉固件的时候真是难倒我了,我自己摸索了大半天也没弄明白。所以在我成功配置好后,我还是决定写点东西,免得有人和我一样弄不明白。

潘多拉固件里面功能也挺多的,如果遇到看不明白的选项,建议不要瞎改,让它保持默认即可。如果搞出问题了,按住RESET几秒钟,重置路由器,然后重头再来。另外我觉得潘多拉固件比较不方便的一点就是好像有些东西改了之后不会自动重启,需要我手动拔电源线。

另外在设置的时候也要明确自己的光猫和路由器作用,是光猫直连、路由器拨号,还是光猫拨号、路由器直连。我是路由器直连、光猫拨号的,所以理论上我只需要将路由器设置为DHCP,就直接有网了。但是由于光猫和路由器的默认IP都是192.168.1.1,导致了冲突,所以我这种情况需要将路由器IP改一下。

路由器IP设置

我这种情况需要修改一下路由器IP,如果你是路由器拨号,就不需要设置。在潘多拉固件里面找到接口设置,然后在LAN上点击修改。
接口设置

然后将IPv4地址修改即可。本来我改为了小米路由器的默认IP地址192.168.31.1,不过修改之后发现有线网络居然连不上了,只能用手机WIFI来修改。所以最后还是改成了192.168.1.2 。另外保存之后可能需要手动重启路由器。
修改IP

WAN设置

接下来就是WAN设置了,说简单点就是设置路由器拨号。可以看到还有一个WAN6,这是IPv6的设置,可惜我这里还没支持IPv6,所以也就不用管它了。直接点击WAN右边的修改按钮。
WAN设置

进入WAN设置之后,根据你的情况选择协议。如果是光猫里面设置好拨号,那么这里用DHCP客户端就可以了,只要保证IP地址不冲突即可。如果是路由器拨号,那么就在这里选择PPPoE。修改之后点击切换协议,网页就会刷新,然后输入相关信息即可。
图片.png

无线设置

潘多拉默认已经设置好了双频WIFI,不过默认WIFI没有密码,所以我们还得自己修改。

无线设置

以2.4G信道为例,点击右边的修改进入具体设置。基本设置里面可以修改WIFI名。
修改SSID

然后在无线安全里面设置密码,加密算法用安全性最高的WPA2-PSK,然后填写至少8位的WIFI密码,WPS模式有漏洞,禁用就好了,况且小米路由器3上面也没有WPS按键。
修改密码

5G信道的设置方法类似,就不介绍了。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

小米路由器3潘多拉固件刷机教程 的相关文章

  • perf stat中的cycles注释是什么意思

    8 014196 task clock 0 004 CPUs utilized 204 context switches 0 025 M sec 32 cpu migrations 0 004 M sec 0 page faults 0 0
  • 无关的库链接

    我有一个可能有点愚蠢的问题 因为我很确定我可能已经知道答案了 假设你有静态库A 动态共享库B和你的linux下的程序C 假设库 A 调用库 B 中的函数 并且您的程序调用库 A 中的函数 现在假设 C 在 A 中调用的所有函数都不使用 B
  • 如何在 Linux 主机上的 docker 容器中挂载目录 [重复]

    这个问题在这里已经有答案了 我想将一个目录从 docker 容器挂载到本地文件系统 该目录是网站根目录 我需要能够使用任何编辑器在本地计算机上编辑它 我知道我可以跑docker run v local path container path
  • 为 Linux 安装 R 包时出错

    我试图在 R 3 3 上安装一个名为 rgeos 的包 但是当我输入 install packages rgeos 但它返回给我以下错误 其他包也会发生同样的情况 但不是所有包 gt installing source package rg
  • 如何从 Linux 命令行获取视频文件的分辨率(宽度和高度)?

    我一直在挖掘 mplayer mencoder 和 ffmpeg 文档 但我似乎无法想出anything 我对输出格式不是特别挑剔 因为我可以使用正则表达式将其拉出来 我只是似乎无法首先获取数据 Use ffprobe https ffmp
  • 如何从linux命令行运行.exe可执行文件? [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我在 Windows 中有一个 abc exe 可执行文件 我可以使用 DOS 命令提示来执行此应用程序 并为其提供一些运行时变量 我想从
  • 如何成功使用RDAP协议代替whois

    我对新的 RDAP 协议有点困惑 也不知道何时进一步追求它有意义 在我看来 每个人都同意它是 whois 的继承者 但他们的数据库似乎是空的 在 ubuntu 上我尝试了 rdapper nicinfo 甚至他们的 RESTful API
  • 怎样才能使 Windows 成为一个开箱即用的 POSIX 兼容操作系统?

    这个问题的动机是我的一个牵强的梦想 即 nix 平台上可用的许多优秀软件可以轻松移植到 Windows 微软最近对开源和开放性采取了不同的方法 所以我真的很想知道如果微软有这样的倾向 这样的事情会有多可行 我很好奇的一些更具体的事情是 是否
  • gentoo crontab:为什么这个简单的 crontab 不起作用?

    我使用 GENTOO 发行版 crontab e 35 12 root php5 home www cron php 当我手动运行时 php5 php5 home www cron php 这有效 它向我发送了一封电子邮件 然后我检查日期
  • git在Windows和Linux之间切换后强制刷新索引

    我有一个Windows和Linux共享的磁盘分区 格式 NTFS 它包含一个 git 存储库 约 6 7 GB 如果我只使用Windows or 只使用Linux操作 git 存储库一切正常 但是每次切换系统的时候git status命令将
  • 无法安装 WWW::Curl::Easy: SZBALINT/WWW-Curl-4.17.tar.gz : make NO

    我正在尝试在我的 Fedora 26 机器上安装 WWW Curl Easy gcc c I usr include D REENTRANT D GNU SOURCE O2 g pipe Wall Werror format securit
  • 如何让“grep”从文件中读取模式?

    假设有一个很大的文本文件 我只想打印与某些模式不匹配的行 显然 我可以使用egrep v patter1 pattern2 pattern3 现在 如果所有这些模式都在一个文本文件中怎么办 最好的制作方法是什么egrep从文件中读取模式 g
  • 从多线程程序中调用 system()

    我们正在开发一个用 C 编写的多线程内存消耗应用程序 我们必须执行大量的 shellscript linux 命令 并获取返回码 读完之后article http www linuxprogrammingblog com threads a
  • 如何在特定 systemd 服务重新启动时触发自定义脚本运行

    我想知道如何安排自定义脚本在重新启动服务时运行 我的用例是 每当重新启动 Tomcat 服务时 我都必须运行多个命令 我想知道是否有一种方法可以编写脚本并安排它在重新启动 Tomcat 服务时运行 我已将 tomcat 脚本设置为 syst
  • Linux 桌面快捷方式和安装图标

    我需要添加什么到我的 spec文件来创建桌面快捷方式并在安装过程中为快捷方式分配一个图标 rpm 如果需要脚本 一个示例将非常有帮助 您在 Linux 下使用 desktop 文件作为图标 图标放置的位置取决于您使用的发行版和桌面环境 由于
  • 没有可用的符号表信息

    我正在测试第三方的库 它崩溃了 当我想查看崩溃的原因时 我的 gdb 告诉我没有可用的调试符号 Program received signal SIGSEGV Segmentation fault Switching to Thread 0
  • 在主目录中安装库

    在 Linux Ubuntu 中 我尝试运行一个工具 但它显示错误 库丢失 我无权在系统中安装任何内容 或者根本无法从我的用户帐户执行 sudo 是否可以在我的主目录 没有 sudo 中安装缺少的库 在我的例子中为 libstdc so 6
  • diff 文件仅比较每行的前 n 个字符

    我有2个文件 我们将它们称为 md5s1 txt 和 md5s2 txt 两者都包含a的输出 find type f print0 xargs 0 md5sum sort gt md5s txt 不同目录下的命令 许多文件被重命名 但内容保
  • 如何制作和应用SVN补丁?

    我想制作一个SVN类型的补丁文件httpd conf这样我就可以轻松地将其应用到其他主机上 If I do cd root diff Naur etc httpd conf httpd conf original etc httpd con
  • 如何更改 Ubuntu 14.04 上的 php-cli 版本?

    我是 Linux 新手 在篡改时破坏了一些 php 设置 如果我执行一个包含以下内容的 php 脚本 phpinfo 它显示 php 版本为 5 6 但通过命令行 如果我运行php v它返回 7 0 版本 我想让两个版本匹配 我怎样才能修复

随机推荐

  • Unix 时间戳(stm32实现解析与转换)

    1 什么是Unix时间戳 Unix时间戳是从1970年1月1日 UTC GMT的午夜 开始所经过的秒数 不考虑闰秒 1 Unix时间戳 英文为Unix epoch Unix time POSIX time 或 Unix timestamp
  • 轻松理解HTTP协议

    一起深入了解http和https协议吧 了解http协议 1 http是什么 2 认识URL 2 1URL 2 2urlencode和urldecode 3 http传输格式 3 1http请求 3 2http响应 4 http请求方法 4
  • ftp将网站发布到服务器,ftp工具将网站上传到服务器

    ftp工具将网站上传到服务器 内容精选 换一换 支持将华为云服务器上的音视频文件通过内网方式上传到与服务器在同一区域的视频点播服务中 但您需要先将服务器当前使用的DNS切换为华为云的内网DNS 具体请参见怎样切换内网DNS 然后使用视频点播
  • 二分查找法和顺序查找法

    二分查找1 二分查找 Binary Search 二分查找又称折半查找 它是一种效率较高的查找方法 二分查找要求 线性表是有序表 即表中结点按关键字有序 并且要用向量作为表的存储结构 不妨设有序表是递增有序的 2 二分查找的基本思想 二分查
  • system和vendor分区挂载解析(Android O)

    首先我们知道init进程在运行时会调用自身 所以init进程分为stage1和stage2两个阶段 而分区挂载操作也分为两个阶段 stage1挂载操作是利用device tree中的配置项来读取配置挂载的 stage2挂载操作则是我们常见的
  • 数据库一对多查询

    环境搭建 实体类 Data public class Teacher private int id private String name private List
  • anaconda不同设备之间的环境复制问题

    问题 由于一些原因 需要从别的机器上复制环境到新的机器上 直接找到anaconda3 envs 下的环境 整个包复制到新的机器上的相同路径下 但是这样虽然能够使用python 并且import其中的库 但是如果要使用pip的时候 会报错 b
  • QT 信号与槽

    QT核心便是信号与槽 通过信号将数据在界面和类中 在本类和其他类中发送和接收 信号负责发送数据 也可以单纯的发送信号 槽负责接收 系统自定义的槽 在相应组件上单机右键转到槽即可看见这列表 例如 一般按钮事件的点击 clicked 松开 re
  • RecyclerView详解 —— 自定义动画

    RecyclerView的强大之处相信大家已经体验到了 在上一篇RecyclerView详解 自定义分割线我们学习了如何定义分割线 本篇将介绍如何自定义动画 Google为我们提供了一个默认的动画实现 DefaultItemAnimator
  • index.android.js打包,Taro 打包apk步骤(Android 打包)

    前提 已经在taro壳子中做了相关打包的配置 已经在taro壳子中做了相关打包的配置 已经在taro壳子中做了相关打包的配置 taro版本2 2 13 1 把项目根目录下的rn temp文件夹复制到壳子根目录 taro native she
  • 打开tensorboard时出现错误:module ‘tensorflow‘ has no attribute ‘estimator‘

    打开tensorboard时出现错误 module tensorflow has no attribute estimator 一 错误现象 二 解决方法 三 错误原因 一 错误现象 二 解决方法 1 打开python的安装目录 找到文件
  • mathjax 数学公式的使用

    这里使用的是mathjax2 7 5版本 其他版本或有不同 下载地址 https github com mathjax MathJax releases tag 2 7 5 MathJax默认样式在被鼠标focus的时候 会有蓝色边框出现
  • 电脑分盘怎么分?分盘详细教程来了,图文教学

    电脑作为小伙伴日常生活使用的工具 很多事情都需要使用电脑来进行处理 虽然小伙伴使用电脑比较多 但是还是有不少的小伙伴不知道电脑分盘怎么分 其实电脑分盘很简单 下面小编就以图文教学的方式 详细的向小伙伴介绍电脑分盘教程 电脑分盘怎么分 很多小
  • 复化中矩形matlab函数法,MATLAB–Mupad 初学者(四)~(八)

    四 函数的创建 一 用赋值运算符创建函数 y 2 x 1 二 用映射创建函数 格式 f x gt body 简化函数后再创建函数 f x gt body直接创建函数 f x gt x 2 1 注意有无等号的区别 三 创建分段函数 1 pie
  • 计算机组成原理(2)-软件设计(二十三)

    计算机组成原理 1 软件设计 二十二 https blog csdn net ke1ying article details 129372288 一 层次化存储结构 速度由慢到快 外存 辅存 硬盘 光盘 U盘 gt 内存 主存 gt cac
  • 【无标题】如何实现权限过滤

    springboot mybatis plus关于数据权限过滤应该怎么实现 spring boot java 角色和部门关联 每个角色可以设置一个数据范围 1全部数据权限 2自定数据权限 3本部门数据权限 4本部门及以下数据权限 5仅本人数
  • PaxosStore解读

    PaxosStore解读 1 QuorumKV NWR 微信有大量分布式存储 QuorumKV 使用这个算法保证一致性 我们对这个算法做了改进 创造性地把数据副本分离出版本编号和数据存到不同设备 其中N 3 数据只有2份 版本编号有3份 在
  • Qt/C++开发经验小技巧281-285

    悬停窗体QDockWidget默认在标题栏右键会弹出悬停模块的显示隐藏菜单 如果需要去掉 会发现设置Qt NoContextMenu或者事件过滤器拦截都是无效的 必须设置 dockWidget gt setContextMenuPolicy
  • adb logcat命令查看并过滤android输出log

    http blog csdn net hansel article details 38088583 cmd命令行中使用adb logcat命令查看Android系统和应用的log dos窗口按ctrl c中断输出log记录 logcat日
  • 小米路由器3潘多拉固件刷机教程

    小米路由器的官方固件优化不够好 很多人都出现限速 断流的现象 我之前也出现过限速的情况 最后没办法只能设置路由器定时重启 前几天突发奇想把定时重启关了 发现路由器居然连着好几天都没啥问题 我以为从此以后就能安心用了 可惜今天又出现了无法上网