SSH / VNC 指南 2026 年 4 月 23 日

2026:TCP keepalive、TCP_USER_TIMEOUT 与在租用的 ProxyMac Mac mini 上挺过闲时 SSH

ProxyMac 工程团队 2026 年 4 月 23 日 约 12 分钟阅读

当运维人员从欧洲或美国东岸跨洋连入位于香港、东京、首尔、新加坡或美国ProxyMac Mac mini 时,常见现象是:敲键盘时一切正常,但只要让 SSH 闲在 Cursortail -f7 至 25 分钟,会话就无声消失。问题很少是「苹果芯片上 SSH 坏了」—绝大多数时候,是路线上的静默中间件定时器 与默认未证明活跃性的套接字叠加。本文给出一套双层层叠心智模型(OpenSSH 保活加上内核 TCP 行为)、一张以可观测症状为键的决策表、一段可复制的 ~/.ssh/config 段落(30 秒 级应用层探测、连续 次无应答后由客户端主动断开),以及可粘进 Confluence 的七步 证据链(许多访客 Wi-Fi 在运营商侧有120 秒 量级的闲时表)。文末链接到 autossh、Mosh 与保活高时延客户端调优MTU/PMTUD 黑坑 等伴读,避免在其实是 IP 优先级与压缩问题时仍死磕 TCP 定时器。若你希望把新同事从「包丢失都市传说」里拉出来,请在套接字路径被证明稳定后,再统一对照 帮助中心 的起步材料与 各区域透明定价 做资源决策。

团队若在亚太时段集中跑夜间构建,往往会在同一条长链路 上复用跳板与会话多路复用,此时「偶尔断一次」会放大成周报表里的噪声。将时延分位数探测是否离开发送主机应用层/传输层 的观测拆开记录,是避免反复争论「到底是谁的 keepalive 不够 aggressive」的前置条件。下文的矩阵与 runbook 尽量把各层信号写成可复验条目,使你在和运营商或企业网络团队开故障单时,能带上可引用的数字可重复的步骤。额外提醒:在咖啡馆或酒店等场域,UDP 语音优化 有时会与空闲 TCP 抢队列深度,这会让表观上的「断线点」看起来随机—遇到此类场景请优先收齐 BSSID 与上游 NAT 信息。

若你已经确认往返时延在业务可接受范围,而问题只在无输入窗口 时出现,就几乎可以肯定需要本文的双层保活。反之,如果活跃文件传输也间歇卡死,请先交叉验证 MTU 与路径 MTU 发现,再回来看 keepalive 数学。将排查顺序写进团队手册,能显著减少「把 SSH 与网络混为一谈」的误伤调参。以下章节按从症状到落地的顺序组织,便于在紧急故障时从目录直接跳转。

长链路上,闲时 SSH 如何「静悄悄断掉」

症状可粗分为三类:(A) 终端无横幅、也迟迟不出现 Broken pipe,只有敲键后才突然清醒或报错;(B) 在最后一次有数据后120 到 900 秒 的整倍数附近出现 client_loop: send disconnect: Broken pipe(C) 交互式 shell 看起来活着,而 scprsync 长时间卡在 0%。A 多指向上游 NAT 绑定在无声路径上过期 且未发 RST,常见于会压制空闲 TCP 的酒店网。B 多映射到有状态防火墙 的「最大静默流时长」策略。C 常与 PMTUD 黑洞 交叠,请在深入调保活前对照 MTU 专文。为降低误判,建议在相同客户端上并行开启带时间戳的轻量网络探针,以区分是运营商策略还是本机睡眠/节电。

  • 经 SSH 隧道的屏幕共享 会放大「画面静止、键盘不静止」的闲时间隙。
  • 跳板机链 使定时器相乘,每一跳都可能实施约 300 秒 的闲时策略。
  • LaunchAgent 拉起的 git pull 在承载网视角可能仍像闲连接,虽服务端仍有后台工作。

内核 TCP 保活与 OpenSSH 的 ServerAliveInterval

在 macOS 上,内核 TCP 栈能按 net.inet.tcp.keepidle 一类延迟之后发送保活段,但你无法只凭本机 sysctl 就支配远端与中间件。OpenSSH 的 ServerAliveInterval 会注入对 SSH 守护进程有意义的协议报文,从而在不等待 某些操作系统默认的、可达数小时 的 TCP 空窗。二者互补:SSH 保活证明SSH 连接 仍可用;TCP 保活则证明四元组 在端到端仍被各层承认。对混合云与零信任边界的路线,常出现「只补一层仍偶发」的情况,把两层一起纳入变更记录最稳妥。若你同时开 VPN,也要记录其对分流与 idle UDP/TCP 的差异,以免把公司策略误判为对端问题。

写在工单里的一组数字:每 30 秒 的应用层探测、连续四次 未应答为中止条件起步;并写清到 mini 的路径平均时延在280 毫秒 内,好让采购侧理解并非区域选错在掩盖问题。

按故障类型选择的调参矩阵

症状特征第一旋钮第二旋钮升级路径
闲时超过 15 分钟,一按键即恢复ServerAliveInterval 30减少跳板跳数抓 Wi-Fi BSSID,并对照 访客 Wi-Fi 指南
Broken pipe 出现在 300 秒 的倍数上客户端 TCPKeepAlive yesControlMaster 文 启用多路复用向运营商索要文档化的闲时上限
大文件 scp 无闲时却停滞查 MSS/钳位做 PMTUD 试验用延迟矩阵重选区域
仅夜间构建偶发失败在 mini 上设夜间 curl 轻触记 WAN 侧 DHCP 续租将任务改为 mini 侧主动拉取

为 ProxyMac 区段准备客户端 ~/.ssh/config

请为每个区域写清主机别名,使新成员拷贝即得同一组数字。下面以香港 为例,亦可原样平移到 日/韩/新/美 别名。仅在你通读高时延文之后再改 IPQoS:错误地把吞吐类与低时延类混用,可能在大文件拷贝时饿死保活小包。对跨洋链路,ControlPath 命名要包含用户与目标,以免共享笔记本上的多租户冲突。最后把这段与安全基线(如限制算法列表)分文件管理,通过 Include 拉取,能显著减少合并冲突与误伤生产。

Host proxymac-hk-dev HostName your-node.proxymac.com User youruser ServerAliveInterval 30 ServerAliveCountMax 4 TCPKeepAlive yes IPQoS throughput ControlMaster auto ControlPath ~/.ssh/cm-%r@%h:%p ControlPersist 10m

七步探针:可直接粘进 SRE 手册

  1. ping -c 20基线 RTT,存中位与 p95
  2. 纯 SSH 会话,闲 12 分钟,看壳层是否仍可 echo。
  3. 在一次性会话中开 ssh -vvv,检索是否卡在 expecting SSH2_MSG_KEXINIT 一类停顿。
  4. 并行 512MB 文件 scp;若 90 秒 后吞吐骤塌,多怀疑 MTU 而非保活算法。
  5. 分隧道企业 VPN 是否开启,其对 idle UDP 与到 mini 的 TCP 常不等价处理。
  6. 若你可改 sshd,让服务端的 ClientAliveInterval 与客户端同频;别一边 10 秒、一边 30 秒 徒耗资源。
  7. 定稿后的配置 与 OpenClaw 网关的 systemd/launchd 注记同仓归档,人读与机读同一份真值。

与 autossh、Mosh、高时延调优结合—避免「同一招算两次」

我们的 autossh 与 Mosh 指南 已覆盖进程守护与基于 UDP 的恢复;当你必须保留 纯 OpenSSH 走 TCP 的场景,例如 git+sshssh -L 到本地 OpenClaw 入口,或 rsync --partial 走 SSH 时,再把本文加入清单。若考虑切 Cipher 与压缩,请在保活已立证 之后顺序推进,因 AEAD 在 M4 大拷贝时与 CPU 占用的耦合,可参见 IPQoS 与密码套件 专文。团队若在文档中混用 Mosh 与纯 SSH,务必写清各自动化任务的传输语义,避免审计追问时口型不一致。将「可替代路径」和「强依赖路径」在架构图分色,也能减少新同事误用命令组合。

注意:ServerAliveInterval 设到 5 秒级可能在部分抗 DDoS 设备上触发突刺检测—请渐进上调;若企业边界对探测突发回 RST,需要与安全团队对齐白名单与速率。

常见问题

要不要在 mini 上把 sysctl 的 TCP keepidle 调得更激进? 多数情况下先改客户端。数据中心侧邻接的 mini 很少是那条脆弱腿的主因。

ControlMaster 会让闲时更糟吗? 多会话复用单一 TCP 流能省握手,但也会在命中60 秒 量级的 Wi-Fi 限流时,把多会话一把梭哈—留意每路径的并发与承载。

纯 IPv6 出口怎么办? Happy eyeballs 可能掩藏 IPv4 侧黑洞。请在调参前记清 SSH 目标到底走哪一家族,以免两套栈各写一套不兼容的定时器。若组织策略未来强制 IPv6-only,提前在变更窗口验证 DNS 与证书覆盖。

为何在 ProxyMac 上测 TCP 卫生学「更有把握」

租用一台搭载 Apple 硅 M4Mac mini 作为稳定锚点 位于 港/日/韩/新/美,可预期对等互联;对比开发者笔记本在咖啡馆与家庭 NAT 间跳来跳去。你能持续采 sysctlnettop 基线,让 OpenClaw 自动化与 CI 机密同驻一机,并可在需要时打开 屏幕共享 处理受信提示。将这类网络纪律与 分区域清晰定价 成对使用,可让融资与运维理解:为亚太闲时单开第二台 mini,往往比把所有流量挤进周五夜里必塌的那条隧道更省总成本。最后,请把本页链接进你们的入职 Runbook 与 on-call 手册的「长链路」章节,减少口口相传的漂移。若你正在评估供应商 SLA,把本文七步也作为验收脚本 的参考附录,会显著加速扯皮收敛。

租用与您的定时器相匹配的区域

香港/日本/韩国/新加坡/美国 的现成 SSH 友好 Mac mini