1 准备工作
在开始刷机之前,我们首先需要确认京东云无线宝亚瑟 AX1800 Pro 的固件版本,以确定是否需要进行物理拆机。
如果你的设备原始固件为 1.5.80.r2262(2022-12-15)
或更低版本,那么恭喜你,你可以在不拆机的情况下开启设备的 SSH 功能。
查看固件版本非常简单,只需要在浏览器中登录 http://192.168.68.1/PC/main.html,然后在页面底部查看当前的固件版本。
例如,我的设备的生产日期是 2022.04
,固件版本是 1.2.2.r2080
,符合免拆的条件!
注意:
请不要进行任何有效的上网配置,否则一旦设备联网,系统就会自动升级为最新版本,白白错过免拆机会!
刷机前还需要准备以下材料:
- 一台电脑
- 一根网线
- 下载资源:MobaXterm、U-Boot 和固件
2 免拆刷入 U-Boot
提示:
如果你的固件版本不符合免拆条件,请参阅下文的
拆机刷入 U-Boot
章节。
2.1 开启 SSH
如果固件版本小于 1.5.50r2204(2022-04-22)
首先,接通路由器电源,然后在浏览器中登录 http://192.168.68.1/PC/main.html。接着按下 F12 打开控制台,在 Console
中运行以下代码:
$.ajax({
url: "/jdcapi",
async: false,
data: JSON.stringify({
jsonrpc: "2.0",
id: 1,
method: "call",
params: [
$.cookie("sessionid"),
"service",
"set",
{
"name": "dropbear",
"instances": {"instance1": {"command": ["/usr/sbin/dropbear"]}}
}
]
}),
dataType: "json",
type: "POST"
})
此时,SSH 功能就成功开启了。接着使用 MobaXterm 添加 SSH 连接:
- 在顶部菜单栏中,依次点击
Session
>SSH
。 填写以下信息,然后点击
OK
:- Remote host:
192.168.68.1
- Specify username:
root
- Port:
22
- Remote host:
- 双击刚刚添加的连接,输入路由器登录密码。
如果固件版本在 1.5.50r2204(2022-04-22)
和 1.5.80.r2262(2022-12-15)
之间
请参考:https://www.bilibili.com/read/cv21409975
如果固件版本等于 1.5.80.r2262(2022-12-15)
请参考:https://www.bilibili.com/read/cv21907565
2.2 备份分区
养成刷机前先备份的好习惯,后续想要恢复也比较方便些。亚瑟使用的是双分区,一共有 27 个分区。
在 MobaXterm 中执行以下命令,先检查文件夹是否存在:
ls /mnt/mmcblk0p27
若第一个命令显示 No such file or directory
,则新建分区:
mkdir /mnt/mmcblk0p27
mount -t ext4 /dev/mmcblk0p27 /mnt/mmcblk0p27
若第一个命令显示 lost+found
,则可以开始备份 GPT 分区表和 mmcblk0p1
~mmcblk0p26
分区:
dd if=/dev/mmcblk0 bs=512 count=34 of=/mnt/mmcblk0p27/mmcblk0_GPT.bin conv=fsync
dd if=/dev/mmcblk0p1 of=/mnt/mmcblk0p27/mmcblk0p1_0SBL1.bin conv=fsync
dd if=/dev/mmcblk0p2 of=/mnt/mmcblk0p27/mmcblk0p2_0BOOTCONFIG.bin conv=fsync
dd if=/dev/mmcblk0p3 of=/mnt/mmcblk0p27/mmcblk0p3_0BOOTCONFIG1.bin conv=fsync
dd if=/dev/mmcblk0p4 of=/mnt/mmcblk0p27/mmcblk0p4_0QSEE.bin conv=fsync
dd if=/dev/mmcblk0p5 of=/mnt/mmcblk0p27/mmcblk0p5_0QSEE_1.bin conv=fsync
dd if=/dev/mmcblk0p6 of=/mnt/mmcblk0p27/mmcblk0p6_0DEVCFG.bin conv=fsync
dd if=/dev/mmcblk0p7 of=/mnt/mmcblk0p27/mmcblk0p7_0DEVCFG_1.bin conv=fsync
dd if=/dev/mmcblk0p8 of=/mnt/mmcblk0p27/mmcblk0p8_0RPM.bin conv=fsync
dd if=/dev/mmcblk0p9 of=/mnt/mmcblk0p27/mmcblk0p9_0RPM_1.bin conv=fsync
dd if=/dev/mmcblk0p10 of=/mnt/mmcblk0p27/mmcblk0p10_0CDT.bin conv=fsync
dd if=/dev/mmcblk0p11 of=/mnt/mmcblk0p27/mmcblk0p11_0CDT_1.bin conv=fsync
dd if=/dev/mmcblk0p12 of=/mnt/mmcblk0p27/mmcblk0p12_0APPSBLENV.bin conv=fsync
dd if=/dev/mmcblk0p13 of=/mnt/mmcblk0p27/mmcblk0p13_0APPSBL.bin conv=fsync
dd if=/dev/mmcblk0p14 of=/mnt/mmcblk0p27/mmcblk0p14_0APPSBL_1.bin conv=fsync
dd if=/dev/mmcblk0p15 of=/mnt/mmcblk0p27/mmcblk0p15_0ART.bin conv=fsync
dd if=/dev/mmcblk0p16 of=/mnt/mmcblk0p27/mmcblk0p16_0HLOS.bin conv=fsync
dd if=/dev/mmcblk0p17 of=/mnt/mmcblk0p27/mmcblk0p17_0HLOS_1.bin conv=fsync
dd if=/dev/mmcblk0p18 of=/mnt/mmcblk0p27/mmcblk0p18_rootfs.bin conv=fsync
dd if=/dev/mmcblk0p19 of=/mnt/mmcblk0p27/mmcblk0p19_0WIFIFW.bin conv=fsync
dd if=/dev/mmcblk0p20 of=/mnt/mmcblk0p27/mmcblk0p20_rootfs_1.bin conv=fsync
dd if=/dev/mmcblk0p21 of=/mnt/mmcblk0p27/mmcblk0p21_0WIFIFW_1.bin conv=fsync
dd if=/dev/mmcblk0p22 of=/mnt/mmcblk0p27/mmcblk0p22_rootfs_data.bin conv=fsync
dd if=/dev/mmcblk0p23 of=/mnt/mmcblk0p27/mmcblk0p23_0ETHPHYFW.bin conv=fsync
dd if=/dev/mmcblk0p24 of=/mnt/mmcblk0p27/mmcblk0p24_plugin.bin conv=fsync
dd if=/dev/mmcblk0p25 of=/mnt/mmcblk0p27/mmcblk0p25_log.bin conv=fsync
dd if=/dev/mmcblk0p26 of=/mnt/mmcblk0p27/mmcblk0p26_swap.bin conv=fsync
等待备份完成后,打开 MobaXterm 左侧的 SFTP 会话窗口,然后导航到 /mnt/mmcblk0p27
目录,右键点击备份文件,选择 Download
下载文件到电脑上。
2.3 刷入 U-Boot
使用 MobaXterm 的 SFTP 将 U-Boot 文件上传到 /tmp
目录,然后执行以下命令,注意修改命令中的 uboot.bin
为实际的文件名称:
dd if=/tmp/uboot.bin of=$(blkid -t PARTLABEL=0:APPSBL -o device) conv=fsync
dd if=/tmp/uboot.bin of=$(blkid -t PARTLABEL=0:APPSBL_1 -o device) conv=fsync
# 验证刷入的 MD5
md5sum $(blkid -t PARTLABEL=0:APPSBL -o device) && md5sum $(blkid -t PARTLABEL=0:APPSBL_1 -o device)
上述命令会将 U-Boot 刷入 mmcblk0p13(0:APPSBL)
和 mmcblk0p14(0:APPSBL_1)
分区。
3 拆机刷入 U-Boot
3.1 拆机步骤
拆机需要额外准备以下材料:
- CH340G USB 转 TTL 适配器
- 三根公对母杜邦线
- 拆机工具
- 下载资源:Tftpd64
新版路由器已经不能通过 SSH 传输刷机文件,但可以通过串口来进行。为了暴露路由器主板上的串口,我们需要先拆开机器。
3.1.1 拆除底部螺丝
路由器底部有一块用双面胶粘住的胶垫,可以用吹风机稍微加热,使胶水软化,然后小心揭开外围胶垫,找到并拆除 5 颗螺丝,以便取下底盖。取下底盖后,内部还有一圈螺丝,继续拆除它们。
3.1.2 拆除顶部螺丝
路由器的顶盖使用 5 个卡扣固定。用螺丝刀轻轻往里顶住卡扣,然后向上撬开。取下顶盖后,拆除内部的 2 颗螺丝。
3.1.3 取出机器本体
轻轻挤压外层保护壳,使其与网口分离,然后顺势从底部抽出路由器本体。
3.2 连接串口
串口,也称为串行通信接口,它允许计算机通过串行方式与外部设备进行数据传输。
3.2.1 连接适配器和路由器
在取出机器本体后,可以看到主板上有 4 个并排的串口引脚。
使用杜邦线将 USB 转 TTL 适配器和路由器的串口连接,对应关系如下:
适配器 | 路由器 |
---|---|
GND(地线) | G |
TXD(发送) | R |
RXD(接收) | T |
3.2.2 连接适配器到电脑上
将 USB 转 TTL 适配器插入到电脑的 USB 端口,然后在电脑的 设备管理器
- 端口
中找到适配器对应的端口号(例如 COM3)。
注意:
如果电脑无法识别适配器,可能需要安装相应的驱动程序。
使用 MobaXterm 或类似串行通信软件,设置串行通信参数(端口号、波特率等):
- 在顶部菜单栏中,依次点击
Session
>Serial
。 填写以下信息,然后点击
OK
:- Serial port:
COM3
(在“设备管理器”中找到的端口号) - Speed(波特率):
115200
- Serial port:
- 点击
OK
连接
3.2.3 进入 bootloader 模式
接通路由器电源,当路由器启动时,在 MobaXterm 中快速地按 Enter
键中断启动过程。
如果一切正常,MobaXterm 最后一行会显示 IPQ6018#
,表示成功进入 bootloader 模式。
在此模式下,我们可以使用 tftpboot
命令从 TFTP 服务器下载文件。
所以为了将刷机文件发送给路由器,我们还要在电脑上搭建一个 TFTP 服务器。
3.2.4 开启 TFTP 服务器
京东云亚瑟默认的下载服务器 IP 是 192.168.10.1
,我们需要将电脑的 TFTP 服务器地址也设置成这个 IP 。
首先,使用网线将路由器的 LAN 口和电脑的网口连接。
然后,按照以下步骤设置以太网 IP:
- 打开
控制面板
>网络和共享中心
>更改适配器设置
- 右键点击
以太网
>属性
- 双击
Internet 协议版本 4 (TCP/IPv4)
选择
使用下面的 IP 地址
并输入以下信息:- IP 地址:
192.168.10.1
- 子网掩码:
255.255.255.0
- IP 地址:
最后,下载并运行 tftpd64.exe
文件,确保软件界面中的 Server interface
选择了上述设置的 IP 地址,同时保持软件后台运行。
3.3 备份分区
养成刷机前先备份的好习惯,后续想要恢复也比较方便些。亚瑟使用的是双分区,一共有 27 个分区。
在 MobaXterm 中一行一行地执行以下命令:
mmc read 0x50000000 0x00000000 0x00000022 && tftpput 0x50000000 0x00004400 mmcblk0p_GPT.bin
mmc read 0x50000000 0x00000022 0x00000600 && tftpput 0x50000000 0x000c0000 mmcblk0p1_0SBL1.bin
mmc read 0x50000000 0x00000622 0x00000200 && tftpput 0x50000000 0x00040000 mmcblk0p2_0BOOTCONFIG.bin
mmc read 0x50000000 0x00000822 0x00000200 && tftpput 0x50000000 0x00040000 mmcblk0p3_0BOOTCONFIG1.bin
mmc read 0x50000000 0x00000a22 0x00000e00 && tftpput 0x50000000 0x001c0000 mmcblk0p4_0QSEE.bin
mmc read 0x50000000 0x00001822 0x00000e00 && tftpput 0x50000000 0x001c0000 mmcblk0p5_0QSEE_1.bin
mmc read 0x50000000 0x00002622 0x00000200 && tftpput 0x50000000 0x00040000 mmcblk0p6_0DEVCFG.bin
mmc read 0x50000000 0x00002822 0x00000200 && tftpput 0x50000000 0x00040000 mmcblk0p7_0DEVCFG_1.bin
mmc read 0x50000000 0x00002a22 0x00000200 && tftpput 0x50000000 0x00040000 mmcblk0p8_0RPM.bin
mmc read 0x50000000 0x00002c22 0x00000200 && tftpput 0x50000000 0x00040000 mmcblk0p9_0RPM_1.bin
mmc read 0x50000000 0x00002e22 0x00000200 && tftpput 0x50000000 0x00040000 mmcblk0p10_0CDT.bin
mmc read 0x50000000 0x00003022 0x00000200 && tftpput 0x50000000 0x00040000 mmcblk0p11_0CDT_1.bin
mmc read 0x50000000 0x00003222 0x00000200 && tftpput 0x50000000 0x00040000 mmcblk0p12_0APPSBLENV.bin
mmc read 0x50000000 0x00003422 0x00000500 && tftpput 0x50000000 0x000a0000 mmcblk0p13_0APPSBL.bin
mmc read 0x50000000 0x00003922 0x00000500 && tftpput 0x50000000 0x000a0000 mmcblk0p14_0APPSBL_1.bin
mmc read 0x50000000 0x00003e22 0x00000200 && tftpput 0x50000000 0x00040000 mmcblk0p15_0ART.bin
mmc read 0x50000000 0x00004022 0x00003000 && tftpput 0x50000000 0x00600000 mmcblk0p16_0HLOS.bin
mmc read 0x50000000 0x00007022 0x00003000 && tftpput 0x50000000 0x00600000 mmcblk0p17_0HLOS_1.bin
mmc read 0x50000000 0x0000a022 0x0001e000 && tftpput 0x50000000 0x03c00000 mmcblk0p18_rootfs.bin
mmc read 0x50000000 0x00028022 0x00002000 && tftpput 0x50000000 0x00400000 mmcblk0p19_0WIFIFW.bin
mmc read 0x50000000 0x0002a022 0x0001e000 && tftpput 0x50000000 0x03c00000 mmcblk0p20_rootfs_1.bin
mmc read 0x50000000 0x00048022 0x00002000 && tftpput 0x50000000 0x00400000 mmcblk0p21_0WIFIFW_1.bin
mmc read 0x50000000 0x0004a022 0x0000a000 && tftpput 0x50000000 0x01400000 mmcblk0p22_rootfs_data.bin
mmc read 0x50000000 0x00054022 0x00000400 && tftpput 0x50000000 0x00080000 mmcblk0p23_0ETHPHYFW.bin
mmc read 0x50000000 0x00054422 0x0002bc00 && tftpput 0x50000000 0x05780000 mmcblk0p24_plugin.bin
mmc read 0x50000000 0x00080022 0x00020000 && tftpput 0x50000000 0x04000000 mmcblk0p25_log1.bin
mmc read 0x50000000 0x000a0022 0x00020000 && tftpput 0x50000000 0x04000000 mmcblk0p25_log2.bin
mmc read 0x50000000 0x000c0022 0x00020000 && tftpput 0x50000000 0x04000000 mmcblk0p25_log3.bin
mmc read 0x50000000 0x000e0022 0x00020000 && tftpput 0x50000000 0x04000000 mmcblk0p25_log4.bin
mmc read 0x50000000 0x00100022 0x00016000 && tftpput 0x50000000 0x02c00000 mmcblk0p25_log5.bin
mmc read 0x50000000 0x00116022 0x00020000 && tftpput 0x50000000 0x04000000 mmcblk0p26_swap1.bin
mmc read 0x50000000 0x00136022 0x00020000 && tftpput 0x50000000 0x04000000 mmcblk0p26_swap2.bin
mmc read 0x50000000 0x00156022 0x00020000 && tftpput 0x50000000 0x04000000 mmcblk0p26_swap3.bin
mmc read 0x50000000 0x00176022 0x00020000 && tftpput 0x50000000 0x04000000 mmcblk0p26_swap4.bin
mmc read 0x50000000 0x00196022 0x00020000 && tftpput 0x50000000 0x04000000 mmcblk0p26_swap5.bin
mmc read 0x50000000 0x001b6022 0x00020000 && tftpput 0x50000000 0x04000000 mmcblk0p26_swap6.bin
mmc read 0x50000000 0x001d6022 0x00020000 && tftpput 0x50000000 0x04000000 mmcblk0p26_swap7.bin
mmc read 0x50000000 0x001f6022 0x00020000 && tftpput 0x50000000 0x04000000 mmcblk0p26_swap8.bin
这些命令会将备份文件直接上传到电脑上与 tftpd64.exe
文件相同的目录中。
3.4 刷入 U-Boot
将 U-Boot 文件放在与 tftpd64.exe
文件相同的目录中,然后在 MobaXterm 中执行以下命令,注意修改命令中的 uboot.bin
为实际的文件名称:
tftpboot uboot.bin && flash 0:APPSBL && flash 0:APPSBL_1
# 验证刷入的 CRC32
mmc read 0x50000000 0x00003422 0x500 && crc32 0x50000000 0xA0000
mmc read 0x51000000 0x00003922 0x500 && crc32 0x51000000 0xA0000
上述命令会将 U-Boot 刷入 mmcblk0p13(0:APPSBL)
和 mmcblk0p14(0:APPSBL_1)
分区。
4 刷入固件
成功刷入 U-Boot 后,就可以断开路由器电源,准备进行刷入固件。
提示:
如果是 TTL 刷机的方式,这时也可以拔出 USB 转 TTL 适配器,关闭 TFTP 服务器。
- 首先使用网线将路由器的 LAN 口和电脑的网口连接,长按重置按钮,再次接通路由器电源,当状态指示灯由闪烁红光变为常亮蓝光时,松开重置按钮。
设置以太网 IP:
- 打开
控制面板
>网络和共享中心
>更改适配器设置
- 右键点击
以太网
>属性
- 双击
Internet 协议版本 4 (TCP/IPv4)
选择
使用下面的 IP 地址
并输入以下信息:- IP 地址:
192.168.1.2
- 子网掩码:
255.255.255.0
- 默认网关:
192.168.1.1
- IP 地址:
- 打开
- 在浏览器中访问 http://192.168.1.1,登录到路由器的 uboot web 界面。
- 在页面上点击
选择文件
,并选择要更新的固件文件。 - 点击
更新固件
,此时状态指示灯将闪烁蓝光,表示固件正在上传。 - 上传完成后,页面将显示
UPDATE IN PROGRESS
,状态指示灯会闪烁红光然后常亮绿光。 - 新建一个标签页重新打开 http://192.168.1.1,如果一切正常,将会看到登录页面。默认用户名为
root
,密码为password
。
至此,就可以愉快地玩机啦!
5 进阶:刷入 GPT
到这一章节,假定你已经成功刷入了第三方固件,默认开启了 SSH 功能。
GPT 分区表是一种现代的磁盘分区系统,通常用于创建分区,以便于存储和管理数据。
亚瑟 AX1800 Pro 默认的分区信息如下:
Device | Label |
---|---|
/dev/mmcblk0p1 | 0:SBL1 |
/dev/mmcblk0p2 | 0:BOOTCONFIG |
/dev/mmcblk0p3 | 0:BOOTCONFIG1 |
/dev/mmcblk0p4 | 0:QSEE |
/dev/mmcblk0p5 | 0:QSEE_1 |
/dev/mmcblk0p6 | 0:DEVCFG |
/dev/mmcblk0p7 | 0:DEVCFG_1 |
/dev/mmcblk0p8 | 0:RPM |
/dev/mmcblk0p9 | 0:RPM_1 |
/dev/mmcblk0p10 | 0:CDT |
/dev/mmcblk0p11 | 0:CDT_1 |
/dev/mmcblk0p12 | 0:APPSBLENV |
/dev/mmcblk0p13 | 0:APPSBL |
/dev/mmcblk0p14 | 0:APPSBL_1 |
/dev/mmcblk0p15 | 0:ART |
/dev/mmcblk0p16 | 0:HLOS |
/dev/mmcblk0p17 | 0:HLOS_1 |
/dev/mmcblk0p18 | rootfs |
/dev/mmcblk0p19 | 0:WIFIFW |
/dev/mmcblk0p20 | rootfs_1 |
/dev/mmcblk0p21 | 0:WIFIFW_1 |
/dev/mmcblk0p22 | rootfs_data |
/dev/mmcblk0p23 | 0:ETHPHYFW |
/dev/mmcblk0p24 | plugin |
/dev/mmcblk0p25 | log |
/dev/mmcblk0p26 | swap |
/dev/mmcblk0p27 | storage |
其中 mmcblk0p18
和 mmcblk0p20
默认的大小为 60MB,意味着最大只能刷入大小为 60MB 的固件。
如果你需要刷入大于 60MB 的固件或者扩容 overlay,那么需要刷入大分区的 GPT 分区表。
5.1 刷入 GPT
使用 MobaXterm 的 SFTP 将 GPT 分区表文件上传到 /tmp
目录,然后执行以下命令,注意修改命令中的 GPT.bin
为实际的文件名称:
dd if=/tmp/GPT.bin of=/dev/mmcblk0 bs=512 count=34 conv=fsync
# 验证刷入的 MD5
dd if=/dev/mmcblk0 bs=512 count=34 | md5sum
5.2 新建分区
安装 sgdisk:
# 自动安装
opkg update && opkg install sgdisk
# 若不能自动安装 可以到评论区的集合链接中下载 ipk 文件手动安装
opkg install /path/to/your/sgdisk.ipk
然后执行以下命令新建 storage 分区:
sgdisk -e -n 0:0:0 -c 0:storage -t 0:1B1720DA-A8BB-4B6F-92D2-0A93AB9609CA -p /dev/mmcblk0
提示 The operation has completed successfully
说明成功新建分区。
备份并下载修改后的分区表:
dd if=/dev/mmcblk0 bs=512 count=34 of=/tmp/mmcblk0_GPT_resize.bin conv=fsync
最后运行 reboot
重启路由器。
5.3 还原分区
路由器启动后先格式化 storage 分区:
mkfs.ext4 $(blkid -t PARTLABEL=storage -o device)
挂载 storage 分区:
mkdir /mnt/mmcblk0p27
mount -t ext4 /dev/mmcblk0p27 /mnt/mmcblk0p27
如果后续不需要刷回原厂固件,只需要修复一下 swap 分区:
swapoff $(blkid -t PARTLABEL=swap -o device)
mkswap $(blkid -t PARTLABEL=swap -o device)
swapon $(blkid -t PARTLABEL=swap -o device)
如果后续还需要刷回原厂固件,则需要恢复 plugin、log 和 swap 分区:
上传下面 3 个备份文件到 /mnt/mmcblk0p27
- mmcblk0p24_plugin.bin
- mmcblk0p25_log.bin
- mmcblk0p26_swap.bin
然后执行以下命令:
dd if=/dev/zero of=$(blkid -t PARTLABEL=0:ETHPHYFW -o device) conv=fsync
dd if=/mnt/mmcblk0p27/mmcblk0p24_plugin.bin of=$(blkid -t PARTLABEL=plugin -o device) conv=fsync
dd if=/mnt/mmcblk0p27/mmcblk0p25_log.bin of=$(blkid -t PARTLABEL=log -o device) conv=fsync
swapoff $(blkid -t PARTLABEL=swap -o device)
dd if=/mnt/mmcblk0p27/mmcblk0p26_swap.bin of=$(blkid -t PARTLABEL=swap -o device) conv=fsync
swapon $(blkid -t PARTLABEL=swap -o device)
执行过程中以下报错可以忽略,只要 dd 命令成功即可:
dd: error writing '/dev/mmcblk0p23': No space left on device
block: failed to swapoff /dev/mmcblk0p26 (-1)
最后运行 reboot
重启路由器。
6 进阶:刷入 CDT
当路由器硬改为 1GB 内存,需要刷入 CDT 才能在概览中正确显示内存信息。
使用 MobaXterm 的 SFTP 将 CDT 文件上传到 /tmp
目录,然后执行以下命令,注意修改命令中的 CDT.bin
为实际的文件名称:
dd if=/tmp/CDT.bin of=/dev/mmcblk0p10 conv=fsync
最后运行 reboot
重启路由器。
7 进阶:旁路由模式
7.1 典型拓扑
我们来看看典型的家庭网络拓扑结构:
graph LR
ISP -->|光纤/电缆| Modem(光网络终端/调制解调器)
Modem -->|以太网| Router(路由器)
Router -->|以太网| Desktop(桌面设备)
Router -->|Wi-Fi| Mobile(移动设备)
Router -->|Wi-Fi| AP
AP -->|Wi-Fi| Tablet(平板电脑)
Router -->|以太网| Switch[交换机]
Switch -->|以太网| TV(智能电视)
- 互联网服务提供商(ISP):提供互联网接入服务,通常通过光纤或电缆将网络信号传输到用户家中。
- 光网络终端/调制解调器:负责将 ISP 提供的信号转换为以太网支持的信号。如果是光纤接入,则需要使用光网络终端(也称为光猫)来实现光信号和电信号之间的转换;如果是电缆接入,则需要使用调制解调器来实现模拟信号转和数字信号之间的转换。
- 路由器:负责分配内网 IP 地址和管理网络流量。它通常有多个以太网端口和无线网络接口,网络中的设备通过以太网线或 Wi-Fi 连接到路由器。
- 无线接入点(AP):是一个可选设备,可以提供额外的无线网络覆盖范围。
- 交换机:是一个可选设备,可以增加网络中可用的以太网端口数量。
在实际操作中,通常没有无线接入点和交换机,流程也变得更简单:
首先将光猫的工作模式设置为桥接模式,然后使用网线将光猫的 LAN 口和路由器的 WAN 口连接,最后在路由器上设置 PPPoE 拨号上网。这样路由器就能从 ISP 获取公网 IP 地址,为局域网中的设备分配内网 IP 地址和管理网络流量了。
7.2 名词解释
硬路由
硬路由,即硬件路由器,是一种专门内置路由功能的硬件设备,具有固定的硬件配置和操作系统,用于在不同的网络之间转发数据包。
软路由
软路由,即软件路由器,是一种在通用计算机硬件上运行的路由软件,它可以将电脑、服务器或者虚拟机等转变为具有路由功能的设备,例如 OpenWrt、pfSense 等。
一些品牌的硬路由可以通过刷入 OpenWrt 等固件,获得类似于软路由的高灵活性和可扩展性。
主路由
主路由是指网络中的主要路由器,负责连接到 ISP 获取公网 IP 地址,分配内网 IP 地址和管理网络流量。主路由可以是一个硬路由或者软路由。
旁路由
旁路由,也有人称之为旁路网关,是指挂靠在主路由网络下的额外路由器。它主要提供主路由不便提供或无法提供的功能,例如广告过滤、出国留学等。旁路由通常是软路由或者刷了 OpenWrt 的硬路由,一般通过 LAN 口与主路由器的 LAN 口连接。
简而言之,硬路由和软路由是路由器的两种形态,硬路由是物理设备,软路由是软件实现。主路由是核心路由器,而旁路由是辅助路由器,可以提供额外的功能。
7.3 旁路由模式
通常情况下,路由器使用 DHCP 协议,自动为连接到网络的设备分配 IP 地址、子网掩码和默认网关等网络配置参数。
默认网关是路由器的 IP 地址。网络中数据包总是会经过网关路由到目标地址。因此,我们只需要将设备的网关指定为旁路由地址,就能连接到旁路由并使用其提供的功能。
有 3 种方法可以指定网关:
- 客户端手动配置:无需修改主路由配置,而是在需要连接到旁路由的设备上手动设置网关。侵入性最小,即使旁路由故障,也不会影响到其他未连接到旁路由的设备。
- 主路由自动配置:需要修改主路由配置,禁用旁路由的 DHCP 服务,将主路由的 DHCP 服务下发的网关从主路由的 IP 地址修改为旁路由的 IP 地址。
- 旁路由自动配置:需要修改主路由配置,禁用主路由的 DHCP 服务,将旁路由的 DHCP 服务下发的网关设置为主路由的 IP 地址。
旁路由的网关设置
以使用 OpenWrt 固件的旁路由为例,假设主路由的 IP 地址为 192.168.8.1
,旁路由的 IP 地址为 192.168.1.1
:
- 在管理页面点击
网络
>接口
,找到 LAN 接口并点击修改
选择
基本设置
选项卡并填写以下信息:- 协议:静态地址
- IPv4 地址:与主路由相同网段内的空闲 IP 地址,例如
192.168.8.2
- IPv4 子网掩码:255.255.255.0
- IPv4 网关:主路由的 IP 地址,
192.168.8.1
- IPv4 广播:主路由的 IP 地址的最后一段改为 255,
192.168.8.255
- 使用自定义的 DNS 服务器:主路由的 IP 地址,
192.168.8.1
- 选择下方的
基本设置
选项卡,勾选忽略此接口
,不在此接口提供 DHCP 服务 - 选择
IPv6 设置
选项卡,禁用所有 IPv6 相关的功能 - 点击
保存并应用
按钮
如果指定网关使用的是客户端手动配置,那么到这一步就已经可以了。
使用上述设置的 IPv4 地址登录旁路由的管理页面,点击 网络
> 网络诊断
,Ping 一下 baidu.com 确认旁路由的网络是否正常。
如果指定网关使用的是主路由自动配置,那么继续配置主路由的 DHCP 服务:
- 登录主路由的管理页面,将主路由的 DHCP 服务下发的网关修改为旁路由的 IP 地址。
如果主路由是 OpenWrt,可以在下方的
高级设置
选项卡的DHCP 选项
中添加附加选项:- 3,192.168.8.2(设置旁路由的网关)
- 6,192.168.8.2(设置 DNS 服务器)
有的主路由不支持修改 DHCP 的网关配置,那么也可以使用旁路由自动配置的方法:
- 选择下方的
基本设置
选项卡,取消勾选忽略此接口
- 选择下方的
高级设置
选项卡,勾选动态 DHCP
,勾选强制
- 登录主路由的管理页面,禁用主路由的 DHCP 服务
旁路由的其他配置
出现无法上网、访问国内网站慢等情况,可尝试以下操作:
在管理页面点击 网络
> 防火墙
> 区域
中,勾选 LAN 口的 IP 动态伪装
。
或者在 网络
> 防火墙
> 自定义规则
中设置:
iptables -t nat -I POSTROUTING -j MASQUERADE
两者的作用都是启用旁路由的网络地址转换(NAT)。
45 comments
这个固件挺稳定的 就是无线速度 开机两天后就会掉到正常速度的1/4,设置定时重启也没有用,只能手动拔电源 重启后无线速度就恢复正常了 请问有解决方法吗
請問是刷完U-boot 再刷大分区表嗎?
很详细,谢谢分享,有空试试
楼主,按照5.3还原分区之后,mmcblk0p24和mmcblk0p25都自动挂载了,系统-挂载点去掉还是会自动挂载,怎么把这个挂载去掉?
umount /mnt/mmcblk0p24
umount /mnt/mmcblk0p25
本文中用到的资源合集
https://www.123pan.com/s/YRnojv-VSJN.html
提取码: yind
5.2 新建分区
安装 sgdisk,然后执行以下命令新建 storage 分区:
完蛋了,在这里没说怎么安装sgdisk,直接作废重启失败了,无语
确实 这里疏忽了。
有相关软件下载链接?
https://www.123pan.com/s/YRnojv-VSJN.html提取码:yind
是呀,正需要,哪里有下载地址呢?
请看下评论区
请问资源那里下载 那个cdt 内存那个
https://www.123pan.com/s/YRnojv-VSJN.html提取码:yind
纯小白,请问GPT分区表怎么获取?我现在刷入了uboot,希望扩大分区
请看下评论区
新固件总是刷不上,大佬有办法吗?刷进去之后重启。https://fw.koolcenter.com/Lean/JDC_AX1800_Pro/
固件超过60MB了 要刷大分区表
已赞赏,求更新大分区表教程
谢谢,已更新。请查看 进阶:刷入 GPT 部分
请问一下,怎么刷大分区呢
请查看 进阶:刷入 GPT 部分
大分区的gpt.bin文件哪有呢
已上传
作者你好,你的uboot.bin的md5值是多少
请问刷完大分区文件想要刷回原厂分区,需要怎么刷呢?已经备份过原厂的分区了
上传原厂GPT,然后执行 dd if=/tmp/GPT.bin of=/dev/mmcblk0 bs=512 count=34 conv=fsync
原厂GPT你有吗
我备份过,可以发你试试
你有AX1800PRO的原厂GPT吗,能发我一份吗,[email protected].谢谢你了!
https://www.123pan.com/s/YRnojv-VSJN.html提取码:yind
我2242已经刷成功了,有没有办法能保住ssh,然后用官方固件回点血
只能通过U-boot 刷机吗? Uboot 好像要收费的? 下载不到
搜到一个文章,从这个链接可以下载uboot:
curl -o u-boot.mbn https://oss-hk4.oss-cn-hongkong.aliyuncs.com/tmp/u-boot.mbn
dd if=/root/u-boot.mbn of=/dev/mmcblk0p13
dd if=/root/u-boot.mbn of=/dev/mmcblk0p14
嗯,感谢。搞掂了。现在剩下OP 固件了。