1. 刷机前的准备:认识你的“亚瑟”与必备工具
大家好,我是老张,一个在智能硬件圈子里折腾了十多年的老玩家。上周末,我本来想安安静静地陪家人,结果手机上一篇文章直接让我“破防”了——百元价位的京东云AX1800 Pro(江湖人称“亚瑟”)居然能刷OpenWrt,还是WiFi6!这性价比,不折腾一下简直对不起自己。于是,我立刻下单了一台,开启了一段“痛并快乐着”的刷机之旅。这篇文章,就是把我这几天踩过的坑、趟过的雷,特别是针对最新的R2242版本,给大家掰开揉碎了讲清楚。我的目标很简单:让你看完就能动手,动手就能成功,别像我一样熬了几个晚上。
首先,拿到路由器,别急着拆包装通电。最关键的一步是确认你的硬件版本。京东云AX1800 Pro有几个不同的硬件批次,对应的刷机难度是天壤之别。如果你运气好,买到的是R2080到R2106之间的早期版本,那么恭喜你,网上有大量一键开启SSH的教程,刷机过程跟“喝凉水”差不多简单。但现实是,现在市面上流通的,绝大部分都是R2242及之后的版本。这个版本封堵了之前的简单漏洞,刷机流程变得复杂,但也并非无解。我们这篇文章,就是专门针对R2242这个“硬骨头”来的。
工欲善其事,必先利其器。在开始之前,你需要准备好以下几样东西,缺一不可:
- 京东云AX1800 Pro路由器(R2242版本):主角。
- 一个U盘(建议8GB或以上):这是整个刷机流程的灵魂道具,需要用它来“欺骗”路由器。最好准备两个,一个用于制作临时OpenWrt系统盘(可选,但推荐),另一个用于我们核心操作的分区。
- 一台电脑(Windows/Mac/Linux均可):主要操作平台。
- 网线若干:连接路由器和电脑,确保稳定。
- 手机:用于安装“京东云无线宝”APP,完成路由器的初始绑定和关键设置。
这里特别强调一下U盘的选择。不建议用那种特别老旧、速度奇慢的U盘,也不要用正在存放重要资料的U盘,因为后续需要对它进行分区操作,数据会全部丢失。一个普通的、质量可靠的USB 2.0 U盘就完全够用。准备好这些,我们的“外科手术”就可以开始了。
2. 破解R2242的核心:巧用U盘挂载与软链接
对于R2242版本,官方已经关闭了直接开启SSH的后门。网上流传的教程,核心思路都是利用路由器“外置存储”功能的一个特性,来“偷梁换柱”,把我们自己的脚本挂载到系统关键路径上,从而获得权限。听起来有点绕?别急,我用大白话给你解释一下。
你可以把路由器的系统想象成一个戒备森严的工厂(原厂固件)。工厂有个规矩:允许工人(系统进程)从指定的外部储物柜(U盘挂载点)里取一些非核心的工具(比如日志文件)。我们的目标,是把自己伪装成工厂的“总控开关”(rc.local和done脚本)。怎么做呢?我们先在外部储物柜里,放上我们伪造的“总控开关”,然后想办法让工厂的工人误以为这个假的开关就是真的,每次启动都来执行它。一旦假的开关被执行,我们就能在里面写下“打开工厂后门(开启SSH)”的指令。
这个过程,在技术上的实现分为两步:U盘分区挂载和创建软链接。很多教程在这里讲得不清不楚,导致无数人卡住。我结合自己的实战,给你捋明白。
第一步:为U盘分区。你需要将U盘分成两个区。第一个区是ext4格式,这个分区会被路由器识别为“外置存储”。第二个区是linux-swap交换分区,这个不是必须的,但有些教程会要求,分了也无妨。在Windows下,你可以使用DiskGenius这类工具;在Linux或Mac下,用fdisk或gdisk命令会更方便。这里以Windows为例,用DiskGenius删除U盘所有现有分区,然后新建一个ext4分区(主分区),大小建议占U盘总容量的90%以上,剩下的空间新建一个linux-swap分区。
第二步:在临时OpenWrt系统中挂载并创建软链接。这是整个流程最“魔幻”也最容易让人困惑的一步。我们不是要刷OpenWrt吗?怎么刷之前还得先有个OpenWrt?这听起来像个“先有鸡还是先有蛋”的死循环。这里的OpenWrt,是一个临时环境,不是刷进路由器的!它的作用仅仅是为了在我们的电脑上,模拟出一个能识别ext4分区并能操作软链接的Linux环境。实现这个临时环境有两种主流方法:
- 虚拟机方案(推荐):在你的电脑上安装VirtualBox或VMware,然后创建一个虚拟机,安装一个x86/64架构的OpenWrt镜像。我实测用的是
immortalwrt的镜像,因为它集成了更多工具,开箱即用。你只需要把分好区的U盘,通过虚拟机的USB设备穿透功能,挂载到这个虚拟的OpenWrt系统里。 - U盘启动方案:将OpenWrt镜像写入另一个U盘,用这个U盘启动你的电脑,让电脑临时变成一个OpenWrt系统。这个方法对电脑硬件有要求(需支持U盘启动),且操作更繁琐,稳定性也不如虚拟机。
我强烈推荐虚拟机方案。在虚拟机里的OpenWrt启动后,通过lsblk命令查看你的U盘被识别成了什么设备(比如sdb)。然后,将U盘的ext4分区挂载到/mnt/sdb1(具体路径根据lsblk结果调整)。接着,执行两个核心命令:
ln -s /etc/rc.local /mnt/sdb1/rc.local ln -s /etc/init.d/done /mnt/sdb1/done这两个命令就创建了前面说的“软链接”。它把虚拟机系统里的rc.local和done这两个关键脚本的“快捷方式”,指向了U盘分区里。注意,这里的sdb1一定要换成你实际看到的设备名。完成后,安全弹出U盘(在虚拟机里卸载),这个U盘就携带了关键的“钥匙”。
3. 步步为营:从绑定APP到刷入不死u-boot
准备好“钥匙”U盘后,接下来的操作就相对线性了,但每一步都需谨慎。
第三步:路由器初始化与APP绑定。给路由器通电,用网线连接电脑和路由器的LAN口。暂时不要将U盘插入路由器。在电脑浏览器打开192.168.68.1(亚瑟默认管理地址),按照向导完成最基本的网络设置(比如设置WiFi名称和密码)。然后,在手机上下载“京东云无线宝”APP,用你的京东账号登录,并绑定这台路由器。这一步是必须的,因为后续开启“外置存储”功能需要在APP里操作。
第四步:挂载U盘并触发“机关”。在手机APP里,找到“工具”或“存储设置”相关选项,打开“外置存储设备”功能。此时,再将我们那个制作好的“钥匙”U盘插入路由器的USB口。路由器会自动识别并挂载U盘的ext4分区。如果一切正常,APP里会显示外置存储已就绪。
第五步:修改配置文件,开启SSH。这是利用前面“软链接”机关的一步。我们需要让路由器在启动时,执行我们U盘里的脚本。在电脑上,打开“文件资源管理器”,在地址栏输入\\192.168.68.1(或者\\京东云无线宝),你应该能看到一个共享文件夹,里面就是U盘的内容。找到我们之前创建的rc.local文件(可能显示为快捷方式),用记事本等文本编辑器打开它,在文件末尾(exit 0之前)添加一行:
sed -i 's/channel=.*/channel="debug"/g' /etc/init.d/done && /etc/init.d/done restart保存文件。这个命令的作用是修改系统的一个配置,将运行模式切换到debug调试模式,这个模式默认就开启了SSH服务。保存后,重启你的路由器。重启完成后,路由器的SSH服务就应该已经打开了。你可以使用PuTTY(Windows)或终端(Mac/Linux),用SSH连接192.168.68.1,用户名是root,密码通常为空(直接回车)。如果能成功登录,那么最艰难的一关就过了!
第六步:刷入不死u-boot。u-boot相当于路由器的“BIOS”或“引导程序”。刷入一个开源的不死u-boot(如hanwckf大神编译的版本)是至关重要的一步。它意味着即使后续刷固件失败,你也能通过按住复位键通电的方式,进入u-boot的恢复控制台,重新刷写固件,极大降低变砖风险。在SSH连接里,依次执行以下命令(请务必在操作前,确认你下载的u-boot文件适用于AX1800 Pro,并核对MD5值):
cd /tmp wget http://下载地址/ax1800-pro-uboot.bin # 替换为实际的u-boot文件下载链接 md5sum ax1800-pro-uboot.bin # 核对MD5,确保文件下载完整 mtd write ax1800-pro-uboot.bin /dev/mtd1执行mtd write命令时,屏幕会快速滚动,完成后提示“Done”。这时,千万不要直接重启!先输入以下命令,将u-boot环境变量中的启动分区指向我们即将刷入的固件分区:
fw_setenv bootcmd "if test $boot_dev = mmc; then setenv bootargs console=ttyMSM0,115200n8 earlycon=msm_serial_dm,0xa8c000; if ext4load mmc 0:1 0x44000000 boot/uImage; then bootm 0x44000000; fi; fi; setenv bootargs console=ttyMSM0,115200n8 earlycon=msm_serial_dm,0xa8c000; nand read 0x44000000 0x1c00000 0xa00000; bootm 0x44000000" fw_setenv boot_dev mmc这两行命令是告诉路由器,下次优先从MMC(即内部存储的固件分区)启动。执行完毕后,就可以安全重启了:reboot。
4. 安装与优化:刷写OpenWrt固件及扩容
刷入不死u-boot后,你的“亚瑟”就获得了“不死之身”。接下来就是安装我们心心念念的OpenWrt系统了。
第七步:刷入OpenWrt固件。路由器重启后,再次用SSH登录(如果IP没变的话)。我们需要将准备好的OpenWrt固件刷入。同样,先下载固件到/tmp目录。对于AX1800 Pro,需要刷入的是sysupgrade格式的固件包。命令如下:
cd /tmp wget http://下载地址/istoreos-ax1800-pro-squashfs-sysupgrade.bin # 以iStoreOS为例 sysupgrade -n -F istoreos-ax1800-pro-squashfs-sysupgrade.bin-n参数表示不保留配置,-F表示强制刷写。命令执行后,路由器会自动开始刷写并重启。这个过程需要几分钟,请耐心等待。重启后,路由器的IP地址可能会变为192.168.1.1(这是OpenWrt的常见默认地址)。用浏览器访问这个新地址,你就能看到OpenWrt(或iStoreOS)的登录界面了!默认用户名是root,密码是password。
第八步:扩容软件包空间(至关重要!)成功刷入iStoreOS或原生OpenWrt后,你会发现一个尴尬的问题:系统默认分配给软件安装的空间(overlay分区)非常小,可能只有几十MB,装一两个插件就满了。这是因为原厂分区布局没有充分利用闪存空间。所以,扩容是必做操作。
扩容的原理,是利用剩余的闪存空间,创建一个新的overlay分区。具体操作需要在OpenWrt的终端(SSH或LuCI界面的“TTYD终端”)里进行。以下是一套比较安全的命令流程:
- 首先查看当前分区情况:
cat /proc/mtd - 使用
fdisk或cfdisk工具对/dev/mmcblk0(内置存储设备)进行操作,删除原有的rootfs_data分区(通常是最后一个分区),然后利用所有空闲空间新建一个Linux分区。 - 格式化新分区为
ext4:mkfs.ext4 /dev/mmcblk0pX(X是新分区号)。 - 将新的分区挂载为
overlay。最稳妥的方法是修改/etc/config/fstab配置文件,添加自动挂载项,或者直接编辑/etc/rc.local,在启动时执行挂载命令。
这个过程涉及磁盘操作,有一定风险,建议完全参照成熟的扩容教程(例如“京东云AX1800 PRO亚瑟openwrt玩机第一弹:扩容软件空间”这类文章)一步步进行。扩容成功后,你的软件包可用空间会从几十MB变成几百MB甚至上GB,这才算真正释放了这台路由器的潜力。
5. 进阶玩法与避坑要点总结
当你的“亚瑟”运行着OpenWrt,并且拥有充裕的空间后,真正的乐趣才刚刚开始。iStoreOS提供了一个类似应用商店的界面,可以方便地安装常用插件,比如广告屏蔽大师、网络唤醒、动态DNS、各种内网穿透工具等。你也可以通过OPKG包管理器,安装更多第三方软件。
这里分享几个我实测有用的进阶玩法和避坑点:
- WiFi驱动与信号:刷机后,WiFi驱动通常是开源的
ath11k,信号强度和稳定性与原厂固件相比,在大部分情况下没有明显差异,但某些特定环境(如大量终端连接)下可能表现不同。建议在LuCI的“无线”设置中,将国家代码改为CN,并手动调整信道和功率,以达到最佳效果。 - “师夷长技以制夷”类插件:这是很多朋友刷OpenWrt的主要目的。在iStore中可以直接搜索安装,但需要自行配置节点信息。务必注意插件的依赖和兼容性,不同版本的OpenWrt内核对应不同版本的插件。
- 固件备份:在系统稳定运行后,强烈建议通过u-boot控制台或LuCI的系统备份功能,备份一个完整的固件。以后想尝试其他固件(如QWRT、ImmortalWrt官方版)时,可以随时刷回来。
- 救砖指南:如果不慎操作失误变砖,别慌。记住,只要不死u-boot刷进去了,就大概率能救。方法是:路由器断电,按住复位键不放,然后通电,等待约10秒后松开。此时电脑网线连接LAN口,设置静态IP为
192.168.1.2,子网掩码255.255.255.0,网关192.168.1.1。打开浏览器访问192.168.1.1,就能进入u-boot的Web恢复界面,上传新的固件文件即可重刷。
回顾整个R2242版本的刷机过程,最核心的难点就在于前期利用U盘和临时OpenWrt环境创建软链接那一步。一旦突破了这一点,后续的流程虽然有技术含量,但都有清晰的路径可循。我折腾这几天最大的体会就是:耐心和仔细阅读教程的每一句话,比任何高超的技术都重要。很多错误都是因为跳步或者想当然造成的。希望这篇结合我个人实战经验的指南,能帮你少走弯路,顺利让你手中的“亚瑟”变身成为功能强大的OpenWrt路由。如果在操作中遇到问题,不妨多去相关的技术论坛搜索一下错误信息,很可能已经有朋友遇到并解决了。