Mac 电脑长时间不关机,对多数用户而言是常态,但对于将 Mac 作为服务器来说暗藏风险,近期外媒指出,macOS 存在一项潜在的系统层级「时间炸弹」漏洞,只要 Mac 长时间连续运作达约 49.7 天后,可能出现网络功能全面失效的情况,背后原因直指 TCP/IP 堆叠中的整数溢位问题有极大关联,目前唯一可行的应对方式仍是重新开机。
Photon解析造成macOS系统49.7天后断网失效原因
根据《Tom’s Hardware》报导,尽管macOS源自Unix架构,但并非针对长时间无人值守运行所设计,一旦系统连续运作达49天17小时2分47秒,会造成TCP/IP网络协议堆叠可能发生异常,导致多项核心网络功能停止运作。
在正常设计下,macOS 操作系统会定期清理已关闭的 TCP 连线,但当 tcp_now 发生溢位并卡在错误状态时,系统在判断连线是否过期时会持续出错,导致已失效的连线无法被移除、暂时接口被持续占用和TCP/IP 堆叠逐步耗尽可用资源,当所有可用接口被占满后,系统将无法建立任何新连线,网络功能形同完全瘫痪。
受影响的 Mac 仍可能响应 ping 测试,但已无法建立新的网络连线,形同半失能状态,使问题更难即时察觉与诊断。
此问题主要是由 Photon 团队率先在监控 iMessage 服务的 Mac 服务器群中发现,受影响设备会突然停止响应新的连线请求,但仍可正常响应 ping。
研究人员将原因锁定在典型「整数溢位」,与早年 Windows 95/98 出现的 49.7 天当机案例高度相似,以及著名的「2038 年问题」属于同类型。 虽然REFC 7323已明确规范TCP时间戳在达到上限时的处理方式,但目前macOS核心的实作并未完全遵循该标准,进而导致错误发生。
macOS定时炸弹漏洞核心:与 32 位时间计数翻转有关
在底层实作中,系统会以毫秒为单位,持续记录自开机以来的时间。 该数值通常以32位整数储存,其最大值约为4,294,967,295,当系统运行时间达到约49.7天时,这个数值会达上限并发生回绕,也就是归零重新计算。
若程序未正确处理这种翻转情况,而仍以一般大于/小于逻辑比较时间先后,就会导致判断错误,结果会出现系统误判连线状态、网络封包处理逻辑失效和TCP/IP 堆栈逐步停止运作,最终使整体网络功能陷入停摆。

为何现在才浮现? 主要Mac长时间运行场景增加
对多数MacBook用户而言,这项问题影响相对有限,原因在于日常使用会定期关机或重开和系统更新也常触发重新启动。
随着越来越多人将 Mac mini、Mac Studio 或 Mac 设备作为长时间运行的用途(例如服务器、监控节点或特定自动化任务),像是有很多人开始用 Mac mini 养龙虾,导致设备可能数月不重开机,反而「49.7 天门槛」更容易稳定触发这个时间炸弹。

暂无官方回应,需等待macOS核心更新修复
目前所有已知最新 macOS 皆可能受到影响,而苹果尚未对此问题做出正式回应,在修补方案尚未推出前,唯一有效的临时对策仍是重新开机。 若未采取预防措施,随着系统运行时间逼近临界点,网络功能崩溃几乎不可避免。
随着越来越多用户将 Mac mini 等设备应用于服务器与长时间运行场景,在苹果尚未释出更新前,就只能定期重开机与监控系统 uptime,后续依赖苹果修正核心逻辑,才能确保 macOS 能在跨越 49.7 天的运行周期后,仍维持稳定的网络运作能力。
