上一篇講了用 tmux + Tailscale + Moshi 在 iPad 上跑 Claude Code 的基本三件套。那篇是「怎麼裝起來」,這篇是「怎麼讓它不會在你最需要的時候掛掉」。
我把 MacBook Air 跟 Mac mini 放家裡當二十四小時的 headless 主機,出門只帶 iPhone + iPad,遠端接回去跑 Claude Code 跟 Codex。問題是我家在曼谷,家用網路一兩個月會斷一次,雨季偶爾還會停電。所以光裝起來不夠,得做斷網斷電的備案。
這篇分三塊:連線基礎設施、Mac mini 端的穩健性、iPad 端的輸入策略。tmux / Tailscale / Moshi 的基本安裝上一篇講過了,這裡不重複。
連線基礎設施
連線層我用 Tailscale 配 MOSH 協定。安全、不容易斷,重點是切換網路不用重連——從家裡 wifi 走出門變行動網路,session 還活著。
終端機 app 我從 Termius 換成了 Moshi。Moshi 原生就是為 AI agent CLI 設計的,方塊字 render 不容易破碎。Termius 我實測 CJK render 有 bug,中文字會跑掉。
後備方案:Chrome 遠端桌面或 AnyDesk。SSH 終端能處理九成的事,但偶爾要看終端機以外的東西——某個 GUI app、某張圖——這時候用遠端桌面墊一下。它不是主力,是備胎。
Mac mini 端的穩健性
這塊是斷網斷電備案的核心,因為人在外面,主機掛了你連不回去就只能乾瞪眼。
- 路由器設定定時重啟。長時間掛機路由器會過載斷線,乾脆讓它每天自己重開一次。
- Mac mini 設定斷電後自動重啟。雨季停電後電一來主機自己活過來,不用等我回家按電源鍵。
- 接有線網路。wifi 不穩,能拉網路線就拉,少一個變數。
- 帶行動網路的智慧插座。這是斷網時的救命招——家裡網路斷了,我還能發一封簡訊把插座斷電再上電,硬重啟主機。不靠家用網路,靠電信訊號。
- 插一個假 HDMI 欺騙接頭。出門把螢幕關了,系統還以為有一台螢幕接著,會保留一個虛擬桌面,遠端進去畫面是正常的。
另外兩個小設定:電腦要防休眠,我用 caffeinate 指令頂著;tmux 要給 full disk access,不然有些路徑它讀不到。
iPad 端的輸入策略
這塊我走了一段冤枉路。
一開始我買了妙控鍵盤(巧控鍵盤殼)。慘痛經驗:很容易磨損,金屬接頭容易氧化生鏽,而且有夠重。重到完全破壞 iPad 的移動優勢——本來圖的就是輕便,結果背一塊鐵出門。後來直接拆了,改用純支架保護套。
如果真的要打字,我改成出門帶一組 Mac 用的 Magic Keyboard 藍牙鍵盤加 Magic Mouse。兩個加起來才兩百多克,比妙控鍵盤輕太多,而且在家給 Mac 用、出門配對 iPad,一組兩用,只要買一份。
但講真的,後來發現連這組多半也用不到。我大部分跑的不是編程任務——出一張嘴下指令、用手指滑一滑、用眼睛看結果,這樣就夠了。我又不是那種會手打程式碼的人,沒滑鼠好像也還好。語音輸入加觸控手勢,意外地撐得住日常。
順帶提一下硬體:我用的是 2018 年的 iPad Pro,八年了跑遠端還是很順。遠端本來就不吃本地資源,算力都在家裡那台主機上,iPad 只是一塊螢幕加一張嘴。所以原本想買新機的計畫也打消了,省一筆。
最後兩個好用的小東西:右上角有個小按鈕可以直接看 diff;另一個按鈕能預覽 localhost。再裝個 fileviewer 套件,iPad 就變成檔案總管,各種文檔、圖片、影片都能開。