Skip to content

從手機接回家裡的 Claude Code:Tailscale + SSH + tmux,與 Remote Control 的比較

兩條從手機接回家裡 Claude Code 的路線:Tailscale + SSH + tmux(或 mosh)的 DIY 做法,與 Anthropic Remote Control 官方做法,各自的限制與取捨

Updated View as Markdown

Claude Code 是終端機程式,但你人不會一直坐在終端機前面。想在通勤、開會、躺床上的時候接回那台常開主機上的 Claude Code,有兩條路線:一條是自己動手,用 Tailscale + SSH + tmux(或 mosh)從手機 SSH 進去;另一條是官方的 Remote Control,讓 claude.ai 或 Claude App 直接接上本機的 session。這篇把兩條路線講清楚,以及各自卡在哪裡。

本文依 2026 年 10 月的 Tailscale、Anthropic(code.claude.com)與 mosh 官方文件整理,以 Tailscale v1.104、mosh 1.4.0 為準。Claude Code 的 Remote Control 是官方功能,細節以 Anthropic 文件為準;本文未在 iOS + macOS 實機跑過這些流程,屬文件整理。

先決條件:一台常開、能 SSH 的主機

兩條路線都需要一台「一直在線、開著 Claude Code」的主機。Mac mini 最常見,也可以是家裡的 Linux 小主機或一台 VPS。要先把這台機器調成不會睡、能 SSH、走 Tailscale、用金鑰登入,見 家裡一台常開主機跑 agent:Mac mini 的無頭設定。這篇假設你已經有這樣一台主機,直接講「從手機怎麼接」。

路線一:Tailscale + SSH + tmux(DIY)

這是最直白的一條:從手機 SSH 進那台主機,在 tmux 裡跑 Claude Code。沒有額外的服務,一切都握在你手上。

手機上的終端機 App

先在手機裝一個 SSH 終端機。iOS 上常用的是 Termius 或 Blink Shell,兩者都支援 mosh(下面會講)。裝好後把主機的 Tailscale IP 或 MagicDNS 名稱設成一個 host,用金鑰登入。

  • Blink Shell:mosh 官方列出的 iOS 客戶端,開啟來就是一個 shell,比較 geek。
  • Termius:有圖形介面、host 管理,也支援 mosh。

用 tmux 讓工作階段「活著」

如果直接 SSH 進去就 claude,手機一鎖屏、SSH 一斷,session 就跟著沒了。解法是先在主機上開一個 tmux session,在裡面跑 Claude Code:

tmux new -s claude
claude

手機斷線後重新連回去,tmux attach -t claude 就接回原本的畫面。tmux 是這條路線的關鍵:它讓 Claude Code 的行程持續跑著,和你的 SSH 連線無關。Anthropic 官方文件在講遠端跑 Claude Code 時,也是建議「用 tmux 或 screen 把 session 留在連線斷掉之後」。

用 mosh 讓連線「耐斷」

SSH 走 TCP,手機從 Wi-Fi 換到行動網路、或進隧道沒訊號,SSH 就會斷。mosh 走 UDP,專為這種「會漫遊、會間歇斷線」的場景設計:換 IP、鎖屏再喚醒,連線會自己接回來,不用重連。用法和 SSH 幾乎一樣:

mosh <主機的 Tailscale IP>

mosh 也解決了手機輸入的延遲問題——它會先在本地預測你打的字,畫面不用等伺服器回應才出現。

mosh 的坑:不轉送 SSH agent

mosh 不是 SSH 的透明替代品。mosh(1) 手冊明寫它不支援 X forwarding 與 SSH 的非互動用途(含 port forwarding、sshfs);SSH agent forwarding 也一樣不支援,這點多年來只有未合併的社群 patch(GitHub issue #696、#1297 至今 open)。實際後果是:在 mosh session 裡 git push/git pull 走 SSH 會失敗,因為那台主機拿不到你轉送過去的 SSH 金鑰。

幾個解法:

  • 在主機上放一把它自己的金鑰(不要靠 agent forwarding),git 直接用主機的 key。
  • 把 repository 的 remote 改成 HTTPS,改用 token 認證。
  • 需要用 agent forwarding 時,另外開一條普通 SSH 連線去做 git,mosh 只拿來操作 Claude Code。

這是這條 DIY 路線最常絆倒人的地方,先知道就省很多時間。

推播通知:用 hook 補上

DIY 路線沒有內建推播。想讓 Claude 卡住要你決定、或跑完通知你,得自己接:Claude Code 有官方的 hook 機制,會在特定事件(Notification、Stop 等)觸發你寫的 script。常見做法是掛一支 Notification/Stop hook,把通知轉到 ntfy、Pushover 這類推播服務,手機就會收到。hook 機制是官方功能,但「轉到哪個推播服務」是社群各自接的,沒有官方範本。

路線二:Anthropic Remote Control(官方)

Remote Control 是 Claude Code 內建的官方功能:claude.ai 網頁或 Claude 手機 App 變成你本機 session 的一扇窗。程式和檔案存取都留在你的主機上,手機只是操作介面。

怎麼運作

啟動時,主機上的 Claude Code 會只發起對外的 HTTPS 連線(不開任何入站埠),註冊到 Anthropic API 並持續輪詢。你從手機連上時,訊息經由 Anthropic 的伺服器轉送到你本機的 session,全程走 TLS。換句話說,它不需要 Tailscale、不需要 SSH、也不需要開埠。

怎麼啟用

三種方式,選一個:

claude remote-control            # server 模式,等遠端連入
claude --remote-control "專案"   # 一般互動 session,同時開 Remote Control
/remote-control                  # 在已開的 session 裡啟用

啟動後 terminal 會顯示一個 session URL 和 QR code:在瀏覽器開 URL、或用手機 App 掃 QR code,就直接接上。沒有裝 App 的話,在 Claude Code 裡打 /mobile 會跳出對應的 App Store 下載 QR code。

限制:不是每個人都能用

Remote Control 的限制比 DIY 路線多,官方文件寫得很清楚:

  • 要 claude.ai 訂閱:Pro、Max、Team、Enterprise 方案才能用;用 API key 登入、或走 Amazon Bedrock/Google Cloud/Microsoft Foundry、或把 ANTHROPIC_BASE_URL 指向 LLM gateway/proxy,都不能用。如果你平常是用 API key 或 Bedrock 跑 Claude Code,Remote Control 直接不可用,這條路就走不通。另外,Team、Enterprise 上 Remote Control 預設是關閉的,要 Owner 先在 admin settings 打開 toggle,成員才能用。
  • 一個互動 session 一個遠端連線:非 server 模式時,每個 Claude Code 行程一次只對應一個 remote session。要一次開多個,得用 server 模式(--capacity 預設 32 個並行 session)。
  • transcript 會存到 Anthropic:連線期間,你的訊息、Claude 的回覆、tool 活動都會存到 Anthropic 伺服器,用來保持多裝置同步與斷線重連。開啟 Zero Data Retention 的組織不能用 Remote Control。
  • 有些指令只能在本機:/plugin、/resume 這類只有終端機介面才有的指令,在手機或網頁上用不了。

推播通知是內建的

Remote Control 內建手機推播:Claude 會在長時間任務跑完、或需要你決定時推通知給你,也可以在 prompt 裡要求「跑完通知我」。在 /config 開啟即可。這是 DIY 路線沒有的,也是最省事的一點。

安全上的提醒

session URL 和 QR code 是接進那個工作階段的入口,別在公開場合展示。不過官方文件也說明,Remote Control 的連線用的是多把短期、各自限用途的憑證(各自獨立到期),而且要登入同一個 claude.ai 帳號才看得到 session,不是「拿到 URL 就等於拿到 session」。另外它雖然不開入站埠,但連線期間 transcript 會存到 Anthropic 伺服器,這和 DIY 路線「一切都留在自己機器上」是兩種不同的信任模型。

兩條路線怎麼選

Tailscale + SSH + tmux Remote Control
連線方式 SSH(經 Tailscale),私人網路 對外 HTTPS,經 Anthropic 伺服器
要裝什麼 Tailscale、終端機 App、tmux(可選 mosh) 什麼都不用,Claude Code 內建
帳號要求 沒有限制,API key/Bedrock 都能用 一定要 claude.ai 訂閱(Pro 以上)
多個 session tmux 開幾個都行 非 server 模式一次一個;server 模式預設上限 32(可用 --capacity 調整)
推播通知 自己用 hook 接 ntfy/Pushover 內建
transcript 去向 留在自己機器上 連線期間存到 Anthropic
完整終端 有,所有 / 指令都能用 部分指令只在本機
耐斷線 靠 mosh(UDP) 靠 Claude Code 自動重連

大方向是這樣:

  • 你已經有 claude.ai 訂閱、想要最省事、想要推播通知 → 用 Remote Control。開個 QR code 就接上了,不用碰 SSH 和 Tailscale。
  • 你用 API key 或 Bedrock 跑 Claude Code → Remote Control 不能用,只能走 DIY。
  • 你想要完整終端、想讓 transcript 全留在自己機器上、或本來就熟 SSH/Tailscale → 走 DIY。
  • 兩者其實不互斥:可以先從 Remote Control 上手,需要完整終端時再 SSH 進去。主機上的設定見 常開 agent 主機。

參考資料

Navigation

Type to search…

↑↓ navigate↵ selectEsc close