太长不看版:
笔记本背后长期供电的 USB 3.0 充电接口连接 USB Hub 后,在电脑关机/休眠后可能会干扰 2.4GHz WiFi。
先说说环境:笔记本电脑常年外接了一个绿联的 USB 3.0 Hub;树莓派 4B 就放在电脑旁边,使用 2.4G WiFi 连接路由器上网(之所以用的是 2.4G 而非 5G,是因为树莓派系统里不能显示 5G 的 WiFi,这似乎是树莓派 WiFi 区域设置为 CN 的问题,但我懒得搞,也就随它去了,毕竟 2.4G 也不是不能用嘛……)。
事情的起因是给树莓派装上了 LNMP 环境,跑了个测试网站,且做了内网穿透以便在外访问。之后,我偶尔会发现无法访问测试网站,但由于没法稳定复现这个问题,只能作罢。后来,我开始用 UptimeRobot 实时监控这个网站是否可访问。
某一天晚上,我关闭笔记本之后不久,就收到了监控邮件,提示树莓派的网站下线了。于是我用手机 SSH 试图登录树莓派查找原因,发现无法连接。可是一看,书桌上的树莓派明明工作得好好的,看不出有什么问题。于是我打开电脑想要认真检查一下这是怎么回事。然而当我用电脑 SSH 尝试连接树莓派时,神奇的事情发生了,居然又可以登录上了,而且网站也迅速恢复了正常。
在排除了手机 SSH 应用出 bug 了的解释后,我看着此时正常得不能再正常的树莓派,只好放弃,把电脑关机了。很快,我再次收到了网站下线的提醒,同样的剧情再次上演,手机无法登录,电脑开机后则一切恢复正常。如是者三。
我终于意识到这个诡异的 bug 似乎和笔记本电脑的开关机状态存在着某种不可名状的联系。于是我进行了多次测试,发现无论是关机还是休眠,只要笔记本电脑停止工作,树莓派也会几乎同时停摆——准确地说,是直接断网,因为我检查了路由器的主机连接情况。然而非常不合理的是,我的树莓派与笔记本并不存在任何的物理连接,USB、网线,这些统统都没有。就在我甚至开始怀疑是供电电源波动的问题时,树莓派旁边亮着蓝灯的 USB Hub 引起了我的注意。由于这个 Hub 是连接在笔记本后面的持续供电 USB 3.0 接口上的,因此只要笔记本连接着电源,Hub 就始终处于通电状态。
一个不太冷的知识从我脑中闪过:如果屏蔽没做好的话,2.4G 的 WiFi 与 USB 3.0 很可能存在信号互相干扰的问题。
于是我拔掉了这个该死的 USB Hub。终于,树莓派一切工作正常,不再跟随电脑的开关机而反复横跳。这个诡异的 debug 过程也就此宣告结束。
教训:把 USB Hub 放远一点 给树莓派连上 5G WiFi 买个 好一点 贵一点的 USB Hub!