Guias relacionados
Tailscale a fundo: como os aparelhos se conectam direto
Atualizado
Dá para resumir o que o Tailscale faz numa frase: cada aparelho seu recebe um endereço interno fixo, e os aparelhos criam túneis criptografados WireGuard diretamente entre si, sem passar por um servidor central que repasse tudo. Ele divide o sistema em duas metades: o plano de controle só identifica quem é quem, distribui as chaves e conta a cada aparelho “onde os outros estão agora”; o plano de dados são as conexões criptografadas ponto a ponto entre os aparelhos, e o seu tráfego não passa pelo servidor de controle. A parte difícil é que os aparelhos de casa e do trabalho ficam atrás de roteadores, sem endereço público; o Tailscale os liga direto com NAT traversal e, quando não consegue de jeito nenhum, recorre a um relay. É nessa ordem que vamos explicar.
VPN tradicional x Tailscale: estrela e malha
A VPN tradicional tem formato de estrela: todos os aparelhos se conectam a um servidor VPN e, para um aparelho falar com outro, o tráfego vai até o servidor e volta. O servidor é gargalo e ponto único de falha: se ele fica lento, todo mundo fica lento; se cai, todo mundo cai.
O Tailscale tem formato de malha (mesh): cada par de aparelhos tem seu próprio túnel direto. Quando o celular acessa o NAS de casa, o tráfego vai do celular direto para o NAS, pelo caminho mais curto entre os dois. Nenhuma máquina carrega todo o tráfego.
O preço da malha é a complexidade de gerenciar: dez aparelhos ligados dois a dois são quarenta e cinco túneis, e cada um precisa trocar chaves e saber o endereço atual do outro lado. Manter isso à mão é inviável; todo o trabalho do Tailscale é automatizar isso.
Plano de controle: só distribui chaves e a agenda de endereços, não toca no tráfego
Ao instalar o Tailscale, cada aparelho gera o próprio par de chaves; a chave privada nunca sai do aparelho, e a chave pública vai para o servidor de controle (que o Tailscale chama de coordination server). Quando você entra na sua conta, o servidor de controle fica sabendo “a quem pertence este aparelho”.
O servidor de controle tem uma tabela: a chave pública de cada aparelho, o endereço interno atribuído, o endereço de rede pelo qual ele pode ser encontrado no momento e as regras de acesso dizendo quem pode falar com quem. Ele envia ao seu aparelho só as linhas que você tem permissão de acessar; quando algum aparelho entra, sai ou troca de rede, a tabela é atualizada e enviada aos aparelhos envolvidos.
O servidor de controle não repassa o seu tráfego e não tem as chaves privadas, então não consegue decifrar a comunicação entre os aparelhos. É como uma recepção que só entrega a lista de contatos e o crachá: diz onde o outro está e se você pode entrar, mas não está presente na conversa lá dentro.
O login usa um sistema de contas que você já tem (login único), e não uma senha de VPN à parte; as chaves dos aparelhos expiram periodicamente e pedem um novo login, e um aparelho perdido perde o acesso assim que é removido no painel.
Plano de dados: túneis WireGuard entre os aparelhos
Quem transporta os dados de fato é o WireGuard. Com a chave pública do outro aparelho em mãos, cada aparelho cria com ele um túnel criptografado; as duas pontas só reconhecem a chave pública uma da outra, e ninguém no meio consegue ler nem alterar nada.
O Tailscale não mexeu na parte criptográfica do WireGuard; ele faz o que o WireGuard em si não faz: como distribuir as chaves, como atribuir os endereços e como os aparelhos se reencontram quando trocam de rede. O funcionamento do WireGuard está em WireGuard a fundo.
Cada aparelho tem nessa rede um endereço interno fixo (na faixa que começa com 100), que não muda esteja ele na banda larga de casa, na rede do trabalho ou nos dados móveis. Por isso você acessa o NAS de casa sempre pelo mesmo endereço. Com o MagicDNS, dá até para usar o nome do aparelho.
NAT traversal: os dois atrás de roteadores, como conectar direto
O computador de casa não tem endereço público; para sair, ele passa pela tradução de endereços (NAT) do roteador. O roteador só deixa passar conexões “iniciadas de dentro” e barra qualquer uma que venha de fora bater na porta. Com os dois aparelhos atrás dos seus roteadores, nenhum consegue abrir a porta do outro primeiro, e essa é a dificuldade da conexão ponto a ponto.
O Tailscale resolve em três passos. Primeiro, cada aparelho pergunta a um servidor público “de que endereço e porta você me vê saindo”, e assim descobre como aparece do lado de fora do roteador (esse tipo de serviço se chama STUN). Segundo, os dois aparelhos trocam esse endereço externo pelo servidor de controle. Terceiro, os dois mandam pacotes ao mesmo tempo para o endereço externo do outro: cada roteador vê que “saiu de dentro primeiro” e abre uma passagem para a volta, e os pacotes do outro lado entram justamente por essa passagem. A conexão está feita. É o famoso hole punching (“furar o NAT”).
O hole punching usa UDP. A maioria dos roteadores domésticos permite; mas algumas redes fazem a tradução de endereços de forma muito rígida (uma porta externa nova para cada destino novo) ou simplesmente bloqueiam o UDP, e aí não dá.
Relay DERP: quem assume quando não dá para conectar direto
O hole punching não tem sucesso garantido, então o Tailscale mantém um conjunto de servidores de relay chamados DERP. Se dois aparelhos não conseguem se conectar, os dois se ligam ao mesmo DERP, que entrega ao outro os pacotes já criptografados. O DERP usa HTTPS (TCP 443), que quase toda rede deixa passar.
O relay repassa pacotes já criptografados pelo WireGuard; o DERP não tem as chaves e só vê “quem manda para quem e quanto”, não o conteúdo.
A conexão sempre começa pelo relay: assim que os dois aparelhos entram, eles já se falam pelo DERP, para funcionar na hora; ao mesmo tempo tentam o hole punching em segundo plano e, se a conexão direta der certo, passam para ela discretamente, sem derrubar a conexão. Por isso é normal a latência ser um pouco maior nos primeiros segundos e depois cair.
Se ficar sempre no relay, a velocidade e a latência dependem da distância e da carga desse relay, e costumam ser piores que a conexão direta. No cliente Tailscale dá para ver se a conexão atual é direta (direct) ou via relay (relay).
Exit node e roteador de sub-rede: não é só aparelho falando com aparelho
- Exit node (nó de saída): depois que você define um aparelho como saída, todo o tráfego de internet dos seus outros aparelhos vai criptografado até ele e sai pela rede dele. O efeito é o mesmo de uma VPN tradicional: para fora aparece o endereço do exit node. Ele pode ser um computador seu em casa ou um servidor do provedor.
- Subnet router (roteador de sub-rede): um aparelho com Tailscale passa a atender a rede local inteira em que está. Impressoras, câmeras e NAS antigos, que não instalam Tailscale, ficam acessíveis por meio dele.
- Controle de acesso (ACL): por padrão, todos os seus aparelhos se acessam entre si; em equipes, dá para escrever regras dizendo quais pessoas e aparelhos acessam quais portas. As regras são enviadas pelo servidor de controle e aplicadas por cada aparelho.
- MagicDNS: dá um nome a cada aparelho, para você não precisar decorar os endereços que começam com 100.
Qual a relação com o WireGuard e com a VPN tradicional
- Com o WireGuard: o WireGuard é o protocolo de um túnel e só cuida de como as duas pontas se comunicam criptografadas; as chaves de cada ponta e o endereço do outro lado você configura à mão. O Tailscale é um sistema completo construído em cima dele, que faz por você login, distribuição de chaves, atribuição de endereços, NAT traversal e relay.
- Com serviços de VPN tradicionais: a VPN tradicional é “todo o tráfego vai para um servidor”, com foco em trocar a saída; o foco do Tailscale é “aparelhos se falando”, e trocar a saída é só um recurso extra (o exit node).
- Com ferramentas de exposição de rede interna (frp, Oray e similares): elas expõem uma porta da rede interna na internet, e qualquer um que saiba o endereço chega até ela; a segurança depende do próprio serviço exposto. O Tailscale não expõe porta nenhuma; só entram os aparelhos em que você fez login.
- Com o ZeroTier: a ideia é parecida, os dois montam a rede automaticamente; o ZeroTier usa um protocolo próprio e simula uma rede de camada 2, o Tailscale usa WireGuard e trabalha na camada 3.
Headscale e servidor de controle próprio
Os clientes do Tailscale são de código aberto; o servidor de controle é um serviço operado pela empresa. O Headscale é um servidor de controle de código aberto escrito pela comunidade, que implementa o mesmo protocolo, e os clientes oficiais podem ser apontados para ele. Assim a lista de aparelhos, o diretório de chaves e as regras de acesso ficam com você.
A opção do cliente “Use custom server / Use an alternate server” (usar outro servidor de controle) existe para isso: você informa um endereço, e o cliente deixa de se conectar aos servidores da empresa Tailscale e passa a usar o que você indicou.
Com servidor próprio, como é o login, quantos aparelhos cabem e quais exit nodes existem passa a ser decisão de quem opera esse servidor de controle, sem relação com a cota grátis ou os planos pagos oficiais do Tailscale.
O que saber ao usar na rede da China
- O hole punching depende de UDP. Muitas bandas largas na China limitam o UDP, e as grandes redes internas das operadoras (várias camadas de NAT) também dificultam a conexão direta, então a chance de cair no relay é maior que fora da China.
- No relay, a velocidade depende de onde ele fica. Relay distante significa latência alta; essa é a principal razão de a experiência com Tailscale variar tanto na China.
- O formato dos pacotes do WireGuard é fixo, sem disfarce, e em redes com inspeção rigorosa pode ser identificado e limitado. É uma ferramenta de rede entre aparelhos, não algo feito para furar bloqueios.
- Deixar ligado no celular não tem problema: sem tráfego, o túnel quase não gasta bateria, e a conexão se recupera sozinha ao trocar entre Wi‑Fi e dados móveis.
Como a Rede privada do LeoTun usa o Tailscale
A seção Rede privada do LeoTun usa o cliente oficial do Tailscale, ligado a um servidor de controle operado por nós: você entra uma vez com a conta do site e o aparelho fica sempre on-line; oferecemos exit nodes em várias regiões, e trocar de saída é só escolher a região no menu Exit Node do cliente, sem reimportar configuração; celular, computador e NAS da mesma conta se acessam diretamente.
Como o login é no servidor de controle do site, o número de aparelhos segue o plano da sua conta aqui, sem relação com contas ou cotas oficiais do Tailscale; se o aparelho já entrou numa conta oficial do Tailscale, saia dela antes de entrar com a do site. O passo a passo com imagens de instalação e login está em O que é a Rede privada (Tailscale), e o acesso fica na página da Rede privada.
Quando a sua rede limita UDP e a Rede privada fica lenta e instável, a mesma conta pode usar outras formas de conexão; veja Qual forma de conexão combina com cada situação.
FAQ
Os servidores do Tailscale conseguem ver o meu tráfego?
O conteúdo, não. O servidor de controle guarda só as chaves públicas, a lista de aparelhos e as regras de acesso, e as chaves privadas não saem dos aparelhos; os relays repassam pacotes já criptografados, sem as chaves. O que eles veem são metadados: qual aparelho está on-line e com quem ele se conectou.
Qual a relação entre Tailscale e WireGuard?
O WireGuard é o protocolo de túnel criptografado por baixo; o Tailscale acrescenta login de conta, distribuição de chaves, atribuição de endereços, NAT traversal e relay. Pense no WireGuard como o motor e no Tailscale como o carro completo, com o motor instalado, pronto para dirigir.
Por que às vezes aparece relay em vez de conexão direta?
Quer dizer que o hole punching entre os dois aparelhos não deu certo; a causa comum é a rede de um dos lados bloquear UDP ou fazer uma tradução de endereços rígida demais. Pelo relay continua funcionando, só que a velocidade depende de onde ele fica. Trocar de rede (por exemplo, o hotspot do celular) muitas vezes já permite a conexão direta.
O que é DERP?
É o servidor de relay do Tailscale. Quando dois aparelhos não conseguem se conectar direto, ele repassa os pacotes criptografados; quando um aparelho acaba de entrar, o primeiro contato também passa por ele. Ele usa HTTPS, então funciona até em redes que só deixam passar tráfego web.
Qual a diferença entre um exit node e uma VPN comum?
O efeito é o mesmo: todo o tráfego de internet sai por outro lugar. A diferença é que o exit node é só um aparelho da rede, que você troca por outro ou desliga a qualquer momento no menu, sem reconfigurar nada e sem afetar o acesso entre os aparelhos.
O que é o Headscale?
Uma implementação de código aberto do servidor de controle do Tailscale. Apontando o cliente oficial para ele, você tem um sistema de rede sob seu controle; o plano de dados continua sendo WireGuard e o cliente continua sendo o oficial.
O Tailscale serve para furar o bloqueio da internet na China?
Ele é uma ferramenta de rede entre aparelhos: o tráfego só sai do exterior se houver na sua rede um aparelho fora da China definido como exit node. O tráfego dele não tem disfarce e pode não funcionar bem em redes que limitam UDP. Para uma linha estável entre países, veja as outras formas em Qual forma de conexão combina com cada situação.