周末本该是快乐游戏时光,我早早泡好咖啡,准备把《赛博朋克2077》的几十G更新拖下来。结果每次进度条跑到百分之十几,Steam突然弹出个“无法连接到网络”,下载归零,网络图标在任务栏里闪了一下感叹号又恢复。浏览器照常刷B站、微信照常聊天,唯独Steam像是被掐了脖子一样烦躁。
起初我以为是服务器抽风,换节点、关防火墙、重启路由,一顿操作猛如虎,问题依旧。朋友说我肯定是路由器老了扛不住并发,可我这是去年刚买的Wi-Fi 6旗舰款,带家里五十多台设备从没掉过链子。抱着怀疑的精神,我决定跟这个断网问题杠到底。
排查一圈,所有常规模块都没毛病
我先从最简单的入手:把Steam的下载缓存限制调到16GB,又取消了“在下载时允许下载进度”的选项——网上都说这个选项会导致频繁写入引发网络卡顿,但改完测试,断开依旧。接着我尝试限制下载速度,从30MB/s一级一级往下试到5MB/s,还是会在差不多相同的时间点掉线。
然后是网络层面的折腾。我把DNS换成1.1.1.1,关闭了路由器里的IPv6,甚至用网线直连光猫拨号,绕过整个内网。奇迹出现了——直连状态下下载完完整整的更新包没断过。这说明问题出在我的局域网内部,而不是宽带运营商。
重新接回路由器,我把所有设备的静态IP绑定,关闭了UPnP、QoS、流量限制这些花里胡哨的功能,还是不行。我甚至把路由器固件刷了OpenWrt,结果断得更频繁,差点崩溃。
一个偶然的发现:SQM的锅
第三天我已经准备放弃了,躺在沙发上无聊翻路由器的日志,发现每次Steam下载断网前后,路由器的CPU占用会突然冲到100%,然后网口状态会有一次“link down/up”的记录。路由器明明没重启,怎么会自己重连网口?我开始怀疑是流量整形模块误判了。
我用的这路由器默认开启了智能队列管理(SQM),说是能平衡游戏和视频的延迟,但我怀疑它把Steam的大量小文件并发写入当成了攻击流量,触发了保护机制。我找到SQM的页面,把它彻底关闭,又顺手把“流量优先级”全部重置为默认。
重新下载——这一次,进度条稳稳过了50%、80%、100%,再也没有弹出那个可恶的错误提示。我盯着完成通知愣了几秒,心情像挖到了宝藏又像吞了苍蝇:搞了三天,罪魁祸首居然是一个“优化功能”。
尾声
后来我查资料才知道,Steam的下载机制会同时发起大量短连接并频繁读写硬盘,这对路由器的连接跟踪和CPU处理能力都是考验。SQM为了给你“优化”带宽分配,反而在高并发场景下频繁重置队列,导致路由器以为端口异常,自作主张断开物理链路。关了它之后,四台设备同时下载、看4K视频、打《CS2》都再没出过类似问题。
现在每次开机下载,我都会下意识看一眼路由器CPU占用,确认它处于悠闲状态才放心。这三天像是一场被迫的网络溯源特训,虽然过程炸毛,但好歹找到了真凶。如果你也遇到同样的情况,不妨扒一扒路由器后台里那些看似智能的开关。
