H3C Magic NX30 Pro 安装原版 ImmortalWrt

一款还不错的路由器

H3C Magic NX30 Pro 安装原版 ImmortalWrt

之前想着把家里不用的树莓派4B利用起来,想着能不能做一个软路由,一开始因为光猫拨号,所以只尝试了旁路由, 但一直想要试下主路由的模式,于是淘宝上买了一个光猫改桥接的服务,JD上又买了一根有线网卡,做成了双网口,openwrt下安装好网卡驱动后就OK了。用下来 还是很稳定的,但是树莓派4B如果不用散热风扇的话,温度有点高,及时我安装了金属外壳辅助散热,但是温度还是会到70度附近。 另外树莓派4B单纯做个主路由的话,性能总体还是有所过剩,毕竟我这里就一条300M的小水管,8G的内存对于我只安装2-3个插件来说 ,也实在有些浪费。

因此,这次看到 H3C Magic NX30 Pro 现在只要149元,网上有完善的刷机教程,且流程简单,就下单了一个,替换掉树莓派。

为什么不是 ...?

为什么不是更高的配置: 首先我的设备不多,加上所有连WI-FI的智能设备,也只有10来台设备,现在的路由器的配置都绰绰有余。

为什么不是360T7,小米WR30U: 本质上它和 360 T7、小米 WR30U 的硬件配置完全相同,用的都是MT7981B,ARM A53 1.3Ghz 双核,256M 的RAM。但360T7貌似需要拆机才能刷机,WR30U 貌似质感和做工比360好点,但是 价格也更贵,应该要180左右,且刷机也相对麻烦,另外MR30U也是运营专供,保修之类的相对麻烦。而H3C Magic NX30 Pro 不涉及 运营商版本的问题,而且上市时间短,质感也还行,价格也低,最主要的是刷机方便,自开telnet。

为什么不买软路由: 相对价格较贵,R2S这类便宜,但发布时间长,配置弱,也增加网络复杂度。更贵的性能强,但是我也不打算搞 All in One,因此 X86、 和高端ARM芯片的方案也 Pass 了。

使用体验

一开始按网上现有的教程和固件搞,非常顺畅,基本上半小时就搞定了。但是网上的固件过于臃肿,自带了很多我不用的功能,另外网上的 也是闭源固件,安全性得不到保证,还是想要精简一些的固件,后来在网上搜到了openwrt最新的23.05.0-rc和snapshot版本已经开始 测试,因此就换成Immortalwrt,和之前的树莓派一样。

刷机步骤

以下步骤根据网络上大家的共享资源整理,仅作为个人记录用,本人及本站不对因此造成的任何资料丢失、硬件损坏负责。

下面步骤主要分两部,第一步[1]. 先刷入带前端页面的u-boot,再刷入非原版固件解锁BL2 MTD,然后[2]再刷入 Immortalwrt 的 preloader 和 u-boot,然后搭建 TFTP 服务器让路由器下载固件,刷入后连接到路由器进入后台,刷入升级固件即可。

刷入第三方系统

准备工作如下:

连接telnet

H3C Magic NX30 Pro 默认开启了telnet,连接之前需要先设置路由器,使得路由器能正常上网,并设置好后台密码,telnet连接信息如下:

地址:192.168.124.1 端口:99 用户名:H3C 密码:你设置的路由器后台密码

连上后可以看到官方固件也是基于 openwrt 21.02。

开启SSH连接

复制以下代码,安装 dropbear 开启 SSH。

curl -o /tmp/dropbear.ipk https://downloads.openwrt.org/releases/packages-19.07/aarch64_cortex-a53/base/dropbear_2019.78-2_aarch64_cortex-a53.ipk
opkg install /tmp/dropbear.ipk
/etc/init.d/dropbear enable
/etc/init.d/dropbear start

备份官方系统

连接SSH,用默认22端口即可。输入以下命令备份官方系统:

dd if=/dev/mtd5 of=/tmp/backup.img

然后打开 WinSCP,文件协议选择 SCP,主机名 192.168.124.1,端口号 22,用户名 H3C,然后输入你设置的路由器后台管理密码即可登录。 登录后,将 NX30 Pro /tmp 路径下的 backup.img 文件拖到电脑上保存,后续若刷回官方固件需要用到。

刷入 u-boot(第三方版本)

先下载第一步固件,通过SCP将 uboot.bin 放到路由器 /tmp 路径下。 然后执行命令(请确保MD5 校验结果为 5C12BD472C255A1E28819E95A3151BF1,再敲回车执行,否则会变砖):

cd /tmp
md5sum uboot.bin
mtd write /tmp/uboot.bin FIP

进入 u-boot 并刷入固件

路由器拔掉电源,先按住背后 Reset 恢复按钮不放,再插上电源,等待 10s 左右松开背后 Reset,稍等片刻路由器就进入了 uboot。 电脑用网线连接路由器 LAN1,并设置好静态 IP:

IP地址: 192.168.1.2 子网掩码: 255.255.255.0 网关: 192.168.1.1 DNS: 192.168.1.1

然后浏览器打开 192.168.1.1 就能打开 u-boot 后台。 选择下载好的 NX30 PRO 的固件( nx30pro.bin ),upload 上传后,update 更新,写入即可。 等待自动重启后就安装完成,会出现以下的 WI-FI 信号:

Wi-Fi名称:MTK 开头没有密码 后台地址:192.168.6.1 用户名:root 密码:password

如果这个第三方固件满足你的需求,不想继续折腾的话,就到此为止了。

刷回官方

如需回到官方系统,进入 u-boot 后选择之前备份的 backup.img 文件刷入即可,重启后恢复官方的系统。

刷入 Openwrt 或者 ImmortalWrt 原版系统

因为官方的固件锁了MTD BL2,所以需要先完成以上步骤,刷入第三方固件后才可进行。 相关固件:Immortalwrt 固件选择 目前只有 23.05.0-r3 及 SNAPSHOT 分支有,先下载对应分支所有的 BL31-UBOOT.FIPKERNELPRELOADER.BINSYSUPGRADE 四个文件。

刷入 u-boot

通过 SCP 或者 SFTP 将 immortalwrt-mediatek-filogic-h3c_magic-nx30-pro-preloader.binimmortalwrt-mediatek-filogic-h3c_magic-nx30-pro-bl31-uboot.fip 放到路由器 /tmp 路径下。 然后执行以下命令写入:

cd /tmp
mtd write /tmp/immortalwrt-mediatek-filogic-h3c_magic-nx30-pro-preloader.bin BL2
mtd write /tmp/immortalwrt-mediatek-filogic-h3c_magic-nx30-pro-bl31-uboot.fip FIP

进入 u-boot 并刷入固件

路由器拔掉电源,先按住背后 Reset 恢复按钮不放,再插上电源,等待 10s 左右松开背后 Reset,稍等片刻路由器就进入了 uboot。 电脑用网线连接路由器 LAN1,并设置好静态 IP:

IP地址: 192.168.1.254 子网掩码: 255.255.255.0 网关: 192.168.1.1 DNS: 192.168.1.1

这里和之前第三方的 u-boot 不同,它不提供任何前端页面。 我当时再这里折腾了好久,后来从官网找到的答案。一开始以为 TFTP 上传是我主动上传到路由器,能Ping通,但用 tftp put 上传不了。 但实际上是需要我本地开一个 TFTP 的服务端,然后选定文件夹。这里还有个大坑,就是他对于固件的文件名有严格的要求,必须改成对应的文件名。

固件上传的方式如下:

  • 修改下载的 immortalwrt-mediatek-filogic-h3c_magic-nx30-pro-initramfs-recovery.itb 文件名为 openwrt-mediatek-filogic-h3c_magic-nx30-pro-initramfs-recovery.itb
  • 搭建一个 TFTP 服务器(我用的 TFTP32),选择上面固件在的文件夹作为根目录。
  • 启动 TFTP 服务器后,可以看到路由器请求了下载了固件。
  • 固件传输到路由器后,会自动更新重启。

更新重启后就可以访问192.168.1.1,默认没有密码,登录后会提醒你更新到完整固件。根据提醒,在页面上选择 immortalwrt-mediatek-filogic-h3c_magic-nx30-pro-squashfs-sysupgrade.itb 这个文件上传更新即可。

Tailscale 设置介绍

另外,推荐一篇不错的关于 Tailscale 设置相关的文章


  1. 主要参考自 https://blog.qust.me/nx30pro 。 ↩︎

  2. 主要参考自 https://github.com/immortalwrt/immortalwrt/discussions/1008 https://github.com/immortalwrt/immortalwrt/issues/1009 https://github.com/openwrt/openwrt/pull/12820 https://www.right.com.cn/forum/thread-8296813-1-1.html 。 ↩︎

正在加载评论区