Die Installation von mosh-server unter Ubuntu, Debian und Alpine erfordert das Hinzufügen des offiziellen Distributionspakets, das Zulassen von eingehendem UDP-Datenverkehr über die Ports 60000 bis 61000 sowie die Verifizierung einer aktiven UTF-8-Locale. Der Daemon startet über eine anfängliche SSH-Sitzung, um persistente Remote-Shell-Verbindungen bereitzustellen, die gegen Paketverlust und IP-Roaming resistent sind.

Netzwerkanforderungen und UDP-Ports für mosh-server

Mosh startet die entfernte mosh-server-Binärdatei über eine vorangehende OpenSSH-Verbindung, die standardmäßig auf TCP-Port 22 lauscht. Nach erfolgreicher Authentifizierung per Public-Key oder Passwort startet der Server den Prozess auf einem ausgehandelten UDP-Port im Bereich 60000-61000 und beendet den interaktiven SSH-Kanal, um über verschlüsselte Datagramme zu kommunizieren.

Die Firewall des Servers muss eingehende Pakete in diesem Portbereich zulassen, damit mobile und Desktop-Clients kommunizieren können. Anders als Standard-OpenSSH implementiert Mosh keine TCP-Port-Weiterleitung oder X11-Weiterleitung, sondern konzentriert sein Protokoll strikt auf Eingabevorhersage, geringe Latenz und die Wiederherstellung von Verbindungen über instabile Schnittstellen.

Technische EigenschaftStandard-OpenSSHMosh mit mosh-server
TransportprotokollPersistentes TCP mit FlusssteuerungVerschlüsseltes UDP via State Synchronization Protocol
Firewall-PortsStandardmäßig TCP-Port 22UDP-Bereich 60000-61000 plus TCP 22 zur Einrichtung
Client-IP-RoamingSitzung bricht bei IP-Wechsel sofort abSitzung bleibt über Netzwerke hinweg nahtlos bestehen
Port- und X11-WeiterleitungNativ über Befehlsflags unterstütztArchitekturbedingt nicht implementiert

Befinden sich Rechner hinter restriktivem Carrier-Grade-NAT ohne erreichbare öffentliche IPv4-Adressen, können Administratoren private Mesh-Overlays wie Prialo secure mesh networking oder Tailscale einsetzen, um direkte Verbindungen herzustellen, ohne beliebige öffentliche Firewall-Ports öffnen zu müssen.

Installation von mosh-server unter Ubuntu und Debian mit apt

Der Paketmanager apt stellt mosh-server direkt aus den Basis-Repositories von Ubuntu und Debian bereit, ohne dass persönliche Paketarchive von Drittanbietern erforderlich sind. Durch die Installation des einheitlichen Pakets werden sowohl Client-Komponenten als auch die für eingehende Verbindungen benötigten Server-Binärdateien bereitgestellt.

sudo apt update
sudo apt install -y mosh

Um UDP-Pakete über die Standard-Firewall-Konfiguration von Ubuntu zuzulassen, konfigurieren Sie die Uncomplicated Firewall (UFW) so, dass sie den zugewiesenen Portbereich akzeptiert:

sudo ufw allow 60000:61000/udp
sudo ufw status verbose

Falls der OpenSSH-Dienst auf einem alternativen Port lauscht, übergeben Sie die Verbindungszeichenfolge auf dem Client über --ssh="ssh -p PORT". Unabhängig vom Bootstrap-Port muss sich mosh-server im System-$PATH des Zielbenutzers befinden, typischerweise installiert unter /usr/bin/mosh-server.

Konfiguration von UTF-8-Locales zur Vermeidung von Startfehlern

Mosh erzwingt eine gültige UTF-8-Zeichenkodierung sowohl in der Client- als auch in der Serverumgebung. Wenn Systemumgebungsvariablen auf POSIX- oder C-Definitionen ohne UTF-8-Unterstützung zurückfallen, bricht der entfernte Prozess mosh-server beim Start sofort mit einem fatalen Diagnosefehler ab.

Minimale Server-Images unter Debian und Ubuntu verfügen oft über keine vorab generierten Nicht-ASCII-Locales. Führen Sie die folgenden Befehle aus, um die systemweite Locale-Konfiguration zu generieren und festzulegen:

sudo apt install -y locales
sudo locale-gen en_US.UTF-8
sudo update-locale LANG=en_US.UTF-8 LC_ALL=en_US.UTF-8

Überprüfen Sie die Umgebung anhand der Ausgabe des Befehls locale in einer aktiven SSH-Sitzung; die Variablen LANG und LC_CTYPE müssen explizit UTF-8 enthalten, bevor Mosh gestartet wird.

Installation von mosh-server unter Alpine Linux mit apk

Alpine Linux enthält Mosh in seinem primären Paket-Repository, das über apk verwaltet wird. Da Alpine die leichtgewichtige C-Bibliothek musl anstelle von glibc verwendet, wird die UTF-8-Kompatibilität nativ gehandhabt, ohne dass eigenständige Binärdateien zur Locale-Generierung aufgerufen werden müssen.

apk update
apk add mosh

Wenn Alpine iptables oder nftables nutzt, um den Zugriff einzuschränken, fügen Sie eine Regel hinzu, die Datagramme innerhalb des erwarteten UDP-Zuweisungsbereichs akzeptiert:

iptables -A INPUT -p udp --dport 60000:61000 -j ACCEPT
rc-service iptables save

Stellen Sie sicher, dass der OpenSSH-Server-Daemon (sshd) auf dem Alpine-Host läuft, da Mosh keinen dauerhaften Hintergrund-Listener unterhält; es startet mosh-server dynamisch nach Empfang eines authentifizierten SSH-Aufrufs.

Mobile Verbindungen und Sitzungszuverlässigkeit mit termi1

Die Nutzung von termi1 für mobile Terminalsitzungen kombiniert Mosh mit Backend-Prozessmanagern, um laufende Aufgaben vor versehentlichen Verbindungsabbrüchen zu schützen. Beim Wechsel zwischen WLAN-Zugangspunkten und Mobilfunkmasten auf Smartphones hält Mosh das Terminal reaktionsfähig, ohne den Zustand des entfernten Terminals zurückzusetzen.

Das Anbinden von Befehlen an tmux auf dem entfernten Rechner garantiert, dass laufende Aufgaben ohne Unterbrechung fortgesetzt werden, falls die Client-Anwendung beendet wird. Innerhalb von termi1 bietet die spezialisierte Tastaturoberfläche direkten Zugriff auf wichtige Steuerungstasten, die auf standardmäßigen virtuellen Tastaturen fehlen, darunter Esc, Ctrl, Tab und eine zusätzliche Funktionsleiste mit F1 bis F12.

Kryptografische SSH-Schlüssel, die direkt auf dem Smartphone generiert werden, verbleiben in Hardware-Sicherheits-Enklaven und verlassen das Gerät nicht. Darüber hinaus nutzen die Befehlsassistenz-Tools von termi1 Schutzmodi, um Befehle vor dem Absenden zu überprüfen, was entfernte Systeme vor unbeabsichtigten destruktiven Aktionen über unzuverlässige Netzwerkverbindungen schützt.

Häufig gestellte Fragen

Warum benötigt mosh-server eine anfängliche SSH-Verbindung?

Mosh nutzt OpenSSH auf TCP-Port 22, um die Benutzerauthentifizierung durchzuführen und einen flüchtigen 128-Bit-Sitzungsschlüssel sicher auszutauschen. Nach dem Aufbau des gegenseitigen Vertrauens öffnet mosh-server einen zugewiesenen UDP-Socket, wodurch der Client den Terminal-Datenverkehr vollständig von TCP auf das UDP-Protokoll verlagern kann.

Wie kann ein bestimmter UDP-Port für mosh-server festgelegt werden?

Der Mosh-Client unterstützt das Flag -p, um einen einzelnen UDP-Port festzulegen, anstatt eine dynamische Auswahl im Standardbereich 60000-61000 zu nutzen. Dieser explizite Port vereinfacht die Konfiguration eingehender Firewall-Regeln in Infrastrukturen mit strengen Sicherheitsvorgaben erheblich.

Warum bricht mosh-server bei Locale-Fehlern sofort ab?

mosh-server bricht sofort ab, wenn entweder die Client- oder die Serverumgebung einen anderen Zeichensatz als UTF-8 meldet. Das Zustandssynchronisationsprotokoll schreibt eine vollständige UTF-8-Kompatibilität auf beiden Endpunkten zwingend vor, um Terminal-Zustände ohne visuelle Fehler präzise darzustellen und zu spiegeln.

Unterstützt mosh-server standardmäßige SSH-Portweiterleitungen?

mosh-server unterstützt weder TCP-Port-Tunneling noch SOCKS-Proxys oder X11-Weiterleitungsfunktionen aus Standard-OpenSSH. Seine Architektur konzentriert sich stattdessen explizit auf die Synchronisation des Terminalzustands über UDP-Verbindungen mit geringer Bandbreite oder hoher Latenz und verzichtet auf allgemeines Stream-Multiplexing.