前言
因为新办理了宽带,安装师傅说赠送的光猫没有WIFI,无奈只能买个路由器了。正好自己也想玩一玩路由器,经反复对比,还是决定买了H3C的nx30pro路由器,这款路由出厂就开了telnet,而且可玩性高,性价比也不错。废话不多说,开始刷机。
准备工作
- H3C nx30pro路由器
- windows电脑(开启telnet功能)
- putty(包含SCP文件下载上传)
- uboot和openwrt固件(点击下载)
开启路由器的SSH
nx30pro默认开启了telnet功能,但是为了方便后续的操作,最好还是开启路由器的SSH功能,并且往后都用SSH进行连接。开启SSH流程如下:
- 使用windows电脑上自带的telnet工具连接到路由器(确保路由器和电脑处于同一网络),nx30pro默认的IP地址为192.168.124.1,用户名是 H3C(全大写),密码就你设置的路由器后台密码,端口是 99。
- 连接到路由器成功后,输入以下代码执行即可开启SSH
1
2
3
4curl -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
开启了路由器的SSH功能之后,我们可以不用telnet进行指令操作,而选用更加安全的SSH工具对路由器进行命令操作了。
- 打开SSH连接工具putty,如图所示属于路由器地址:192.168.124.1
- 进到终端页面后输入用户名H3C,回车后再输入路由器密码(输入密码时终端不会回显输入的内容),输入完成点回车键,如果看到如下页面说明登录成功。
备份原系统
为了保险起见,或者后续想刷回路由器厂家的原系统,可以先备份好原系统。
- 在终端里执行这命令,将系统备份到 tmp 路径下,备份的过程比较慢,需要 1-2 分钟。
1
dd if=/dev/mtd5 of=/tmp/backup.img
- 使用putty自带的SCP工具,将备份好的文件下载到自己的电脑上进行保存
- 首先打开putty的安装目录,如下图,会发现有个pscp.exe的文件。
- 在文件管理页面的地址栏输入 cmd ,再回车,可以在当前目录弹出CMD命令行页面,这样方便我们直接使用pscp命令行进行文件下载。
- 在CMD命令行页面输入以下命令,把原系统的备份文件下载到我们自己电脑的D盘backup目录下。
1
pscp H3C@192.168.124.1:/tmp/backup.img D:/backup
刷入uboot
要想刷入openwrt,得先给路由器刷入uboot引导程序,再由uboot刷入openwrt固件。
- 使用scp将上方下载好的uboot.bin文件上传到路由器,在电脑pscp.exe所在目录打开CMD命令行页面(跟上方备份系统时下载文件的方式一样),在CMD输入以下命令行上传uboot.bin文件上传到路由器。
- 使用putty工具连接路由器,输入以下命令写入uboot注意:写入uboot时要确保我们上传到路由器的uboot.bin文件是正常的,以上命令会输出该文件的md5值,要确保该md5值与这个md5值一致“dsaaddfdcas”
1
2
3cd /tmp
md5sum uboot.bin
mtd write /tmp/uboot.bin FIP
刷入 openwrt
路由器断电后,先按住背后 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,进入到uboot后台。
选择下载好的 NX30pro 的openwrt固件,upload 上传后,update 更新,写入即可(会等待较久)
更新完成后系统会重启进入 openwrt 的系统,默认的 WiFi 是 MTK 开头没有密码,后台地址 192.168.6.1,用户名 root,密码 password。
结尾
到这里就完成了H3C nx30pro路由器刷入openwrt系统的流程了,后续可以在openwrt上配置各个功能和使用各种第三方的服务。动手能力强的甚至可以自己写一些程序在路由器里面执行,这样可以更好的帮助我们完成一些原生路由器没办法实现的功能。因为openwrt是属于linux的一个发行版本,所以我们可以像在linux上面开发程序一样对自己的路由器进行功能的扩展,后续我会手把手教大家如何开发一个在openwrt上执行程序,用来丰富自己的路由器。