连接老是断?
一次 SSH 连接要穿过好几层网络,任何一层抖一下都会断。先定位是哪一层,再把对应的修复任务整段复制给你电脑上的 agent。
先分清:断的是哪一侧
同一个「断线」,修的地方完全不同。对照一下:
| 只有手机切 Wi-Fi/蜂窝、锁屏之后断 | 手机侧,正常,等自动重连 |
| 断的时候,电脑上什么网站都打不开 | 电脑的上游:路由器或宽带在抖 |
| 电脑一切正常,只有 SSH 会话断 | 电脑侧:省电、IPv6、sshd 配置 |
| 同局域网直连很稳,走远端(Tailcat、公网)才断 | 运营商 NAT 或中继路径 |
「电脑侧」指的是被连的那台机器——跑 sshd 或 Tailcat 的那台。它出问题时,所有客户端一起断。
电脑侧三个高频坑
-
Wi-Fi 省电模式:网卡周期性休眠几秒,长连接就断了。
iw dev wlp0 get power_save显示 on 就是它(网卡名按 ip link 里的实际名称改)。
-
IPv6 临时地址轮换:系统不停换地址,组网工具跟着全线重绑。
ip -6 addr show | grep temporary地址隔一阵就变、还越攒越多,就是它。
- DHCP 租约太短(比如 1 小时):每半小时刷新一次路由。单看无害,叠加上面两个会放大成断连——去路由器后台把租约调长。
Windows:设备管理器 › 网络适配器 › 电源管理,关掉「允许计算机关闭此设备以节约电源」。macOS 一般没有这个坑。
交给 agent:两段可直接复制的任务
在被连的那台电脑上,把下面整段发给正在运行的 AI agent(Devin、Claude Code、Codex 都行)。它会先检查再动手,需要权限时会把命令还给你。
帮我排查这台电脑 SSH 频繁断开的原因,先只诊断、不改任何设置: 1. 查近 3 天日志:NetworkManager 的 DHCP 续约和连接事件、wpa_supplicant 的 deauth/断连记录; 2. 装了 tailscale/tailcat/zerotier 等组网工具的话,统计它们的 LinkChange、rebind、中继重连,以及 netcheck 全部协议失败(udp=false)的时间点; 3. ping 默认网关和一个公网 IP 各 20 个包,看丢包和延迟; 4. 判断抖动在「本机 Wi-Fi/系统」「路由器/宽带上游」还是「对端设备」哪一侧,给出证据和结论。
帮我排查并修复这台电脑 SSH 频繁断开的问题。分两阶段: 第一阶段「诊断」,只读不改: 1. 查近 3 天日志中 NetworkManager 的 DHCP 续约、wpa_supplicant 的 deauth 记录; 2. 装了组网工具(tailscale/tailcat 等)的话,统计 LinkChange、rebind、中继重连和 netcheck 全失败的时间点; 3. ping 网关和公网 IP 各 20 个包; 4. 判断抖动在「本机」「路由器/宽带上游」「对端设备」哪一侧,给证据。 第二阶段「修复」,全部在线生效,禁止断开 Wi-Fi 关联或重启网络服务: 5. 关 Wi-Fi 省电并持久化(iw power_save off + NetworkManager 连接 powersave=2); 6. 停 IPv6 临时地址轮换(sysctl use_tempaddr=0 + 连接 ip6-privacy=0 + 删除现有 temporary 地址); 7. 在 /etc/ssh/sshd_config.d/ 下加 ClientAliveInterval 60 和 ClientAliveCountMax 3,reload sshd; 8. 每项改完验证当前值,最后汇报「现象→改动→验证结果」。需要 root 而你没有权限时,停下来把命令给我。
任务二里也写了诊断步骤:agent 会先查再修,修到哪步停在哪步都有据可查。
改不了的部分:运营商 NAT
很多宽带(尤其移动、校园网)和手机蜂窝都是大内网 NAT:你的 UDP 出门时映射到一个共享公网端口,这个映射会被运营商不定期换掉。Tailcat 这类靠 UDP 直连的工具,映射一换直连路径就死,只能退回中继重握手——表现是「顿一下又好了」或「老要重连」。
- 本机改不了 CGNAT。能改善的:找运营商申请公网 IPv4,或让两端都有 IPv6(直连不经过 NAT)。
- 对端在蜂窝网下同样漂,属预期;这种场景让连接走中继,比硬撑直连稳。
- 判断方法:让 agent 看组网工具的探测输出,公网映射端口隔一会儿就变,就是它。
手机侧:大多不用修
- Moku 已经在协议层内置 keepalive 和自动重连,断网恢复后会自己回来。
- 锁屏、系统省电会掐网络:给 Moku 开「允许后台活动/电池不优化」。
- Wi-Fi 和蜂窝之间切换必然顿一下;要无缝就改用 Mosh 会话。