Instalar o mosh-server no Ubuntu, Debian e Alpine requer adicionar o pacote oficial da distribuição, permitir o tráfego UDP de entrada nas portas 60000 a 61000 e verificar um locale UTF-8 ativo. O daemon é inicializado através de uma sessão SSH inicial para fornecer ligações de shell remotas persistentes e resilientes à perda de pacotes e ao roaming de IP.

Requisitos de rede e portas UDP para o mosh-server

O Mosh inicializa o binário remoto mosh-server através de uma ligação preliminar do OpenSSH que escuta na porta TCP 22 por predefinição. Após a autenticação bem-sucedida por chave pública ou palavra-passe, o servidor inicia o processo numa porta UDP negociada dentro do intervalo 60000-61000 e encerra o canal SSH interativo para funcionar através de datagramas cifrados.

A firewall do servidor deve permitir pacotes de entrada neste intervalo de portas para que os clientes móveis e de desktop possam comunicar. Ao contrário do OpenSSH padrão, o Mosh não implementa reencaminhamento de portas TCP ou de X11, concentrando o seu protocolo estritamente na previsão de entrada de dados, baixa latência e recuperação de ligação em interfaces instáveis.

Propriedade técnicaOpenSSH padrãoMosh com mosh-server
Protocolo de transporteTCP persistente com controlo de fluxoUDP cifrado através do State Synchronization Protocol
Portas de firewallPorta TCP 22 por predefiniçãoIntervalo UDP 60000-61000 mais TCP 22 para configuração
Roaming de IP do clienteA sessão cai imediatamente após a alteração do IPA sessão persiste de forma transparente entre redes
Reencaminhamento de portas e X11Suportado nativamente através de parâmetros de comandoNão implementado pela arquitetura de conceção

Quando as máquinas se encontram atrás de CGNAT rigoroso sem endereços IPv4 públicos acessíveis, os administradores podem implementar redes mesh privadas, como a rede mesh segura Prialo ou o Tailscale, para estabelecer ligações diretas sem abrir portas de firewall públicas arbitrárias.

Instalação do mosh-server no Ubuntu e Debian com o apt

O gestor de pacotes apt disponibiliza o mosh-server diretamente a partir dos repositórios base do Ubuntu e Debian, sem necessitar de arquivos de pacotes pessoais de terceiros. A instalação do pacote unificado fornece tanto os componentes de cliente como os binários de servidor necessários para ligações de entrada.

sudo apt update
sudo apt install -y mosh

Para permitir pacotes UDP na configuração predefinida da firewall do Ubuntu, configure o Uncomplicated Firewall (UFW) para aceitar o intervalo de portas atribuído:

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

Se o serviço OpenSSH escutar numa porta alternativa, forneça a string de ligação no cliente através de --ssh="ssh -p PORT". Independentemente da porta de inicialização, o mosh-server deve residir no $PATH do utilizador de destino, instalado tipicamente em /usr/bin/mosh-server.

Configurar locales UTF-8 para evitar erros de arranque

O Mosh impõe uma codificação de carateres UTF-8 válida nos ambientes de cliente e servidor. Se as variáveis de ambiente do sistema recorrerem a definições POSIX ou C sem suporte para UTF-8, o processo remoto mosh-server termina imediatamente com um erro de diagnóstico fatal durante o arranque.

Imagens de servidor mínimas no Debian e Ubuntu muitas vezes não têm locales não-ASCII pré-gerados. Execute os seguintes comandos para gerar e definir a configuração de locale em todo o sistema:

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

Verifique o ambiente verificando a saída do comando locale numa sessão SSH ativa; as variáveis LANG e LC_CTYPE têm de mencionar explicitamente UTF-8 antes de iniciar o Mosh.

Instalação do mosh-server no Alpine Linux com o apk

O Alpine Linux inclui o Mosh no seu repositório principal de pacotes gerido através do apk. Como o Alpine utiliza a biblioteca C leve musl em vez da glibc, a compatibilidade com UTF-8 é tratada de forma nativa sem necessidade de binários autónomos de geração de locales.

apk update
apk add mosh

Se o Alpine recorrer ao iptables ou ao nftables para restringir o acesso perimetral, adicione uma regra que aceite datagramas dentro do intervalo UDP esperado:

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

Certifique-se de que o daemon do servidor OpenSSH (sshd) está em execução no anfitrião Alpine, uma vez que o Mosh não mantém um processo de escuta contínuo em segundo plano; ele gera o mosh-server dinamicamente ao receber uma invocação SSH autenticada.

Ligações móveis e fiabilidade de sessão com o termi1

Utilizar o termi1 para sessões de terminal móvel combina o Mosh com gestores de processos em segundo plano para proteger as tarefas em execução contra desconexões acidentais. Ao transitar entre pontos de acesso Wi-Fi e redes móveis nos telemóveis, o Mosh mantém o terminal responsivo sem repor o estado do terminal remoto.

Associar comandos ao tmux na máquina remota garante que as tarefas em execução continuam ininterruptas caso a aplicação cliente termine. No termi1, a interface de teclado especializada oferece acesso imediato a teclas de controlo essenciais omitidas pelos teclados virtuais padrão, incluindo Esc, Ctrl, Tab e uma fila de funções auxiliares de F1 a F12.

As chaves criptográficas SSH geradas diretamente no telemóvel permanecem guardadas em enclaves de segurança por hardware sem nunca saírem do dispositivo. Além disso, as ferramentas de assistência de comandos do termi1 utilizam modos de proteção para verificar os comandos antes do envio, protegendo os sistemas remotos contra ações destrutivas não intencionais em ligações de rede instáveis.

Perguntas frequentes

Por que motivo o mosh-server requer uma ligação SSH inicial?

O Mosh utiliza o OpenSSH na porta TCP 22 para autenticar o utilizador e trocar com segurança uma chave de sessão efémera de 128 bits. Após estabelecer a confiança mútua, o mosh-server abre um socket UDP dedicado, permitindo ao cliente transferir o tráfego do terminal para fora do TCP.

Como pode ser definida uma porta UDP específica para o mosh-server?

O cliente Mosh suporta a flag -p para definir uma única porta UDP em vez de recorrer à seleção dinâmica no intervalo predefinido 60000-61000. Definir esta porta explícita simplifica a configuração de regras de firewall de entrada em infraestruturas com políticas de segurança restritivas de perímetro.

O que faz o mosh-server encerrar imediatamente com erros de locale?

O mosh-server termina de imediato se o ambiente do cliente ou do servidor indicar uma codificação de carateres diferente de UTF-8. O protocolo de sincronização exige compatibilidade total com UTF-8 em ambos os extremos para processar e replicar com precisão o estado do ecrã do terminal sem degradação visual.

O mosh-server suporta o reencaminhamento de portas padrão do SSH?

O mosh-server não suporta tunelamento de portas TCP, proxies SOCKS nem reencaminhamento de X11 disponíveis no OpenSSH padrão. A sua arquitetura foca-se exclusivamente na sincronização de estado do terminal através de ligações UDP com baixa largura de banda ou latência elevada, omitindo a multiplexagem de fluxos genéricos.