Wendov1.0 · iOS i Android
Polski

Poradniki

Mosh czy SSH na telefonie: czego użyć do śledzenia agenta

Uruchamiasz Claude Code przy długim zadaniu, zamykasz laptopa i wychodzisz. Pociąg wjeżdża do tunelu, telefon przeskakuje z Wi-Fi na sieć komórkową i na minutę traci zasięg, a gdy znowu patrzysz, sesja SSH nie żyje. Tak ma być: SSH nigdy nie projektowano dla klienta, który zmienia sieć co kilka minut, a Mosh i Eternal Terminal istnieją właśnie po to.

Oto co robi każdy z nich, co dzieje się na telefonie i jak wybierać. Jeśli chcesz zobaczyć całość uruchamiania agenta z kieszeni, zacznij od Jak używać Claude Code z telefonu.

Co dzieje się z SSH na telefonie

SSH działa na połączeniu TCP, a to połączenie jest przywiązane do jednego adresu IP i jednej pary gniazd. Gdy telefon przechodzi z Wi-Fi na sieć komórkową, jego IP się zmienia, a serwer nigdy się o tym nie dowiaduje. Połączenie wisi, aż timeout je zabije. To samo dzieje się, gdy iOS lub Android usypiają sieć aplikacji, by oszczędzać baterię, albo zabijają aplikację, bo potrzebują pamięci.

Tracisz więcej niż ekran. Proces podpięty do tej sesji SSH może dostać SIGHUP i zginąć razem z nią. Dlatego agent uruchomiony prosto z powłoki SSH jest kruchy i dlatego towarzysz tego artykułu, tmux dla agentów kodujących, jest prawie obowiązkowy.

Mosh: UDP i ciche ponowne łączenie

Mosh (mobile shell) używa SSH tylko na start. Uwierzytelnia się przez SSH, uruchamia mosh-server na twoim komputerze, a potem rozmawia po UDP. Bez połączenia TCP do zerwania klient może zmienić IP, stracić zasięg albo zasnąć, a gdy sieć wraca, sesja wciąż tam jest.

W praktyce:

  • Przechodzisz z Wi-Fi na sieć komórkową, a sesja tego nie zauważa.
  • Jeśli serwer przestaje odpowiadać, aplikacja ci o tym mówi zamiast zamykać sesję.
  • Lokalne echo z przewidywaniem: to, co piszesz, rysuje się od razu, podkreślone, i jest potwierdzane, gdy serwer odpowie. Na ociężałym łączu komórkowym poczujesz różnicę.

Co to kosztuje:

  • UDP 60000–61000 musi być otwarte na twoim komputerze (każda sesja zajmuje jeden port z tego zakresu).
  • Brak historii przewijania. Mosh synchronizuje tylko to, co jest na ekranie. Jeśli chcesz przewinąć w górę i przeczytać, co wypisał agent, pracuj w tmux.
  • Jeśli system zabije aplikację, sesja Mosh się kończy i nie można jej wznowić.

Eternal Terminal: TCP, ale z wznawianiem

Eternal Terminal (ET) idzie w drugą stronę. Działa po TCP, domyślnie na porcie 2022, ale trzyma własny stan sesji, więc gdy połączenie się zerwie, odbudowuje je i wysyła ponownie to, co przepadło. Potrzebuje działającego etserver na twoim komputerze i etterminal w PATH sesji SSH.

Na telefonie jego zaletą jest to, że to jedyny transport w Wendo, który przetrwa zamknięcie aplikacji. Sesja pojawia się w Start, a po otwarciu wraca tam, gdzie była. Wendo oznacza ET jako eksperymentalny, więc miej to na uwadze, zanim na nim oprzesz pracę.

Szybkie porównanie

| | SSH | Mosh | ET |
|---|---|---|---|
| Transport | TCP | UDP | TCP (2022) |
| Wi-Fi ↔ sieć komórkowa | Zrywa się | Przetrwa | Przetrwa |
| Uśpiony telefon | Zrywa się | Przetrwa | Przetrwa |
| Aplikacja zabita przez system | Zrywa się | Przepada | Wznawia |
| Historia przewijania | Tak | Nie | Tak |
| Z Jump Host w Wendo | Tak | Nie | Nie |

Instalacja mosh-server

Na komputerze, na którym działa agent:

# macOS
brew install mosh

# Debian / Ubuntu
sudo apt install mosh

# Fedora
sudo dnf install mosh

Sprawdź, czy jest w PATH zwykłego połączenia SSH, a nie tylko twojego interaktywnego terminala:

ssh my-server 'which mosh-server'

Na Macu z Apple Silicon Homebrew instaluje go w /opt/homebrew/bin/mosh-server, co nie zawsze jest w PATH sesji nieinteraktywnej. Jeśli tak się stanie, Wendo pozwala ustawić ścieżkę do mosh-server w połączeniu.

Uwagi o zaporze

Mosh potrzebuje przychodzącego UDP 60000–61000. Na Linuksie z ufw:

sudo ufw allow 60000:61000/udp

Z firewalld:

sudo firewall-cmd --permanent --add-port=60000-61000/udp
sudo firewall-cmd --reload

Jeśli twój komputer jest za routerem, przekieruj ten zakres UDP tak samo, jak przekierowałbyś port 22. Dla ET otwórz TCP 2022 w ten sam sposób (sudo ufw allow 2022/tcp).

Jeśli twoje SSH przechodzi przez proxy lub moduł równoważenia obciążenia, UDP Mosh może trafić na zły adres IP. Wendo ma na ten przypadek opcję „Użyj adresu IP serwera dla UDP”.

Wybór w Wendo

Przy edycji połączenia pole Transport oferuje Auto, SSH, MOSH i ET. Przy Auto Wendo próbuje najpierw Mosh, potem ET, a jeśli żaden nie jest dostępny, wraca do SSH. Zacznij od Auto.

Praktyczna reguła:

  • Będziesz chodzić z telefonem, a sesje trwają minuty: Mosh.
  • Chcesz zamknąć aplikację, wrócić godzinę później i znaleźć sesję w Start: ET.
  • Łączysz się przez Jump Host: SSH. Ani Mosh, ani ET nie działają w Wendo z Jump Host.
  • Twój komputer nie może otwierać portów UDP: ET lub SSH.

Mosh i Eternal Terminal to funkcje Wendo Pro; bez Pro połączenie idzie przez SSH. Pola opisano w dokumentacji sesji.

Jakikolwiek transport wybierzesz, uruchamiaj agenta w tmux. Transport utrzymuje ekran przy życiu; tmux utrzymuje przy życiu proces i daje historię przewijania, której brakuje w Mosh. Zwykła kombinacja to Mosh lub ET na łączu i tmux do pracy, a oto minimum tmux, jakiego potrzebujesz. Żeby dostawać alerty, gdy agent prosi o zgodę, zobacz hooki.