15 分鐘,讓你的 agent 開始整晚工作
把 agent 放到遠端整晚跑,大約 15 分鐘:用 SSH 連進你自己那台機器,用 tmux 讓手機斷線時只是 detach、不會停止 agent,再用 Tailscale,就不用對公網開 port。回答三個問題:你的機器、要跑的 agent、你想從哪裡連。清單會照你的答案生成。
每一步都會告訴你為什麼要做、指令是什麼、怎麼確認成功了,還有沒成功的話去哪裡看。(那台機器是 Windows?先看這一節。)
原生 Windows 沒有 tmux,改走 WSL2
你選了 Windows,所以精靈沒有給你清單。Windows 這條路跟另外三種走法不一樣,塞給你半套清單反而害你。
Windows 走得通,但要經過 WSL2,比 Mac 或 Linux 多幾道手續。如果你只是想讓 agent 今晚就開始工作,去租一台最便宜的雲端 VPS,照上面那條路走。那通常比在 Windows 上打通還快,也幫你省掉一個晚上。
為什麼原生 Windows 不行?
這份指南靠三個零件:CLI、tmux、SSH。SSH 沒問題,Windows 10 和 11 都內建 OpenSSH Server,打開就能連進去,拿到一個 PowerShell 提示字元。
問題出在 tmux。它沒有原生 Windows 版本,而它是整份指南的承重牆。少了它,手機連線一斷,agent 收到 SIGHUP 就死(機制在這裡),「關掉手機它還是繼續跑」這句話直接不成立。你會多出一台能 SSH 進去的 Windows,但那不是這份指南要給你的東西。
agent 本身在 Windows 上跑不跑得起來,各家不同、變動也快,這裡刻意不列清單,請查你要用的那個工具的官方文件。但順序要分清:agent 在原生 Windows 上跑得再好,也碰不到 tmux 那個問題。能不能跑是一個問題,斷線之後活不活得下來是另一個。
建議的做法:WSL2
WSL2 裡面是一個完整的 Linux,tmux、sshd、agent 的行為都跟真的 Linux 一樣。裝好一個發行版,前面「Linux 主機」那條路的每一步都適用。回到上面,第一題改選「一台 Linux 主機」。
WSL 有三個 Mac 和 Linux 沒有的坑
三個都解得掉。先知道,卡住的時候就不會以為是自己弄壞了什麼:
- 網路。WSL2 跑在一台虛擬機裡,那台虛擬機有自己的 IP,而且躲在 NAT 後面,所以預設情況下,從那台 Windows 外面連不到裡面的 sshd。有兩種解法。一是在 Windows 端用
netsh interface portproxy把 port 轉進去,但 WSL 的 IP 每次重開都可能變,你等於要一直重設。二是在.wslconfig開鏡像網路模式networkingMode=mirrored,讓 WSL 直接共用主機的網路介面,port 轉發這一步整個消失。第二種乾淨很多,但需要比較新的 Windows 11。 - WSL 不會自己一直開著。最後一個程序結束,發行版幾秒之內就關掉,虛擬機也跟著關。你要的是一台常開的機器,所以 WSL 得在開機時就跑起來,沒人登入也留著,通常靠排程工作或 keepalive 撐住。Mac 和 Linux 上沒有這層問題。
- systemd 要自己開。舊的 WSL 根本沒有 systemd,
systemctl這條指令不存在,所以精靈裡「在 Linux 主機上啟用 SSH 服務」那一步給的指令會直接失敗。新版可以在/etc/wsl.conf加systemd=true打開,但預設是關的。
如果 Windows 只是你工作用的那台電腦呢?
這裡講的 Windows,指的從來是「那台被連進去的機器」。如果你的 Windows 只是你平常工作的電腦,agent 跑在別台上(家裡的 Mac mini、公司的 Linux 主機、一台 VPS),那上面這些你一個都不會遇到,這份指南對你完全成立。你要設定的機器,不是你手上這台。