
Você já precisou demonstrar suas atividades de terminal em tempo real, seja solucionando um problema de servidor com um colega ou mostrando um comando complexo para um amigo? Em vez de tirar capturas de tela ou gravar sua tela, imagine a conveniência de compartilhar sua sessão de terminal ao vivo por meio de um simples link da web. Esse método não só aprimora a colaboração, como também permite visibilidade em tempo real de suas atividades.
O Linux oferece vários métodos para compartilhamento de terminais, incluindo opções tradicionais como SSH, ferramentas como tmux e screen, além de utilitários de gravação de tela como asciinema. Embora essas opções possam ser eficazes, elas geralmente envolvem complexidade desnecessária e dependências adicionais que podem atrapalhar seu fluxo de trabalho.
Insira a ferramenta de linha de comando ttyd. O ttyd simplifica o compartilhamento do seu terminal, transformando-o em uma interface web, permitindo que qualquer pessoa com o link acesse e até mesmo interaja com sua sessão sem a necessidade de instalar software adicional ou definir configurações.
Principais recursos do ttyd
- Utiliza Libwebsockets e libuv para desempenho excepcional.
- Utiliza WebSockets para uma experiência perfeita, mesmo com conectividade limitada.
- Suporta ZMODEM gráfico para transferências de arquivos, permitindo que os usuários arrastem e soltem arquivos diretamente pelo navegador da web.
- Inclui criptografia SSL/TLS para garantir sessões seguras, com opções de autenticação.
- Executa em qualquer porta designada e oferece compatibilidade para implantação em dispositivos como o Raspberry Pi.
- Possui funcionalidade de copiar/colar integrada entre o terminal e a interface web.
- Capacidade de restringir conexões simultâneas para gerenciamento de sessão.
- Abre automaticamente sessões no navegador da web padrão.
- Permite restrições de acesso de cliente único para maior segurança.
Como instalar o ttyd no Linux
Usuários do Debian ou Ubuntu podem descobrir que o ttyd não está presente nos repositórios padrão. No entanto, a instalação continua simples por meio de métodos alternativos, como compilar a partir do código-fonte.
Comece garantindo que seu sistema esteja totalmente atualizado:
sudo apt update && sudo apt upgrade -y
Em seguida, instale as dependências necessárias para compilar o ttyd:
sudo apt install -y build-essential cmake git libjson-c-dev libwebsockets-dev

Clone o repositório ttyd do GitHub e compile-o usando os seguintes comandos:
git clone https://github.com/tsl0922/ttyd.git cd ttyd mkdir build && cd build cmake..make sudo make install
Pronto! Agora você tem o ttyd instalado no seu sistema.
Para outras distribuições Linux, você pode seguir diretrizes de compilação semelhantes ou, alternativamente, baixar um binário pré-compilado da página de lançamentos do ttyd no GitHub. Para baixá-lo rapidamente, use o seguinte comando wget:
wget https://github.com/tsl0922/ttyd/releases/download/1.7.7/ttyd.x86_64
Torne o binário baixado executável:
chmod +x ttyd.x86_64
Usar este método fornece uma das maneiras mais rápidas de tornar o ttyd operacional em diversas distribuições Linux. Você também pode utilizar um gerenciador de pacotes universal, como o Snap, para instalar o ttyd:
sudo snap install ttyd --classic
Depois que o ttyd for instalado, verifique sua instalação digitando ttyd --version
.
Transformando seu terminal em uma interface web compartilhável
A maneira mais simples de aproveitar o ttyd é compartilhando sua sessão de shell padrão. Execute o seguinte comando:
ttyd bash
Este comando iniciará um servidor web na porta 7681 por padrão. Para acessá-lo, basta abrir seu navegador e navegar até http://localhost:7681 ou http://seu-endereço-ip:7681.

Seu terminal agora deve estar visível em uma página da web, e qualquer usuário da rede local pode acessá-lo substituindo “localhost” pelo endereço IP da sua máquina. Você pode encontrar seu IP usando ip addr show
ou hostname -I
para compartilhar com outras pessoas.
Além de compartilhar um shell, o ttyd permite que você exponha outros aplicativos de linha de comando no navegador. Por exemplo, o comando ttyd htop
iniciará diretamente o htop
gerenciador de processos, enquanto ttyd vim
ou ttyd top
compartilhará as respectivas ferramentas.

Se desejar personalizar o número da porta da sua sessão, você pode fazer isso facilmente usando o -p
sinalizador:
ttyd -p 8080 bash
Isso torna seu terminal disponível na porta 8080 em vez da porta padrão 7681.
Para evitar acesso não autorizado, o ttyd também suporta autenticação por meio da -c
opção:
ttyd -c username:password bash

Esta configuração solicita autenticação HTTP básica, garantindo que qualquer pessoa que tente acessar seu terminal insira as credenciais designadas. Embora uma autenticação mais sofisticada seja preferível para ambientes de produção, este método é eficaz para demonstrações informais ou redes confiáveis.
Além disso, você pode criar uma sessão somente leitura, proibindo qualquer entrada de usuários:
ttyd -R bash
Isso pode ser particularmente vantajoso para apresentações ou ambientes educacionais onde você deseja manter o controle. Por outro lado, utilize a -W
sinalização para uma sessão interativa e gravável:
ttyd -W bash
Compartilhamento seguro pela Internet
Ao compartilhar seu terminal pela internet, implementar criptografia é crucial. O ttyd oferece suporte a HTTPS usando seu próprio certificado SSL. Se você não tiver um certificado SSL, pode criar um autoassinado com o OpenSSL para fins de teste. No entanto, para uso em produção, é recomendável utilizar uma Autoridade Certificadora confiável, como a Let’s Encrypt.
Embora o ttyd seja acessível por padrão apenas na sua rede local, muitas vezes é necessário estender esse acesso externamente. Você pode fazer isso com segurança por meio de diversas abordagens. Um dos métodos mais simples é integrar o ttyd a um serviço de tunelamento como o Tailscale ou o Cloudflare Tunnel, que disponibiliza sua porta local na internet com segurança por meio de uma URL pública temporária. Como alternativa, você pode hospedar o ttyd em um VPS ou servidor em nuvem com um nome de domínio, permitindo acesso HTTPS permanente.
Para configurações mais avançadas, você pode vincular o ttyd exclusivamente ao localhost e colocá-lo atrás de um proxy reverso, como Nginx ou Caddy. Essa configuração permite o processamento de terminação SSL, autenticação e controle de acesso detalhado.
Conclusão
Com o ttyd, o complexo processo de compartilhamento de terminal se transforma em uma tarefa simples, semelhante ao compartilhamento de um hiperlink.
Deixe um comentário