Você subiu o OpenClaw num VPS, abriu a porta 18789 no firewall e acessa o dashboard por http://SEU_IP:18789. Funciona. Mas qualquer pessoa na internet também alcança esse endereço, e o gateway token (a credencial do painel) viaja em texto puro — sem criptografia — toda vez que você acessa.
Dá para fazer melhor sem complicar. A própria documentação do OpenClaw recomenda manter o gateway fechado e acessar por túnel.
TL;DR
| Situação | O que fazer |
|---|---|
| Acesso ocasional, você já usa SSH | Túnel SSH (ssh -L), zero instalação extra |
| Acesso recorrente de vários dispositivos | Tailscale (rede privada + HTTPS) |
Caminho Docker 1-clique já expôs http://IP:18789 | Feche a 18789 no firewall e migre para um dos dois acima |
| Nunca | ufw allow 18789 para o mundo |
Por que não deixar a porta aberta
Por padrão, o gateway do OpenClaw escuta só no loopback — a configuração gateway.bind: "loopback" aceita apenas conexões locais da própria máquina. O painel também exige autenticação: sem um gateway token válido, o gateway recusa a conexão (falha fechada).
Ou seja: a segurança de base já está lá. O problema aparece quando você muda esse comportamento para acessar de fora — abrindo a porta no firewall ou fazendo o gateway escutar em 0.0.0.0. A recomendação da documentação é direta: nunca exponha o gateway sem autenticação em 0.0.0.0, e o painel (Control UI) precisa de um contexto seguro — HTTPS ou localhost.
exposto na internet (evite):
seu navegador ──(http, texto puro)──> SEU_IP:18789 <── qualquer um na internet
por túnel (recomendado):
seu navegador ──> localhost:18789 ──(SSH/Tailscale, criptografado)──> gateway no loopback
Acessar por http://SEU_IP:18789 não é o fim do mundo — o token ainda barra quem não o tem. Mas a porta aberta aumenta a superfície de ataque e o token trafega sem criptografia. Fechar a porta e tunelar resolve os dois pontos.
Opção 1: túnel SSH (mais simples)
Se você já acessa o VPS por SSH, não precisa instalar nada. Um túnel encaminha a porta 18789 do servidor para a sua máquina, por dentro da conexão SSH (que já é criptografada).
No seu computador (não no VPS):
# Encaminha a porta 18789 do VPS para a sua máquina local
ssh -N -L 18789:127.0.0.1:18789 deploy@SEU_IP
O que cada parte faz:
-N— não abre um shell, só mantém o túnel.-L 18789:127.0.0.1:18789— porta local18789→127.0.0.1:18789no VPS (onde o gateway escuta).deploy@SEU_IP— seu usuário e o IP do servidor.
Com o comando rodando, abra http://localhost:18789 no navegador. O tráfego vai criptografado pelo SSH e a porta 18789 continua fechada no firewall do VPS — lá você libera só a 22 (SSH):
ufw allow 22
ufw enable
Quando terminar, é só interromper o comando (Ctrl+C). Bom para acesso pontual; menos confortável se você acessa de vários aparelhos ou o tempo todo.
Opção 2: Tailscale (acesso recorrente)
Tailscale cria uma rede privada (um “tailnet”) entre seus dispositivos usando WireGuard. O VPS entra nessa rede e você acessa o painel como se estivesse na rede local — sem abrir portas públicas. Veja o glossário sobre Tailscale para os conceitos.
1. Instale e conecte no VPS:
# Instala o Tailscale (script oficial)
curl -fsSL https://tailscale.com/install.sh | sh
# Conecta o VPS ao seu tailnet (abre um link para autenticar)
sudo tailscale up
Instale o Tailscale também no seu computador ou celular e entre com a mesma conta. Agora os dois estão na mesma rede privada.
2. Publique o painel por HTTPS dentro do tailnet:
Como o gateway escuta no loopback, use o tailscale serve para expor localhost:18789 por HTTPS só para os seus dispositivos:
# No VPS — publica o dashboard por HTTPS dentro do tailnet
sudo tailscale serve --bg --https=443 localhost:18789
# Conferir o que está publicado
tailscale serve status
Depois acesse pelo nome MagicDNS do VPS (algo como https://meu-vps) de qualquer dispositivo do seu tailnet. O tráfego é criptografado e a porta 18789 segue fechada para a internet.
Para parar de publicar:
sudo tailscale serve --https=443 localhost:18789 off
Já usei o Docker 1-clique e recebi http://IP:18789
O caminho Docker da Hostinger entrega o painel num endereço público. Para fechar:
- Garanta que a porta
18789não está liberada no firewall (ufw statuspara conferir; remova a regra se existir). - Configure túnel SSH ou Tailscale como acima.
- Passe a acessar por
http://localhost:18789(túnel) ou pelo nome do tailnet.
O passo a passo de instalação no VPS está em Rodar OpenClaw 24/7 na Hostinger.
Troubleshooting
O túnel SSH conecta mas localhost:18789 não abre.
Confirme que o gateway está rodando no VPS (openclaw status) e que ele escuta no loopback. Se você mudou gateway.bind para outro valor, o 127.0.0.1:18789 do túnel pode não bater com a porta real.
tailscale serve reclama de permissão.
Use sudo. O serve precisa de privilégio para abrir a porta HTTPS no nó.
Quero acessar de fora do tailnet (rede de terceiros).
Não exponha a 18789 direto. Se precisar de acesso público (raro), coloque um proxy reverso com HTTPS na frente e mantenha o gateway no loopback — nunca o gateway em texto puro na porta pública.
O painel abre mas pede token. É o comportamento esperado: o gateway token é obrigatório. Ele fica nas variáveis de ambiente do container (no Docker Manager da Hostinger, em Environment).