记一次路由器折腾

记一次路由器折腾

起因

两个月以前 B 站上总是刷到 NixOS 的视频,加上之前尝试安装 Hyperland 不成功,于是就想在 NixOS 上尝试一下。一番测试下来,遇到了各种问题,具体是什么情况已经忘记了,但是我还记得在新系统上想要去 Github 下东西一直很麻烦,特别是因为我学校的校园网,Github 的 DNS 解析有问题,非得自己设置 host 或者改 DNS。
放寒假后,在家里发现吃灰很久的一台路由器,所以就有了这次折腾。

折腾

历程

路由器的型号是 ZTE E8820V2,网上搜了一下发现可以刷 OpenWrt,然后发现 OpenWrt 上可以装 OpenClash,于是便开始查找攻略。

最开始找到的攻略是哪个我已经不清楚了,不过具体的刷 Breed 是看的这个教程
不知道是不是因为我家里的路由器放置太久了,死活焊不上,那铜吃不了一点锡的。
回到学校后,淘了一个二手同款路由器,拆开后发现 TXDRXD 触点上已经有锡了,直接把锡融化就可以焊上去,另一个 GND 触点锡太少,我自己的锡又是粘不上去,后面是在主板上找了一块同为地线的、其他元件用来散热的区域,隔着层海绵,用手摁着地线刷的 Breed。

刷入 Breed 后,发现在 Breed 模式下不能通过无线连接,而我没有准备一根网线,只能下单然后等到网线送到。

视频里提供的是“老毛子”的固件,刷上只之后发现不符合我的需求,于是继续找其他的固件,在上面的视频简介中找到这篇帖子,我先是刷了名为 128.bin 的 OpenWrt 固件,但是当我想继续配置 Clash 时发现剩余的空间不足以安装 Clash 内核。
固件的帖子里提到了一个扩容的帖子,不过固件中没有安装 block-mount,想安装结果储存空间不够安装不上,只得安装另一个名为 基础固件.bin 的固件,该固件自带 block-mount,可是插上 U 盘却识别不了,根据查到的攻略尝试安装几个 kmod-usb-*,也没有效果。
随后还入群下新固件,都没有效果,甚至尝试刷回一开始的 128.bin 固件后,路由器的 DHCP 不分配 IP,连 OpenWrt 的管理界面都进不去。
最后只得刷回 基础固件.bin

目前能达到的最好效果是:

网速

校园网额定带宽为 100Mbps,测试下来,电脑为 ~130Mbps,手机 ~70Mbps;电脑设置 iperf3 服务端,手机测试与电脑连接速率为 ~200Mbps。

结论

不要图便宜买 E8820 来折腾😭,储存空间太小,干啥啥不行,而且新的固件也不好找,找到了刷上去也不一定能用。

详细过程

材料

以下是这次折腾的大致花费,供你参考。

名称价格
路由器本体28.00
烙铁工具18.90
USB 转 TTL4.35
杜邦线6.90
网线13.3
合计(必要)71.45
小电线(没必要)19.80
合计91.25

算下来花了快一百了,虽然这些工具后面还能继续用,但还是感觉好亏。

刷入 Breed

我这块板只有 TXDRXD 焊接得上,GND 则是直接按住在下图的白色圆圈中。

电路图
电路图

其他部分与视频中的操作相同,此处不再重复。

刷入 OpenWrt

根据视频中的操作,一直到最后刷写固件这一步,换成 基础固件.bin,其余步骤相同。
固件写入完成后,等待机器重启,然后进入 192.168.1.1,密码为 password

修改密码

管理权菜单
管理权菜单

点击上方 系统 / 管理权

管理权界面
管理权界面

输入新的密码,然后下方的 SSH 访问将接口切换到 lan(只允许局域网内部通过 SSH 连接),然后划到页面最下方,点击“保存&应用”。

换源

接着点击上方 系统 / 软件包,然后再点击页面中的 配置

option check_signature 一行删去,否则无法正常安装软件包,接着点击 “提交” 以保存修改。

然后修改下方的发行版软件源,这是我整理的截止至 25 年 3 月 1 日可用的软件源:

awk
src/gz openwrt_core https://mirrors.tuna.tsinghua.edu.cn/openwrt/releases/21.02.0/targets/ramips/mt7621/packages
src/gz openwrt_base https://mirrors.tuna.tsinghua.edu.cn/openwrt/releases/21.02.0/packages/mipsel_24kc/base
src/gz openwrt_luci https://mirrors.tuna.tsinghua.edu.cn/openwrt/releases/21.02.0/packages/mipsel_24kc/luci
src/gz openwrt_packages https://mirrors.tuna.tsinghua.edu.cn/openwrt/releases/21.02.0/packages/mipsel_24kc/packages
src/gz openwrt_routing https://mirrors.tuna.tsinghua.edu.cn/openwrt/releases/21.02.0/packages/mipsel_24kc/routing
src/gz openwrt_telephony https://mirrors.tuna.tsinghua.edu.cn/openwrt/releases/21.02.0/packages/mipsel_24kc/telephony

然后点击 “提交” 以保存修改。

当然,这里也有原本的配置的软件源以备用:

awk
src/gz openwrt_core https://downloads.openwrt.org/snapshots/targets/ramips/mt7621/packages
src/gz openwrt_base https://downloads.openwrt.org/snapshots/packages/mipsel_24kc/base
src/gz openwrt_AdGuardHome https://downloads.openwrt.org/snapshots/packages/mipsel_24kc/AdGuardHome
src/gz openwrt_helloworld https://downloads.openwrt.org/snapshots/packages/mipsel_24kc/helloworld
src/gz openwrt_luci https://downloads.openwrt.org/releases/18.06.8/packages/mipsel_24kc/luci
src/gz openwrt_packages https://downloads.openwrt.org/snapshots/packages/mipsel_24kc/packages
src/gz openwrt_passwall https://downloads.openwrt.org/snapshots/packages/mipsel_24kc/passwall
src/gz openwrt_routing https://downloads.openwrt.org/snapshots/packages/mipsel_24kc/routing
src/gz openwrt_smartdns https://downloads.openwrt.org/snapshots/packages/mipsel_24kc/smartdns
src/gz openwrt_telephony https://downloads.openwrt.org/snapshots/packages/mipsel_24kc/telephony

安装 curl

通过抓包校园网登录页面,确认我所在学校的校园网可以使用 curl 发送请求来登录,不过这个固件不包含 curl。

首先手机打开热点,然后点击 OpenWrt 管理界面上方 网络 / 无线

扫描无线网络
扫描无线网络

然后点击“扫描”,找到你的热点,然后点击“加入”,输入密码,点击“提交”,再点击“提交&应用”,此时路由器就连接到互联网了。

接下来一步需要你的电脑上有 SSH,如果没有,请自行安装。
打开终端,输入 ssh root@192.168.1.1 登录到路由器。
然后依次输入 opkg updateopkg install curl 来安装 curl。

屏蔽校园网检测

断开手机热点连接,然后将路由器连接到校园网。因为我这的校园网不提供网线连接,因此步骤同上。

我所在学校的校园网检测方式较为简单,首先在 系统 / 系统 中的时间同步中的“候选 NTP 服务器”改为如下四个 NTP 服务器:

stylus
ntp1.aliyun.com
time1.cloud.tencent.com
stdtime.gov.hk
pool.ntp.org

网络 / 接口 中找到校园网所在接口,我这里使用无线连接,接口为 WWAN,如果是网线连接,则是 WAN。点击接口右边的“修改”,在“高级设置”中,关闭“使用内置的 IPv6 管理”。

然后在 网络 / 防火墙 中,进入 “自定义规则”页面,添加:

sh
iptables -t nat -N ntp_force_local
iptables -t nat -I PREROUTING -p udp --dport 123 -j ntp_force_local
iptables -t nat -A ntp_force_local -d 0.0.0.0/8 -j RETURN
iptables -t nat -A ntp_force_local -d 127.0.0.0/8 -j RETURN
iptables -t nat -A ntp_force_local -d 192.168.0.0/16 -j RETURN
iptables -t nat -A ntp_force_local -s 192.168.0.0/16 -j DNAT --to-destination 192.168.1.1

iptables -t mangle -A POSTROUTING -j TTL --ttl-set 64

然后点击“重启防火墙”。

最后,在刚刚的 SSH 终端中,使用 curl 发送登录请求。

至此,可以通过路由器为多台设备提供网络而不会被校园网检测到。

比较可惜的是,由于校园网不能使用静态 IP 连接,而且登录请求中的 cookie 包含当前设备的 IP 地址,所以没法将登录请求写入启动脚本,每次路由器重启都需要进入 SSH 重新发送登录请求。

创建 AP

网络 / 无线 中,有两个默认的 SSID 为 OpenWrt 的 AP,点击右侧的“修改”,即可修改 AP 名称以及密码,修改完成后,需要将修改好的 AP 禁用再启用才能应用修改。

其他

重新进入 Breed

断电的情况下按住 Reset 键,然后通电开机,等到电源灯常亮时,则说明已经进入 Breed。

引用

【穷玩】36元的路由器刷机回血!广告屏蔽!BT下载!中兴8820V2
https://www.bilibili.com/video/BV1S54y1E71u
E8820V2 64/128 OPENWRT解决方案丝滑流畅
https://www.right.com.cn/forum/thread-4310866-1-1.html
OPENWRT 硬路由U盘挂载软件空间扩容
https://www.right.com.cn/forum/thread-4065816-1-1.html