What is Mosh & how does it work?

Mosh: Den Ultimative Terminaloplevelse

03/06/2026

Rating: 4.49 (5852 votes)
Indholdsfortegnelse

Hvad er Mosh, og hvordan fungerer det?

I en verden, hvor mobilitet og konstant opkobling er blevet normen, står mange fjernarbejdere og IT-professionelle over for udfordringer med ustabile netværksforbindelser. Almindelige SSH-sessioner kan være frustrerende, da de ofte afbrydes eller bliver ekstremt langsomme, når forbindelsen svigter. Her kommer Mosh, eller Mobile Shell, ind i billedet som en banebrydende løsning. Mosh er designet til at overvinde disse begrænsninger og tilbyde en mere robust og responsiv fjernterminaloplevelse, især for brugere på farten eller på ustabile netværk som Wi-Fi eller mobildata.

Does Mosh work on iOS?
For iOS (iPad, iPhone), I use Blink Shell with built-in Mosh support. This works well when traveling light and connected to a cellular hotspot. No need to worry about spotty signals or dropped connections. Mosh will automatically reconnect. Mosh is available is most Linux distributions: sudo apt install mosh

I denne artikel dykker vi ned i, hvad Mosh er, hvordan det fungerer, dets fordele, ulemper og hvorfor det kan være det perfekte værktøj for dig, der har brug for en pålidelig forbindelse til dine servere.

Mosh vs. SSH: En Ny Tilgang til Fjernadgang

SSH (Secure Shell) har længe været standarden for sikker fjernadgang til servere. Det er et yderst pålideligt og sikkert protokol, der krypterer al kommunikation mellem klient og server. Men SSH er bygget på TCP, som er en forbindelsesorienteret protokol. Dette betyder, at hvis der opstår pakke tab eller forsinkelser, forsøger TCP at genoprette forbindelsen, hvilket ofte resulterer i en langsom og hakkende terminaloplevelse. Mosh tager en anden tilgang.

Mosh fungerer på et andet lag end SSH. Mens SSH sender en strøm af bytes frem og tilbage ved hjælp af TCP, kører Mosh en terminalemulator på serveren. Denne emulator identificerer præcist, hvad der skal vises på skærmen. Serveren sender derefter denne skærminformation til klienten med en varierende billedhastighed, afhængigt af netværkets hastighed. Denne metode tillader Mosh at spare på netværkstrafikken på langsomme eller ustabile forbindelser.

Hvordan Mosh Fungerer: State Synchronization Protocol (SSP)

Kernen i Mosh er State Synchronization Protocol (SSP). I stedet for at stole på TCP's stream-baserede natur, bruger Mosh UDP og SSP til at synkronisere terminalens tilstand mellem klient og server. SSP er designet til at håndtere pakke tab og netværksændringer effektivt.

Når du skriver en kommando i din Mosh-klient, sender Mosh den lokale input til serveren. Mosh's "local echo" funktion kan ofte forudsige og vise resultatet af dine tastetryk næsten øjeblikkeligt, selv før serveren har bekræftet det. Dette giver en følelse af en meget lav latenstid, da du ser dine tastetryk reflekteret i terminalen med det samme, hvilket drastisk forbedrer brugeroplevelsen på forbindelser med høj latenstid.

What is a mosh server?
In computing, Mosh (mobile shell) is a tool used to connect from a client computer to a server over the Internet, to run a remote terminal. Mosh is similar to SSH, with additional features meant to improve usability for mobile users. The major features are:

Hvis der opstår pakke tab, vil Mosh's SSP-protokol håndtere det uden at blokere hele forbindelsen, som TCP ville gøre. Den sender kun de nødvendige opdateringer for at synkronisere terminalens tilstand. Dette betyder, at selv med 20-30% pakke tab, kan Mosh opretholde en brugbar og responsiv session, mens SSH ville blive næsten ubrugelig.

Roaming og IP-adresseændringer

Et af de mest imponerende træk ved Mosh er dets evne til at håndtere roaming og ændringer i IP-adressen. Hvis du skifter netværk – for eksempel fra dit hjemme-Wi-Fi til din mobildata – mens en Mosh-session er aktiv, vil Mosh automatisk genoprette forbindelsen uden at du skal gøre noget. Dette er muligt, fordi Mosh ikke er bundet til en specifik TCP-forbindelse. Når klienten har skiftet IP-adresse, er en enkelt UDP-pakke, der når serveren, nok til at "roame" forbindelsen. Klienten behøver ikke engang at vide, at den har skiftet netværk.

Dette er en enorm fordel for mobile brugere, der ofte skifter mellem forskellige Wi-Fi-netværk eller bruger mobildata. Du kan forlade dit kontor, køre hjem, og din Mosh-session vil fortsætte uafbrudt på dit hjemmenetværk.

Fordele ved Mosh

  • Forbedret ydeevne på ustabile netværk: Mosh er markant bedre til at håndtere pakke tab og høj latenstid end SSH.
  • Roaming-understøttelse: Opretholder forbindelsen, selv når din IP-adresse ændrer sig.
  • Lokal ekko: Giver øjeblikkelig feedback på tastetryk, hvilket reducerer oplevet latenstid.
  • Reduceret netværkstrafik: Sender kun de nødvendige skærmopdateringer.
  • Automatisk genopretning: Genskaber automatisk forbindelsen efter midlertidige afbrydelser.

Mosh på Forskellige Platforme

Mosh er bredt tilgængelig og kan bruges på de fleste moderne operativsystemer:

  • Linux: Tilgængelig via de fleste pakkehåndteringssystemer (f.eks. `sudo apt install mosh` på Debian/Ubuntu, `sudo yum install mosh` på Fedora/CentOS).
  • macOS: Kan nemt installeres med Homebrew (`brew install mosh`).
  • Windows: Der findes ingen officiel Mosh-klient til Windows. Dog kan man bruge løsninger som Cygwin eller WSL (Windows Subsystem for Linux) til at køre Mosh. Nogle tredjeparts SSH-klienter, som PuTTY, understøtter ikke Mosh direkte.
  • Android: Apps som Termux eller JuiceSSH tilbyder Mosh-understøttelse.
  • iOS (iPhone/iPad): Apps som Blink Shell eller Termius har indbygget Mosh-understøttelse.

Installation på macOS med Homebrew:

brew install mosh 

Installation på Debian/Ubuntu:

sudo apt update sudo apt install mosh 

Sådan Bruger Du Mosh

Brugen af Mosh er meget lig SSH. Du starter en Mosh-session ved at skrive:

mosh [bruger]@[server] 

For eksempel:

mosh [email protected] 

Hvis du ønsker at specificere en anden port end standard SSH-porten (22), kan du bruge `-p` flaget:

mosh -p 2222 [email protected] 

Mosh vil automatisk forsøge at finde en ledig UDP-port på serveren til sin kommunikation. Som standard bruges UDP-porte i området 60000-61000.

Mosh's Ulemper og Begrænsninger

Selvom Mosh tilbyder betydelige fordele, er det ikke uden ulemper:

  • Server-prerequisites: Mosh kræver, at serveren har Mosh installeret og tillader UDP-forbindelser på de relevante porte. Dette kan være en udfordring på servere bag strenge firewalls, der kun tillader TCP på port 22.
  • Ingen SSH-agent forwarding: Den populære SSH-funktion `ssh-agent forwarding`, der tillader dig at bruge dine lokale SSH-nøgler til at autentificere dig på serveren uden at kopiere nøglerne, understøttes ikke af Mosh.
  • Ingen X11 forwarding: Ligesom SSH-agent forwarding, understøtter Mosh ikke X11 forwarding, hvilket er nødvendigt for at køre grafiske applikationer fra serveren på din lokale maskine.
  • Mangel på scrollback: I tidligere versioner manglede Mosh fuld scrollback-understøttelse, hvilket betød, at du ikke kunne scrolle op og se tidligere output i terminalen. Dette er dog rettet i nyere versioner og kan ofte omgås ved at bruge Mosh sammen med en terminal multiplexer som `screen` eller `tmux`.
  • Ingen indbygget Windows-klient: Som nævnt tidligere, mangler der en officiel Mosh-klient til Windows.

Sammenligningstabel: Mosh vs. SSH

FunktionMoshSSH
ProtokolUDPTCP
Roaming/IP-ændringJa (automatisk)Nej (kræver genforbindelse)
Pakke tab-håndteringMeget god (via SSP)Dårlig (reducerer hastighed markant)
Lokal ekkoJa (hurtig feedback)Nej (afhængig af server-feedback)
SSH-agent forwardingNejJa
X11 forwardingNejJa
Server-kravMosh-server, UDP-adgangSSH-server
ScrollbackDelvis/Planlagt (bedre med tmux/screen)Ja

Ofte Stillede Spørgsmål om Mosh

Q: Skal jeg installere noget på serveren for at bruge Mosh?
Ja, Mosh-serverprogrammet skal være installeret på den server, du vil forbinde til, og serveren skal tillade UDP-forbindelser fra din klient.

What is Mosh & how does it work?

Q: Kan jeg bruge Mosh til filoverførsel?
Nej, Mosh er designet til terminalsessioner. Til filoverførsel bør du fortsat bruge værktøjer som `scp` eller `sftp`, som kører over SSH.

Q: Hvad hvis min firewall blokerer UDP-porte?
Hvis din firewall blokerer UDP-porte, især i det standardområde Mosh bruger (60000-61000), vil Mosh ikke fungere. Du skal muligvis konfigurere din firewall til at tillade UDP-trafik for Mosh-forbindelser. Det er også muligt at specificere et fast UDP-portområde for Mosh-serveren, hvilket kan forenkle firewall-konfigurationen.

Q: Er Mosh sikrere end SSH?
Mosh bruger SSH til den indledende autentificering og etablering af forbindelsen, så det arver SSH's sikkerhed på det punkt. Selve Mosh-kommunikationen over UDP er krypteret, ligesom SSH. Sikkerhedsmæssigt er de meget ens, men Mosh's styrke ligger i dets robusthed og brugervenlighed på ustabile netværk.

Konklusion

Mosh er et kraftfuldt værktøj, der markant forbedrer oplevelsen af at arbejde med fjernterminaler, især i scenarier med dårlig eller ustabil netværksforbindelse. Dets evne til at håndtere pakke tab, roaming og give øjeblikkelig feedback på tastetryk gør det til et uundværligt redskab for mange. Selvom det har visse begrænsninger sammenlignet med SSH, såsom manglende SSH-agent og X11 forwarding, opvejes disse ofte af de store fordele i ydeevne og stabilitet.

Hvis du ofte arbejder via SSH på mobile enheder, på offentlige Wi-Fi-netværk, eller generelt oplever problemer med forbindelsens stabilitet, er det absolut værd at prøve Mosh. Det kan transformere din fjernarbejdsoplevelse fra frustrerende til problemfri.

Hvis du vil læse andre artikler, der ligner Mosh: Den Ultimative Terminaloplevelse, kan du besøge kategorien Teknologi.

Go up