ZeroTier: acesso remoto por SSH a qualquer dispositivo, mesmo no 5G
Guia completo para instalar, configurar e usar o ZeroTier para criar uma rede privada virtual entre seus dispositivos e acessá-los por SSH de qualquer lugar — mesmo atrás do CGNAT da operadora.
Você já tentou acessar o seu desktop de casa pelo notebook na faculdade, ou pelo celular no 5G da operadora, e esbarrou na frustração de não ter um IP fixo, de estar atrás de NAT, ou de o roteador simplesmente não deixar uma porta aberta para o mundo? Esse é o problema clássico de quem quer acessar a própria infraestrutura remotamente sem expor nada para a internet pública.
O ZeroTier resolve isso de um jeito elegante: ele cria uma rede local virtual que junta todos os seus dispositivos como se estivessem no mesmo cabo de rede, não importa onde eles estejam no mundo. A partir daí, acessar qualquer máquina por SSH vira tão simples quanto acessar um vizinho na sua LAN.
Neste artigo eu mostro tudo: o que é o ZeroTier, como ele funciona por baixo dos panos, como instalar e configurar em Linux, Windows, macOS, Android e iOS, e como usar isso para acessar seus dispositivos por SSH de qualquer lugar. No final, há um link para um segundo artigo sobre como usar o Syncthing para sincronizar arquivos entre esses mesmos dispositivos.
Meus dois objetivos com o ZeroTier:
- Acessar por SSH o desktop, o notebook e outros aparelhos mesmo fora da rede local (faculdade, 5G da operadora, Wi-Fi de terceiros).
- Servir de “rede base” estável para o Syncthing sincronizar arquivos entre todos os dispositivos.
O que é o ZeroTier
O ZeroTier é um software de rede definida por software (SD-WAN) que cria uma rede ethernet virtual sobre a internet. Na prática, cada dispositivo que entra na sua rede ZeroTier ganha um IP virtual fixo (por exemplo, 10.147.20.10) e passa a enxergar todos os outros membros como se estivessem na mesma rede local — mesmo que um esteja no Rio, outro em São Paulo e um terceiro no 5G de uma operadora qualquer.
As características que fazem ele brilhar:
- Ponto a ponto (P2P): sempre que possível, os dispositivos conversam diretamente entre si, sem passar por um servidor central. Isso significa baixa latência e boa velocidade.
- Atravessa NAT e CGNAT: usa UDP hole punching para furar o NAT da sua casa e até o CGNAT das operadoras móveis — exatamente o que torna o acesso pelo 5G possível sem precisar de IP público.
- Criptografia ponta a ponta: todo o tráfego é cifrado (Curve25519 para troca de chaves, Salsa20/Poly1305 para os dados). Nem o ZeroTier consegue ler o que trafega.
- IPs estáveis: o IP virtual de cada aparelho não muda, então você configura o SSH uma vez e nunca mais mexe.
- Multiplataforma: Linux, Windows, macOS, Android, iOS, BSDs, NAS, roteadores.
- Gratuito para uso pessoal: o plano grátis suporta até 25 dispositivos numa conta, mais que suficiente para um homelab.
Pense nele como uma VPN mesh: não é uma VPN “tudo passa por um servidor” (full-tunnel), e sim uma malha de pares que se enxergam diretamente.
Como o ZeroTier funciona por baixo dos panos
Vale entender três peças, porque elas aparecem na configuração:
Node ID (identidade do dispositivo)
Cada dispositivo que roda o ZeroTier gera uma identidade criptográfica com um endereço de 10 dígitos hexadecimais (ex.: a1b2c3d4e5). É o “RG” daquele aparelho na rede. Você vê o seu com zerotier-cli info.
Network ID (identidade da rede)
Você cria uma rede e ela ganha um Network ID de 16 dígitos hexadecimais (ex.: 8056c2e21c000001). É esse número que você informa em cada dispositivo para ele pedir entrada na rede.
Controller (o “porteiro” da rede)
A rede precisa de um controller, que decide quem entra, quais IPs cada um recebe e quais regras valem. Há duas opções:
- ZeroTier Central (
my.zerotier.com) — o controller hospedado pela própria ZeroTier, gratuito até 25 nós. É o caminho mais simples e o que vou usar neste guia. - Controller próprio (auto-hospedado) — você roda o seu, com interfaces como
ztncuiouZeroUI. Mais privado, porém mais trabalhoso. Falo disso na seção de privacidade.
Planets e Moons (os roteadores raiz)
Quando dois pares ainda não se acharam diretamente, eles se encontram através de servidores raiz globais chamados planets. Se a conexão direta P2P não rolar (rede muito restritiva), o tráfego cai para um modo relay — funciona, mas com mais latência. Você pode hospedar seus próprios relays, chamados moons, para ter privacidade e desempenho melhores (também na seção de privacidade).
Planejamento: meus dispositivos
Antes de pôr a mão na massa, defina quais aparelhos vão entrar na rede. No meu caso:
| Dispositivo | Sistema | Papel principal |
|---|---|---|
| Desktop | Arch Linux | Máquina principal, acessada por SSH e hub do Syncthing |
| Notebook | Linux | Acesso remoto + nó de sincronização |
| Celular | Android | Nó de sincronização (e SSH opcional) |
| Tablet | Android | Nó de sincronização |
A ideia: todos entram na mesma rede ZeroTier e ganham um IP virtual fixo. A partir daí, qualquer um acessa qualquer outro por SSH, e o Syncthing usa esses IPs para sincronizar de forma confiável.
Passo 1 — Criar a conta e a rede no ZeroTier Central
-
Acesse my.zerotier.com e crie uma conta (ou entre com Google/GitHub).
-
Clique em Create A Network. Uma rede nova aparece com um Network ID de 16 dígitos. Anote esse número — você vai usá-lo em todos os dispositivos.
-
Abra a rede e configure o essencial:
- Name / Description: dê um nome (ex.:
homelab) para se localizar. - Access Control: mantenha PRIVATE (padrão). Numa rede privada, todo novo dispositivo precisa ser autorizado manualmente por você — ninguém entra só com o Network ID. Nunca use PUBLIC para uso pessoal.
- IPv4 Auto-Assign: ative e escolha uma faixa. Sugiro Easy com uma sub-rede que você reconheça de cara, como
10.147.20.0/24. Evite faixas que colidam com a sua LAN doméstica (se sua casa é192.168.0.0/24, não use a mesma).
- Name / Description: dê um nome (ex.:
Pronto — a rede existe. Agora é instalar o cliente em cada aparelho e pedir entrada.
Passo 2 — Instalar e entrar com o desktop (Arch Linux)
No Arch, o pacote está nos repositórios oficiais:
sudo pacman -S zerotier-one
Habilite e inicie o serviço:
sudo systemctl enable --now zerotier-one
Confira se o serviço subiu e qual é a identidade do dispositivo:
sudo zerotier-cli info
# 200 info a1b2c3d4e5 1.14.0 ONLINE
Agora entre na rede usando o Network ID que você anotou:
sudo zerotier-cli join 8056c2e21c000001
# 200 join OK
Nesse momento o dispositivo aparece como não autorizado no painel. Vá ao Passo 5 para liberá-lo. Comandos úteis do cliente:
sudo zerotier-cli listnetworks # redes em que estou e o IP que recebi
sudo zerotier-cli peers # pares e se a conexão é DIRECT ou RELAY
sudo zerotier-cli leave <NETID> # sair de uma rede
Outras distros Linux: o instalador universal funciona em qualquer lugar:
curl -s https://install.zerotier.com | sudo bashDepois é o mesmo
systemctl enable --now zerotier-oneezerotier-cli join.
Passo 3 — Instalar no notebook, Windows e macOS
- Notebook (Linux): repita o Passo 2 (pacman no Arch, ou o instalador universal).
- Windows: baixe o instalador em zerotier.com/download, instale, clique no ícone da bandeja → Join New Network → cole o Network ID.
- macOS: mesmo download; após instalar, use o ícone na barra de menus → Join Network.
Em todos, o aparelho aparecerá pendente de autorização no painel.
Passo 4 — Instalar no celular e no tablet (Android/iOS)
- Instale o app ZeroTier One (Play Store ou App Store).
- Abra, toque no +, cole o Network ID e confirme.
- Conceda a permissão de VPN que o Android/iOS solicita — o ZeroTier cria uma interface de rede virtual usando a API de VPN do sistema. Isso não roteia toda a sua internet por um servidor; só cuida do tráfego da rede ZeroTier.
- Deixe o toggle da rede ligado.
O celular e o tablet também aparecerão pendentes de autorização.
Passo 5 — Autorizar, nomear e fixar IPs dos membros
Volte ao ZeroTier Central, abra a rede e role até Members. Cada dispositivo que deu join aparece ali pelo seu Node ID.
Para cada um:
-
Marque a caixa “Auth” (autorizado). Só depois disso o dispositivo recebe um IP e entra de fato na rede.
-
Dê um nome amigável em “Name” (ex.:
desktop,notebook,celular,tablet) — ajuda muito a se localizar. -
(Opcional, mas recomendado) Fixe o IP: clique no IP gerenciado e defina um valor fácil de lembrar dentro da faixa. Sugestão:
Dispositivo IP ZeroTier desktop 10.147.20.10notebook 10.147.20.11celular 10.147.20.12tablet 10.147.20.13
IP fixo é o que torna a configuração de SSH e Syncthing “configura uma vez e esquece”.
Passo 6 — Testar a conectividade
De volta ao desktop, confira o IP que ele recebeu:
sudo zerotier-cli listnetworks
# ... 10.147.20.10/24
Faça um ping do desktop para o notebook (use o IP ZeroTier do notebook):
ping 10.147.20.11
E veja como estão os pares — você quer ver DIRECT (conexão ponta a ponto, ótimo); RELAY significa que está passando por um servidor raiz (funciona, mas é o plano B):
sudo zerotier-cli peers
Se tudo responde, a rede virtual está no ar. Agora é só usar.
Usando SSH sobre o ZeroTier
Esse é o objetivo principal. Com os IPs virtuais estáveis, acessar uma máquina de qualquer lugar — inclusive no 5G — é idêntico a acessá-la na LAN.
No dispositivo de destino (ex.: o desktop)
Garanta que o servidor SSH está instalado e rodando:
# Arch / a maioria das distros
sudo pacman -S openssh
sudo systemctl enable --now sshd
Por padrão o sshd escuta em todas as interfaces (0.0.0.0), então ele já aceita conexões pela interface ZeroTier (zt...). Não precisa abrir nenhuma porta no roteador — esse é o ponto.
Do dispositivo de origem (notebook no 5G, por exemplo)
ssh [email protected]
Funciona estando você em casa, na faculdade ou no 5G da operadora. O ZeroTier cuida de furar o NAT/CGNAT por baixo.
Apelidos no ~/.ssh/config
Decorar IPs é chato. Crie apelidos no ~/.ssh/config:
Host desktop
HostName 10.147.20.10
User valmor
Host notebook
HostName 10.147.20.11
User valmor
Agora basta ssh desktop ou ssh notebook de qualquer lugar.
Endurecendo o SSH (recomendado)
Como o desktop fica acessível de qualquer rede onde você esteja, vale reforçar a autenticação. Use chaves e desative senha:
# Na origem: gere o par de chaves (se ainda não tiver)
ssh-keygen -t ed25519 -C "valmor@notebook"
# Copie a chave pública para o destino
ssh-copy-id [email protected]
No destino, edite /etc/ssh/sshd_config (ou um arquivo em /etc/ssh/sshd_config.d/) e ajuste:
PasswordAuthentication no
PubkeyAuthentication yes
PermitRootLogin no
Recarregue: sudo systemctl reload sshd. Como a porta SSH não está exposta à internet pública (só vive dentro da rede ZeroTier criptografada), o risco de varredura e força bruta despenca.
E o SSH para o celular/tablet?
O celular e o tablet costumam ser alvos de sincronização, não de SSH. Mas se você quiser entrar no Android por SSH, instale o Termux, rode um sshd dentro dele e conecte no IP ZeroTier do aparelho. É um caso de nicho; para a maioria, os aparelhos Android servem só ao Syncthing.
Firewall e a interface zt
Se você usa firewall no desktop/notebook, libere o tráfego na interface do ZeroTier. O nome dela costuma ser algo como ztabc1234 — você descobre com ip addr show | grep zt. O ZeroTier sempre cria interfaces com o prefixo zt, então use o coringa zt+.
nftables / iptables (libera SSH vindo só da interface ZeroTier):
sudo iptables -A INPUT -i zt+ -p tcp --dport 22 -j ACCEPT
firewalld (coloca a interface numa zona confiável):
sudo firewall-cmd --permanent --zone=trusted --add-interface=ztabc1234
sudo firewall-cmd --reload
Garanta também que o UDP 9993 de saída não esteja bloqueado — é a porta que o ZeroTier usa para conversar com os pares e com os servidores raiz. Quase sempre ela já está liberada por padrão.
Convivência com VPN sempre ativa
Se você roda uma VPN full-tunnel sempre ligada (todo o tráfego sai cifrado por ela), o ZeroTier ainda funciona — mas há detalhes:
- O tráfego do ZeroTier (UDP 9993) vai sair por dentro do túnel da VPN. Isso é normal e funciona, desde que a VPN não bloqueie UDP de saída.
- A descoberta P2P direta entre pares pode falhar quando os dois lados estão atrás de VPNs diferentes; nesse caso o ZeroTier cai para RELAY. Continua funcionando, só com mais latência. Hospedar um moon próprio (abaixo) ajuda nesse cenário.
- Não desligue a VPN para o ZeroTier funcionar — não é necessário. Se notar lentidão, cheque
zerotier-cli peerspara ver se está emRELAYe considere o moon.
Segurança e privacidade
O ZeroTier já nasce seguro, mas dá para apertar mais:
- Mantenha a rede PRIVATE e só autorize dispositivos que você reconhece. Reveja a lista de membros de tempos em tempos e remova o que não usa.
- Flow Rules: o painel permite escrever regras de fluxo (uma mini-linguagem de firewall da própria rede) para, por exemplo, permitir só SSH e o tráfego do Syncthing entre os membros, bloqueando o resto.
- Controller próprio: se você não quer depender do ZeroTier Central nem que os metadados da sua rede passem por terceiros, hospede um controller seu com
ztncuiouZeroUI. Você assume a gestão de membros e IPs, mas ganha controle total. - Moon (relay próprio): registre um servidor seu (um VPS, por exemplo) como moon para servir de ponto de encontro e relay. Melhora a privacidade (não depende dos planets públicos) e o desempenho quando o P2P direto não fecha — especialmente útil atrás de VPN.
Para quem leva privacidade a sério, a combinação controller próprio + moon próprio entrega uma malha privada que não depende de infraestrutura de terceiros para nada além do trânsito de pacotes cifrados.
Solução de problemas comuns
- Dispositivo aparece OFFLINE no painel: o serviço não está rodando (
sudo systemctl status zerotier-one) ou o aparelho não tem internet. No Android, confira se o toggle da rede está ligado e se a permissão de VPN foi concedida. - Não recebeu IP: quase sempre é falta de autorização. Marque a caixa Auth no painel.
- Só aparece
RELAYemzerotier-cli peers: a conexão direta P2P não fechou. Libere UDP 9993 de saída, evite redes muito restritivas, ou configure um moon. Mesmo em RELAY o acesso funciona. pingnão responde mas o IP existe: verifique o firewall (liberezt+) e confirme que ambos estão autorizados e online.- Conflito de faixa IP: se a faixa da rede ZeroTier for igual à da sua LAN doméstica, há colisão de rotas. Troque a faixa gerenciada no painel (ex.: use
10.147.20.0/24).
Próximo passo: sincronizar arquivos com o Syncthing
Com todos os dispositivos na mesma rede virtual e se enxergando por IP fixo, você tem a base perfeita para o segundo objetivo: manter os arquivos sincronizados entre desktop, celular, tablet e notebook automaticamente.
O Syncthing faz exatamente isso, de forma descentralizada e privada, e fica ainda mais confiável rodando sobre os IPs estáveis do ZeroTier. No próximo artigo eu mostro como instalar e configurar o Syncthing nesse cenário — com o desktop como ponto central que envia para os outros aparelhos, mas de forma bidirecional: editou um arquivo no celular, no tablet ou no notebook, ele volta para o desktop e se propaga para todos.
👉 Continue lendo: Syncthing — sincronizando arquivos entre todos os seus dispositivos
Conclusão
O ZeroTier transforma um punhado de aparelhos espalhados — desktop em casa, notebook na rua, celular no 5G — numa única rede local virtual, criptografada e estável. Sem abrir portas no roteador, sem IP fixo, sem expor nada à internet pública. A partir dela, o SSH funciona de qualquer lugar e ferramentas como o Syncthing ganham um chão sólido para operar.
Instale uma vez, autorize seus aparelhos, fixe os IPs — e tenha o seu homelab no bolso, onde você estiver.