机器买得到,链路稳不住
很多人以为瓶颈在「有没有一台物理 Mac mini」。机器到货、Claude Code 装上、账号登录——看起来都齐了。真正拖垮长会话的,往往是另一头:家庭宽带的抖动与短暂断线。
常见现场:
- 终端忽然重连:SSH 或远程窗口闪一下,提示重新连接;你以为只是网络抖了一下,回头发现前台会话已经没了。
- 写到一半卡住:Claude Code 正在改文件、跑测试,链路抖动后界面停住,你不知道远端进程还在不在。
- 重连后上下文对不上:你本地终端是新开的,远端若没留在可附着的会话里,就只能从零再找进度。
- 误判成「Claude 坏了」:其实是客户端到机器之间的链路抖了,不是模型本身挂了。
物理机好买;把「可重连、可恢复」做成习惯,才是长任务的基本功。
man ssh_config、man tmux 为准。准备清单
- 一台打算常开的 Mac mini(整机独享),已装 Claude Code,并用你自己的账号登录
- 终端里可用的
tmux(系统自带或brew install tmux) - 日常用 SSH 进机器;需要图形界面时再用 UU 远程连接
- 先在有人看着时验证「断线 → 再 attach 仍在跑」,再放过夜或无人值守任务
步骤一:把 Claude Code 放进 tmux,断线不等于杀进程
网络抖动杀的是你这边的终端窗口,不一定是远端进程。若 Claude Code 只跑在「裸 SSH 前台」,客户端一断,会话往往一起没了。
最小做法:
``bash tmux new -s claude # 在会话里启动 Claude Code claude ``
断线后再连上机器:
``bash tmux attach -t claude # 或先看有哪些会话 tmux ls ``
要点:
- 长任务只在命名会话里跑,不要依赖「某个还开着的本地窗口」。
- 一个人一台机也建议固定会话名(如
claude、agent),回来时不用猜。 - UU 远程连接断开时,若任务已在
tmux里,仍可用 SSH 附着,不必等图形界面恢复。
这样,抖动最多让你「暂时看不见」,而不是「进度直接清空」。
步骤二:给 SSH 加保活,减少「假死与莫名重连」
有的抖动其实是中间设备把空闲连接掐掉,或短暂丢包后客户端判定超时。可以在你自己的本机 ~/.ssh/config 里为这台 Mac mini 加保活(只影响你发起的连接,不改服务器全局策略):
``sshconfig Host mymini HostName <你的机器专属地址> User <你的用户名> ServerAliveInterval 30 ServerAliveCountMax 3 TCPKeepAlive yes ``
怎么理解:
ServerAliveInterval:客户端定期发保活探测,降低「空闲被中间设备踢掉」的概率。ServerAliveCountMax:连续几次探测失败再认断,避免一次丢包就立刻断开。- 不要把真实地址和密钥写进公开仓库;本文用占位符,你本机配置即可。
保活减的是「不必要的假断线」,代替不了 tmux。链路真断了,仍靠 tmux attach 接回。
步骤三:养成「检查点」习惯,写到一半卡住也可恢复
抖动发生时,最怕的是:文件改了一半、测试跑到一半,你不清楚远端停在哪。
实用习惯:
- 大改动前先让 Claude Code 做一次可回看的落盘(提交到 git、或至少写好阶段性说明),不要只靠聊天窗口里的记忆。
- 长命令外包一层可观察的日志,例如在
tmux里把关键输出重定向到~/logs/job-$(date +%Y%m%d-%H%M).log,重连后用tail看是否还在写。 - 卡住先查三件事,再决定要不要重开会话:
- tmux ls 会话还在吗? - 会话里进程是否仍在跑(附着后看滚动与 CPU)? - 最近的 git / 日志是否已有部分结果?
- 不要在抖动高峰时硬推超长无人值守写操作;先验证链路稳定,再开大任务。
这些习惯不依赖任何花哨工具,却能把「写到一半卡住」从灾难变成「接回去继续」。
步骤四:把长会话放到常开的新加坡 Mac mini 上
笔记本合盖、家里临时机断电、Wi-Fi 峰时抖动,都会让「本机跑 Claude Code」反复踩坑。更稳的分工是:
- 长会话与仓库放在常开的新加坡整机独享 Mac mini 上,本机只做 SSH / UU 远程连接的「显示器」。
- 本机网络抖了:最多丢的是控制通道;远端
tmux里的 Claude Code 仍可继续,等你网络恢复再 attach。 - 每台机器一个固定专属地址,浏览器即可 SSH / VNC;会话名、日志目录、SSH config 只维护一份。
- 和睡眠审计分开看:机器不睡解决「进程被系统挂起」;本文解决的是「链路抖了还能接回」。两者都要,常开才站得住。
这样你出门、换网络、甚至短暂断线,回来看到的仍是同一台机器上的同一会话,而不是「重装一次心情」。
建议验收清单
- Claude Code 只在命名
tmux会话里跑;故意断开 SSH 后,再连上可tmux attach且进程仍在。 - 本机 SSH config 已为该机器设置保活;空闲一段时间后不应无故频繁重连(仍以你线路为准)。
- 大改动有 git 或日志检查点;卡住时能用会话 + 日志判断「还在跑」还是「已停」。
- 长任务不以本机前台窗口为唯一依赖;本机只作远程入口。
- 公开文档与仓库里没有机器地址枚举示例,也没有把私钥写进文章。
和 Zumac.Ai 怎么配合
若你已经体会过「机器不难买,家宽却常抖」:把 Claude Code 长会话放在常开、整机独享的新加坡 Mac mini 上,本机只负责 SSH 或 UU 远程连接接回——抖动打断的是控制通道,不是整台机器上的进度。Zumac.Ai 提供位于新加坡家庭宽带上的实体 Mac mini,整机独享(一人一台物理机),支持 SSH 与 UU 远程连接。新客户整机租用 ¥999/月起(季付 ¥2,697.30,半年付 6 送 1 ¥5,994,年付 12 送 2 ¥11,988);已购买客户续费保持原价。订购与开通走 panel.zumac.ai;方案说明见 首页费用区;使用问题见 帮助中心。需要人工协助可联系 Telegram @singatao。实际延迟取决于你本地的网络线路。
先保住会话,再加保活,最后养成检查点——网络还会抖,但 Claude Code 不必每次都从头来过。
