这件事还要从上周的那个暴风雨的夜晚说起。当时,我正用奇怪的姿势躺在椅子上看《天魔大国境》,外面唰唰地下着雷雨。突然,显示器就灭了,边上的风扇也停了。原来,是暴雨太大损坏了线路,镇上大部分村都停了电。山区里发生这种情况司空见惯,我也就没当回事,所以直到第二天我才发现了不对劲的地方:网络 broken 了。
具体的状况是:路由器系统灯正常、网络灯异常;WiFi 异常;有线设备网络时有时无;通过中枢网关连接的智能家居设备无法正常使用。
有网、路由器却不能用。所以我初步判断,可能是路由器坏了。我使用的路由器是 WR30U,这是联通基于小米 AX3000 的运营商定制版,我的宽带却是移动的,据说使用非联通宽带会有被锁机的可能。而正巧最近 WR30U 的免拆机刷机方案出来了,锁机不可能把硬件层锁住吧?换个软件应该是可以破除锁机的,我也想试试看到底这 OpenWRT 使用效果如何,所以就决定先刷机。
给 WR30U 刷机
刷机方面,我参考的是酱紫表的《小米 WR30U 解锁 SSH 刷 openwrt,最有性价比的百元路由器》。教程事无巨细,工具也提供得十分齐全。但是仍有两点需要注意到的地方,教程中没有提及。
网络属性需要设置为专用网络1
如果不将网络设置为专用网络,就会在执行
python server_emulator.py
后一直卡在 Waiting for device 动弹不得。具体解决办法就是在 网络和 Internet 里将这个网络设置为专用网络。
如果这里没有设置选项,可以使用快捷键
WIN+R
打开运行,键入secpol.msc
打开 本地安全策略,在 网络列表管理器策略 里将这个网络修改为专用。执行 SSH 连接命令时,可能需要将命令改成这样2:
ssh -o HostKeyAlgorithms=+ssh-rsa -o PubkeyAcceptedKeyTypes=+ssh-rsa root@192.168.31.1
按原命令直接操作,可能会出现如下报错:
Unable to negotiate with 192.168.31.1 port 22: no matching host key type found. Their offer: ssh-rsa
这是 PC 系统中的 OpenSSH 版本太高的缘故。
另外,如果你有使用 Host 的方式连接,也可以写成这样:
Host WR30U HostName 192.168.28.1 User root Port 22 HostKeyAlgorithms +ssh-rsa PubkeyAcceptedKeyTypes +ssh-rsa
再执行
ssh WR30U
就可以连接上路由器的 ssh 了。
之后,按照教程中的说明在 UBoot 中上传 QWRT 的固件,等待重启,就可以进入 QWRT 的后台了。
QWRT 的 UI 还是挺好看的。
但是!OpenWRT 我不会用啊……折腾了一整个晚上,都没能搞定在这上面使用 AdguardHome 和 OpenClash。更重要的是,网络还是不能用……
这下没辙了。OpenWRT 又不会用,网也没好,我就只能再刷回原厂系统去,然后思考下一步的对策。
于是,我把目光转向了我 PC 的网络环境上。
重置 WIN11 网络
想对电脑的网络动刀子由来已久。很早之前就不知道什么奇奇怪怪的原因,不开启 TUN 模式的话,Clash 就没网。却又会因为 Clash 自身的虫子,开启 TUN 模式时,电脑休眠重新唤醒之后,Clash 会制造大量的网络连接,占用 CPU 进程,导致电脑卡顿。
所以,在 WIN11 中找到 网络重置 后,我就把网络给格式化了。重置后需要重启系统。
顺带重置了下 Clash for Windows。
可是!网络还是不行……
这下丈二和尚——摸不着头脑了,既跟路由器无关,也和电脑自身没有关系,难道是雷把光猫劈坏了?确实有这个可能吧?于是我打通了 10086 宽带报障,等工作人员上门排查。
场外求救:宽带报障
负责我们这座山的工作人员冒着雨来到了我家,我向他阐述了最新发现的故障的大概情况:「连接电脑没问题,可是再连上一台 NAS,网就不行了」。他查看了宽带后台系统,我这宽带的光猫连接一切正常。而且,他对我的说明十分不解,表示并不清楚系统层的东西,为此还咨询了资历深的同事,俩人都表示对我的网络无能为力。
没办法,深山里叫人办事并不是一件容易的事,期间我一直想问他光猫后台的登录 IP,因为默认的 192.168.1.1 我已经连不上去了。但他一直装没听见……所以只能请走了他。尽管这些工作人员的专业水平参差不齐,不一定知晓所有网络故障的原因,但我却在沟通中猛然发现了问题的盲点:会是因为 NAS 吗?
排查 NAS 程序
我早就该想到这个了!只是一直觉得是网络层上的故障。经过我多次插拔 NAS 的网线,确定了「只要 NAS 一入网,网络就会掉线」的事实。
罪魁祸首就是你, NAS!!!
既然知道一切的源头是 NAS ,那排查起来就简单多了。首先我想到的是旁路由的事。之前想尝试用虚拟机安装 OpenWRT 当旁路由,但因为不会用 OpenWRT 这玩意所以很早就放弃了,不过虚拟机我没有删除。难道会是因为这个?所以我删除了虚拟机。只是,网络还是没有发生好转。
期间我又询问了从事网络相关工作的朋友,尝试了追踪路由、wireshark 抓包。但是我在这方面动手能力实在是差,也没能得出个什么结果来……
那就只剩下排查 NAS 上安装的一堆 Docker 容器了。我自己是觉得没有安装什么会影响网络的东西,有也就只能是 Clash。但单独停止 Clash 并没起到什么作用。于是决定把容器全部停掉,再一个个重启筛查。在逐一排查具体容器的时候,顺便整理了下我混乱的 docker 环境。最后,我发现,只要一启动两个 qBittorrent 容器,网络就会立马爆炸。
问题是 qBittorrent ?
所以是因为 qBittorrent ?我首先想到的是 qBittorrent 随机的端口是不是和内网里的什么服务冲突了,但修改了数次没有什么实际作用。
我又想到了 macvlan 网络的问题。为了能在群晖的 Docker 环境中用上 IPv6,我参考大佬的《使用 macvlan 为 Docker 配置 IPv6》教程配置了 macvlan 网络。有 IPv6 的 qBittorrent 下载速度超快!但一直用得好好的,雷雨之后才出现了故障。总不能是我创建 macvlan 网络的过程中出了问题吧?也不是没有这个可能性,我是个很马虎的人。但无论是重新 docker network create
创建网络,还是后来查到可能是容器的 mtu 值与路由器不一致,在创建网络的时候指定了 mtu 值,都不能让网络好转……所以问题不是出在 macvlan 上。
场外求救:万能的群友
万念俱灰。虽然我有向群友求救,但我描述的这点信息实在不足以用来定位故障产生的原因。不过,有位群友提到了可能会是 qBittorrent 连接数过高 或 路由器性能不足 的问题,他的 qb 开起来内存就爆了,而我的也差不多是他所说的状况。
更换路由器和修改 qBittorrent 连接数是同步进行的。
更换路由器
当晚下单的 Redmi AX6000 第二天就到了,但换上之后,NAS 一接入,网照样炸……
所以不是路由器的性能问题。
修改 qBittorrent 连接数
在 qBittorrent 的连接限制中,默认的配置是「全局最大连接数:500」和「每 torrent 最大连接数:100」。
一个容器跑满是 500,两个跑满那就是 1000 个连接了,我不觉得我的路由器有羸弱到连 1000 个连接都顶不住。算上跑 PT 的 Transmission 那 200 的连接数,总共也就 1200。我也就在保持新番三四百个种子、VCB 的 BDrip 两百多种的上传而已,不至于吧……
但既然觉得是连接数的问题,网上用「qBittorrent 连接数 网络中断」搜索也确实有相似的案例。所以我把连接数改成了 200 和 80。
网还是炸……
特喵的!一气之下,重新创建了两个 qBittorrent 容器,什么种子都没有。
网好了……
好了……
了……
解决了?
所以解决了吗?并没有。就算是写着水文的现在,网络也还是会时不时地中断一下。虽然能确定是 qBittorrent 连接数过高导致的问题,但是叫我不做种那是万万不可能的。雷雨之前一切都是好好的啊!我还是觉得光猫被雷劈坏的可能性高一些,又或者被移动限制了连接也说不定,现阶段只能把分享率调低一点了……
再后来
又过了一周,有看到这篇文章的群友说「可能是光纤的光衰有了问题」。虽然我就不懂什么叫光衰,但查看光衰除了用仪器检测,另一个办法就是进光猫直接查看,光猫的管理后台是有数值的。
可是先前就提到过,我在把光猫改成桥接模式由路由器拨号后,就进不去光猫后台了。所以一通电话投诉到移动去,最后还是让小哥上了门。
山里的装维小哥是真的菜,折腾了半天都没搞明白我这网是咋回事。最后一顿操作下连原先的猫也上不了网了,因为他不会进入超级管理员的后台更换密码拨号上网,甚至不懂啥叫路由器拨号……所以他直接给我换了个新猫……
新猫是移动回收回来翻新的,出厂是2016年;而我的旧猫反倒是2019年生产的,小哥收走了我的旧猫就跑了……
后来,叫他问上头要超级密码,结果他给我发的截图……五个数字由英文数字组合,结果里面有两根竖线你根本分不清是大写的「i」还是小写的「L」……最后还是试出来了,改回了路由器拨号。
第一天 qb 下载网中断的特别厉害,可是后面网就好了很多,也是很神奇……
本文作者:mikusa
本文链接:https://www.himiku.com/archives/my-internet-is-boom.html
版权声明:所有文章除特别声明外均系本人自主创作,转载及引用请联系作者,并注明出处(作者、原文链接等)。
不知道现在网络恢复了没?我碰到过一次网络故障可以参考下,前几年买的新主板是 2.5G 网卡,在内网长时间满载传输文件的情况下,大概一个小时到两个小时左右,会导致整个网络崩掉,用 wireshark 抓包也没找到原因,断网后只有少量的内网寻找路由的包,怀疑过主路由,交换机,最后才定位到是这个板载网卡的问题。
这类硬件问题总结起来就是很玄学。
改了下做种,两三倍自动停止。然后就没再出现过了这种网络问题了 (⌐■_■)
我也遇到这个问题了,不过我是路由器死机重启。我全局最大连接数才100,路由器CPU内存占用也才50%左右,搞不懂为什么会死机。
记得以前买了个tplink的路由器, 跟博主情况一样, 接上NAS网络就疯狂丢包和高ping高延迟, 但是用另一款小米的路由器就没有问题.
我也试过换线, 暂停nas上的所有应用, 路由器调整设置一类的措施, 无一有用.
甚至京东换货两次也没解决, 非常神奇, 非常奇怪.
应该是ISP下调了并发上限
我之前也因为qb的连接数过高导致连不上nas的情况,不过只有nas炸了(内存一直超90%)。后来我把nas加了块内存,然后把连接数和“高级”里的相关参数设了下,nas就好了(内存低了,cpu高了)。
感觉也没啥参考价值。我的路由器是一台AC86U和一台AC68Umesh的。
这么点链接数把网络打趴下不应该呀。
其实连接数调更小一点也没啥问题,一般情况不会有那么多人来连接你,几十个我觉得都很多了
我之前也试过类似断网不过我是比特彗星连接数过多,调低了就不断网,推测也是运营商限制
一直觉得 OpenWrt 的侵入性很强,默认的 Dnsmasq 什么都想接管。可能对于我来说,还不如自己用 archlinux 当软路由,至少什么都可以自己 DIY。
所以我只在群晖里安了个 adguardhome 接管一下 dns,其他不想动了…… (:3」∠)
你的网莫不是配的8.8.8.8和其他国外的DNS……
用的运营商默认的,就是连接数太多的问题……
如果是连接数太多的话那有可能是运营商那边卡脖子。