Mac 睡眠时 VPN 断开
Mac 睡眠时,网络连接会断开,大多数 VPN 隧道也会随之断开。唤醒后 VPN 必须重新连接。本指南会找出断开发生的时间,以及哪项设置能让 VPN 重新连接。
我的 Mac 出现了这个问题:Mac 睡眠时 VPN 断开。请阅读 https://kilobat.app/zh-hans/guides/vpn-disconnects-after-sleep.md,并和我一起逐步处理。如果缺少 Kilobat CLI,请安装:brew install seifip/kilobat/kilobat。请你自己运行指南中的终端和 kilobat 检查,并告诉我发现了什么。列出只有我才能完成的步骤。更改任何设置之前先问我。
症状
- 打开盖子后,VPN 显示为已断开。
- VPN 在其 App 中显示已连接,但唤醒后没有任何流量通过。
- 通过 VPN 的下载或 SSH 会话在每次 Mac 睡眠时停止。
- 唤醒后内部网站会失败一分钟,然后又恢复正常。
可能的原因
- 睡眠期间网络链路断开。隧道依赖于 Wi-Fi 或以太网连接。当 Mac 重新加入网络时,VPN 必须重新连接。
- VPN 没有自动重新连接。VPN 按需连接和 VPN App 中的重新连接选项会重新启动隧道。没有它们时,你需要手动连接。
- “VPN 按需连接”无法询问你的密码。Apple 表示,“VPN 按需连接”需要无需用户交互的认证,例如证书。
- 唤醒后 Wi-Fi 加入缓慢。在 Mac 有可用网络之前,VPN 无法连接。请参阅Mac 的 Wi-Fi 在睡眠后断开。
- 服务器结束闲置或旧的会话。有些 VPN 服务器会关闭长时间没有活动的会话。请向管理员询问超时设置。
如何检查
显示最近的睡眠和唤醒事件及其时间。
pmset -g log | grep -E ' (Sleep|Wake|DarkWake) ' | tail -20下次唤醒后,显示每个 VPN 配置的状态。
scutil --nc list显示网络状态。确认在 VPN 尝试连接之前,Wi-Fi 或以太网已可访问。
scutil --nwi将唤醒时间与 VPN 断开的时间对比。
如何修复
在 VPN App 中,打开其自动连接或重新连接选项。名称因厂商而异。
将 VPN App 更新到最新版本。
对于受管理的 VPN,请让管理员在描述文件中打开“VPN 按需连接”。
“VPN 按需连接”需要证书或其他非交互式认证。如果你用密码登录,请申请证书。
要在长时间传输期间让 Mac 保持唤醒,请在传输运行期间阻止睡眠。请参阅Mac 上的 caffeinate:从“终端”保持唤醒。
如果唤醒后 Wi-Fi 加入缓慢,请先解决这个问题,然后再测试 VPN。
使用 Kilobat
显示 VPN 现在是否在承载流量,以及使用它的是全部流量还是部分流量。
kilobat ipKilobat App 的“历史记录”会列出 VPN 何时开启或关闭。将它与
pmset得到的睡眠时间对比。显示 App 记录的断开和网络变化。
kilobat outages在通过 VPN 运行命令(例如拷贝)期间,让 Mac 保持唤醒。
kilobat awake -- rsync -a server:/data ./data使用 Kilobat Pro 时,VPN 断网开关会在 VPN 断开期间阻止新连接。这样 App 在 VPN 恢复之前不会在开放网络上建立新连接。
常见问题
“唤醒以供网络访问”能让 VPN 保持连接吗?
不能。该设置让 Mac 为文件共享等请求而唤醒,但它不会让 VPN 隧道保持连通。请参阅在 Mac 上使用“唤醒以供网络访问”。
Mac 上的“始终开启 VPN”能用吗?
Apple 的 VPN 概览列出了 iOS、iPadOS 和 visionOS 的“始终开启 VPN”,没有列出 macOS。
合上盖子时 Mac 能保持 VPN 连通吗?
只有 Mac 保持唤醒时才行。它睡眠时,网络就会断开。请参阅合盖后让 MacBook 保持唤醒。
参考资料
- Apple 平台部署:Apple 设备的 VPN 概览
- Apple 支持:如果 Mac 无法通过 Wi-Fi 连接到互联网
- Apple 支持:在 Mac 睡眠时共享其资源
- pmset(1) 和 scutil(8),随 macOS 27.2 安装的手册页
核对于 2026 年 11 月 7 日。