在 ServerFault 上的第一篇文章。希望对一个奇怪的问题有一些见解。这需要一些背景故事,但问题的 TLDR-ish 版本是这样的:随机地,我的 2021 年 Macbook Pro 将从睡眠状态唤醒(盖子关闭),并且无法连接到任何接口上的任何网络,无论是有线还是无线。当此条件为真时,路由表(使用命令“netstat -rn”生成)列出的路由很少(4 或 5),并且没有默认路由或对本地子网的任何引用。以下是一张屏幕截图,显示了路由表的工作版本与问题出现时我看到的版本之间的对比: https://www.screencast.com/t/2gSTyhkgf
以下是我认为与解决此问题相关的背景故事:
1 个月前,我使用 Apple 的迁移工具将旧 MacBook 的设置和文件迁移到新(当前)MacBook 上。迁移中包括网络设置(我有很多不想丢失的 WiFi 网络)。使用新 Mac 的第一个月大部分时间都没有问题……运行良好。顺便说一下,新 Mac 是基于 M1 的芯片。
我注意到在系统首选项 > 网络中,有 2 个 VPN 我还没有在新 Macbook 中安装,它们是 NordVPN 和 Sonicwall SSL 客户端。我曾经/从未尝试使用它们,但它们作为网络中的接口存在,位于 wifi 和我的 2 个有线 NIC(加密狗)下方。
网络中不存在的第三个 VPN 客户端是基于 Wireguard 的隧道平台。该客户端的供应商名称是 ControlOne。和其他客户端一样,我也有不是在新 Mac 上安装了此 ControlOne 应用程序。但是,几天后我注意到隧道已打开,我的出口位于德克萨斯州(我在田纳西州)。ControlOne 应用程序没有 UI,因此我正式安装了它,然后断开了连接。Macbook 继续正常工作......目前要解决的问题尚未出现。
我安装了 Parallels,并使用它创建和关闭了几个不同的 Win 11 VM。我保留了它的第三个版本,并在几个客户站点上使用它来解决网络问题(我更熟悉 Windows 网络而不是 Mac,更喜欢用它来解决客户问题)。我首选的 Parallels 网络模式是使用他们所谓的“桥接”在 Windows VM 和 Mac 的活动接口之间进行连接,通常是无线的。他们的“桥接”模式的好处是 Mac 和 Windows VM 都可以在当前子网上获得 IP,因此不存在 NAT 问题,不会干扰使用 Windows VM 进行网络故障排除/配置客户端内容等。你明白我的意思。同样,这在几周内都正常工作。
问题的开始。在一家餐厅吃午餐,我等着客户办公室开门,为他们做一些网络工作,我试图连接餐厅的 wifi,希望一旦我找到互联网路由,就可以使用我的 ControlOne VPN。它显示已连接,但没有 IP。我以为他们出了问题。接下来尝试连接到我的 iPhone 热点,如果在路上,我每天至少会这样做一次。同样的问题……连接了,但没有 IP。我忽略了这个巧合,吃了我的芝士汉堡,因为我当时不需要吃它。
到达客户站点,这是我建立的网络,并且已经在此 Macbook 上与之交互过几次,但无法连接……同样的问题,没有 IP。开始进行故障排除,发现即使我在 Macbook 上的任何 NIC/接口的正确子网中输入静态 IP,我也无法退出。大多数情况下,我可以 ping 通本地子网上的东西,但不能 ping 通互联网。这是一个很好的例子:当这种情况发生时,我的 Parallels 中的 Windows VM 运行正常。没有任何网络问题。DHCP 发布/更新工作正常。这让我很困惑。
我发现,如果我重新启动我的 Mac,网络会恢复,但随后会在某个随机时间(非常短的时间)内出现故障,而无需将 Mac 置于睡眠状态(合上盖子几分钟)。让我找到路由表的线索是尝试 ping 本地子网外的某个东西,结果出现“无路由到主机”通知。
然后我开始查看路线表以了解那里发生了什么,并观察到上面链接的屏幕截图中显示的内容(或类似内容,如果不完全相同)。
作为故障排除步骤,我将 ControlOne VPN 拖到垃圾桶中,将其删除。我不知道还有什么其他方法可以更彻底地清理 Mac 上的应用程序。这对问题没有影响。
接下来,我删除了 Parallels,将其从等式中消除。没有变化。
我删除了网络配置 UI 中存在的 2 个 VPN 客户端(NordVPN 和 Sonicwall SSL 客户端)。没有变化。
我唯一的解决办法(也是暂时的解决办法)是,当这种情况出现时重新启动 Mac。我还没有能够以任何可预测的方式故意导致问题发生。也就是说,我可以关闭 MacBook 的盖子 5 分钟、30 分钟或 2 小时,当我打开它时,网络问题可能会出现,也可能不会出现。我不知道问题的实际触发因素是什么。
那是大量的信息。如果您仍在阅读此文,我将不胜感激。如果您对我如何识别此问题的根源有任何建议,或者对如何在不完全清除/重新加载 MacBook 的情况下解决问题有任何想法,我都愿意倾听。如果我们能找到可行的解决方案,我很乐意以某种方式补偿某人!(不确定这里是否做到了,但就是这样)。
不管怎么说,我作为 IT 专业人士有 20 多年的经验,但几乎都是在 Windows 上工作。我创办了一家 MSP,作为一家全栈商店为小型企业客户提供支持,并将继续运营这家 MSP……但 Mac 的问题让我很困惑,而 Apple 支持虽然很友好、很及时,但还没有理解路由表是什么。我走进了死胡同。
再次感谢您的阅读。如果您有任何建议,我将不胜感激。