ARQUITETURA VPN MESH TAILSCALE Laptop 100.64.0.1 WireGuard Conectado Servidor Linux 100.64.0.2 Roteador de Sub-rede Conectado Telefone 100.64.0.3 WireGuard Conectado Coordenacao Tailscale Apenas Troca de Chaves Tuneis WireGuard diretos peer-to-peer — sem relay central de trafego

Configurar uma VPN segura tradicionalmente exigiu conhecimento profundo de redes, redirecionamento de portas, gerenciamento de chaves e manutencao constante. O Tailscale muda isso completamente. Construido sobre o WireGuard, o Tailscale cria uma VPN mesh — chamada tailnet — onde cada dispositivo se conecta diretamente a todos os outros atraves de tuneis criptografados peer-to-peer. Nao ha gargalo em um servidor central, nao ha portas para abrir e nao ha certificados para gerenciar. Voce instala o cliente, se autentica e seus dispositivos podem se comunicar com seguranca independentemente de estarem atras de NAT, firewalls ou em continentes diferentes.

Este guia cobre tudo, desde a instalacao no Linux, Windows e macOS ate recursos avancados como roteamento de sub-redes, nos de saida, Listas de Controle de Acesso (ACLs) e MagicDNS.

O Que e o Tailscale?

O Tailscale e uma VPN mesh de configuracao zero que utiliza o WireGuard internamente. Em vez de configurar um servidor VPN central por onde todo o trafego flui, o Tailscale estabelece tuneis WireGuard diretos e criptografados entre seus dispositivos. O servidor de coordenacao do Tailscale so lida com troca de chaves e autenticacao de dispositivos — ele nunca ve seu trafego real.

Caracteristicas principais do Tailscale:

  • Topologia mesh: Cada dispositivo se conecta diretamente a todos os outros. O trafego entre seu laptop e seu servidor nao passa por um ponto central.
  • Baseado em WireGuard: Usa o protocolo WireGuard para criptografia, fornecendo criptografia moderna (ChaCha20, Curve25519) com overhead minimo.
  • Travessia de NAT: O Tailscale atravessa firewalls e NAT automaticamente usando STUN, servidores relay DERP e outras tecnicas. Nenhum redirecionamento de portas necessario.
  • Baseado em identidade: A autenticacao e vinculada ao seu provedor de identidade existente (Google, Microsoft, GitHub), nao a certificados ou chaves pre-compartilhadas gerenciadas manualmente.
  • Enderecos 100.x.y.z: Cada dispositivo recebe um IP estavel do Tailscale no intervalo 100.64.0.0/10 (espaco CGNAT) que nao muda independentemente de em qual rede fisica o dispositivo esta.

Tailscale vs VPNs Tradicionais

Entender como o Tailscale difere das configuracoes VPN tradicionais ajuda voce a apreciar quando e por que usa-lo:

CaracteristicaTailscaleVPN Tradicional (OpenVPN/IPsec)WireGuard Manual
TopologiaMesh (peer-to-peer)Hub-and-spoke (servidor central)Ponto a ponto ou hub
ConfiguracaoZero-configConfiguracao complexa servidor + clienteTroca manual de chaves
Travessia de NATAutomaticaRequer redirecionamento de portasRequer redirecionamento de portas
Gerenciamento de chavesAutomatico via servidor de coordenacaoPKI manual ou chaves pre-compartilhadasPares de chaves manuais
IdentidadeSSO (Google, Microsoft, GitHub)Certificados ou credenciaisChaves pre-compartilhadas
DesempenhoPeer-to-peer direto, baixa latenciaTodo trafego pelo servidor centralDireto, mas configuracao manual
EscalabilidadeAdicionar dispositivo em segundosReconfigurar servidor para cada clienteEditar configs em todos os peers
Suporte movelApps nativos (iOS, Android)Clientes de terceirosClientes de terceiros

Quando escolher o Tailscale: Quando voce quer uma VPN que conecte todos os seus dispositivos com esforco minimo, especialmente atraves de diferentes redes e ambientes NAT. E ideal para acesso remoto a laboratorios domesticos, conectar equipes distribuidas ou criar uma rede privada overlay entre instancias na nuvem.

Quando manter o WireGuard manual: Quando voce precisa de controle total sobre cada aspecto da VPN, opera em um ambiente air-gapped, ou tem requisitos de conformidade que proibem o uso de um servico de coordenacao de terceiros.

Pre-requisitos

Antes de comecar, certifique-se de ter:

  • Uma conta Tailscale (nivel gratuito disponivel em tailscale.com)
  • Pelo menos dois dispositivos que voce deseja conectar (Linux, Windows, macOS, iOS ou Android)
  • Acesso root ou sudo em servidores Linux
  • Acesso de administrador no Windows (para instalacao)
  • Familiaridade basica com a linha de comando

Instalando o Tailscale no Linux

O Tailscale fornece pacotes oficiais para todas as principais distribuicoes Linux. O metodo recomendado usa o script de instalacao oficial.

Ubuntu / Debian

# Adicionar a chave de assinatura e repositorio do Tailscale
curl -fsSL https://tailscale.com/install.sh | sh

Se voce preferir adicionar o repositorio manualmente:

# Adicionar a chave GPG do Tailscale
curl -fsSL https://pkgs.tailscale.com/stable/ubuntu/jammy.noarmor.gpg | sudo tee /usr/share/keyrings/tailscale-archive-keyring.gpg >/dev/null

# Adicionar o repositorio do Tailscale
curl -fsSL https://pkgs.tailscale.com/stable/ubuntu/jammy.tailscale-keyring.list | sudo tee /etc/apt/sources.list.d/tailscale.list

# Instalar o Tailscale
sudo apt update
sudo apt install -y tailscale

Fedora / RHEL / CentOS

# Adicionar o repositorio do Tailscale
sudo dnf config-manager --add-repo https://pkgs.tailscale.com/stable/fedora/tailscale.repo

# Instalar o Tailscale
sudo dnf install -y tailscale

# Habilitar e iniciar o daemon
sudo systemctl enable --now tailscaled

Arch Linux

sudo pacman -S tailscale
sudo systemctl enable --now tailscaled

Verificar a Instalacao

Apos instalar em qualquer distribuicao, verifique se o daemon do Tailscale esta em execucao:

# Verificar o status do servico tailscaled
sudo systemctl status tailscaled

# Verificar se o CLI do Tailscale esta disponivel
tailscale version

Voce deve ver uma saida semelhante a:

1.62.0
  tailscale commit: abcdef1234567890
  other commit: abcdef1234567890
  go version: go1.22.0

Instalacao no Windows e macOS

Windows

  1. Baixe o instalador em tailscale.com/download/windows
  2. Execute o instalador .msi
  3. O Tailscale aparece na bandeja do sistema apos a instalacao
  4. Clique no icone do Tailscale e selecione Fazer login
  5. Autentique-se com seu provedor de identidade no navegador

Alternativamente, instale pela linha de comando com winget:

winget install Tailscale.Tailscale

macOS

Instale pela Mac App Store ou usando Homebrew:

# Instalar via Homebrew
brew install --cask tailscale

Ou baixe diretamente de tailscale.com/download/mac. Apos a instalacao, abra o Tailscale na pasta Aplicativos e ele aparecera na barra de menus.

Docker

Para ambientes containerizados, o Tailscale fornece uma imagem Docker oficial:

docker run -d \
  --name=tailscale \
  --hostname=my-container \
  --cap-add=NET_ADMIN \
  --cap-add=NET_RAW \
  -v /dev/net/tun:/dev/net/tun \
  -v tailscale-state:/var/lib/tailscale \
  -e TS_AUTHKEY=tskey-auth-xxxxxxxxxxxx \
  -e TS_STATE_DIR=/var/lib/tailscale \
  tailscale/tailscale:latest

Dica: Use uma chave de autenticacao pre-autorizada (TS_AUTHKEY) para evitar a etapa de login manual em ambientes headless. Gere chaves de autenticacao no console de administracao do Tailscale em Configuracoes > Chaves.

Conectando Dispositivos a Sua Tailnet

Uma vez que o Tailscale esta instalado, conecte cada dispositivo a sua tailnet:

Autenticar Seu Primeiro Dispositivo

# Iniciar o Tailscale e autenticar
sudo tailscale up

Este comando imprime uma URL. Abra-a no seu navegador, faca login com seu provedor de identidade e autorize o dispositivo. Apos a autenticacao, o dispositivo entra na sua tailnet e recebe um endereco IP do Tailscale.

Verificar o Status da Sua Conexao

# Ver seu IP do Tailscale e status da conexao
tailscale status

Exemplo de saida:

100.64.0.1   laptop           user@example.com  linux   -
100.64.0.2   server           user@example.com  linux   -
100.64.0.3   phone            user@example.com  iOS     -

Testar a Conectividade

Uma vez que dois ou mais dispositivos estao conectados, teste a conectividade:

# Fazer ping em outro dispositivo pelo seu IP do Tailscale
tailscale ping 100.64.0.2

# Ou pelo seu nome MagicDNS
tailscale ping server

O primeiro tailscale ping pode mostrar trafego roteado atraves de um relay DERP. Pings subsequentes tipicamente estabelecem uma conexao direta peer-to-peer:

pong from server (100.64.0.2) via DERP(nyc) in 45ms
pong from server (100.64.0.2) via 203.0.113.50:41641 in 12ms
pong from server (100.64.0.2) via 203.0.113.50:41641 in 11ms

Nota: O relay DERP e usado apenas quando uma conexao direta nao pode ser estabelecida (raro). DERP significa Designated Encrypted Relay for Packets, e e um fallback, nao o caminho padrao.

Roteamento de Sub-redes

O roteamento de sub-redes permite que um no Tailscale atue como gateway, dando a outros nos na sua tailnet acesso a dispositivos em uma rede local que nao tem o Tailscale instalado.

Por Que Usar Roteamento de Sub-redes?

  • Acessar impressoras, dispositivos NAS, dispositivos IoT ou outros equipamentos que nao podem executar o Tailscale
  • Alcancar toda uma LAN de escritorio ou casa a partir de qualquer dispositivo na sua tailnet
  • Evitar instalar o Tailscale em cada dispositivo individual de uma rede

Habilitar o Roteamento de Sub-redes

Na maquina Linux que servira como roteador de sub-rede:

# Habilitar o encaminhamento de IP (necessario para roteamento)
echo 'net.ipv4.ip_forward = 1' | sudo tee -a /etc/sysctl.d/99-tailscale.conf
echo 'net.ipv6.conf.all.forwarding = 1' | sudo tee -a /etc/sysctl.d/99-tailscale.conf
sudo sysctl -p /etc/sysctl.d/99-tailscale.conf

# Anunciar a sub-rede local
sudo tailscale up --advertise-routes=192.168.1.0/24

Se voce tem multiplas sub-redes:

sudo tailscale up --advertise-routes=192.168.1.0/24,10.0.0.0/24

Aprovar a Rota no Console de Administracao

Rotas de sub-rede nao ficam ativas ate que um administrador as aprove:

  1. Va ao console de administracao do Tailscale
  2. Encontre a maquina roteadora de sub-rede
  3. Clique no menu de tres pontos e selecione Editar configuracoes de rota
  4. Habilite as rotas anunciadas

Verificar o Acesso a Sub-rede

De qualquer outro dispositivo na sua tailnet:

# Fazer ping em um dispositivo na LAN remota (ex. um NAS em 192.168.1.100)
ping 192.168.1.100

# SSH para um dispositivo na LAN remota
ssh admin@192.168.1.50

Nos de Saida

Um no de saida roteia todo o trafego de internet de um dispositivo atraves de outro dispositivo na sua tailnet. Isso e util para:

  • Rotear trafego atraves de um dispositivo em uma localizacao geografica especifica
  • Usar a conexao de internet de uma rede confiavel quando voce esta em Wi-Fi nao confiavel
  • Acessar conteudo com restricao geografica a partir do IP da sua casa

Configurar um No de Saida

No dispositivo que servira como no de saida:

# Anunciar este dispositivo como no de saida
sudo tailscale up --advertise-exit-node

Aprove o no de saida no console de administracao do Tailscale, assim como as rotas de sub-rede.

Usar um No de Saida

No dispositivo que deve rotear o trafego atraves do no de saida:

# Rotear todo o trafego atraves de um no de saida especifico
sudo tailscale up --exit-node=server

# Ou usar o IP do Tailscale
sudo tailscale up --exit-node=100.64.0.2

Para parar de usar o no de saida:

sudo tailscale up --exit-node=

Verificar Que o No de Saida Esta Funcionando

# Verificar seu IP publico -- deve corresponder ao IP publico do no de saida
curl -s https://ifconfig.me

# Verificar o status do Tailscale para info do no de saida
tailscale status

Importante: Quando voce usa um no de saida, todas as consultas DNS tambem sao roteadas atraves desse no por padrao. Isso evita vazamentos de DNS, mas significa que a velocidade de resolucao DNS depende da configuracao DNS do no de saida.

Listas de Controle de Acesso (ACLs)

As ACLs do Tailscale definem quais dispositivos e usuarios podem se comunicar entre si. Por padrao, todos os dispositivos em uma tailnet podem alcancar todos os outros. As ACLs permitem que voce restrinja isso.

Entendendo a Sintaxe de ACL

As ACLs sao definidas no console de administracao do Tailscale em Controles de Acesso. O arquivo de politicas usa uma sintaxe semelhante a JSON chamada HuJSON (Human JSON) que suporta comentarios:

{
  // Permitir a todos os usuarios acesso completo (politica padrao)
  "acls": [
    {
      "action": "accept",
      "src": ["*"],
      "dst": ["*:*"]
    }
  ]
}

Exemplo de ACL Restritiva

Uma politica mais pratica que segmenta o acesso por funcao:

{
  "groups": {
    "group:admin": ["user@example.com"],
    "group:developers": ["dev1@example.com", "dev2@example.com"]
  },
  "tagOwners": {
    "tag:server": ["group:admin"],
    "tag:database": ["group:admin"]
  },
  "acls": [
    // Administradores podem acessar tudo
    {
      "action": "accept",
      "src": ["group:admin"],
      "dst": ["*:*"]
    },
    // Desenvolvedores podem acessar servidores em portas especificas
    {
      "action": "accept",
      "src": ["group:developers"],
      "dst": ["tag:server:80,443,22"]
    },
    // Apenas administradores podem acessar bancos de dados
    {
      "action": "accept",
      "src": ["group:admin"],
      "dst": ["tag:database:5432,3306"]
    },
    // Todos os usuarios podem fazer ping em todos os dispositivos
    {
      "action": "accept",
      "src": ["*"],
      "dst": ["*:*"],
      "proto": "icmp"
    }
  ]
}

Aplicar Tags aos Dispositivos

Tags sao aplicadas ao iniciar um dispositivo:

# Marcar um dispositivo como servidor
sudo tailscale up --advertise-tags=tag:server

# Marcar um dispositivo com multiplas tags
sudo tailscale up --advertise-tags=tag:server,tag:database

Nota: Dispositivos com tags sao de propriedade da tag, nao de um usuario. Isso significa que nao podem ser usados para logins interativos e sao ideais para nos de infraestrutura.

MagicDNS e DNS Personalizado

O MagicDNS atribui automaticamente nomes DNS aos seus dispositivos Tailscale, para que voce possa se referir a eles pelo nome em vez do endereco IP.

Habilitar o MagicDNS

O MagicDNS e habilitado por padrao em tailnets novos. Se nao estiver habilitado:

  1. Va ao console de administracao do Tailscale
  2. Navegue ate DNS
  3. Habilite o MagicDNS

Com o MagicDNS habilitado, voce pode usar nomes de dispositivos diretamente:

# Em vez de:
ssh user@100.64.0.2

# Voce pode usar:
ssh user@server

# Ou o nome totalmente qualificado:
ssh user@server.tailnet-name.ts.net

Adicionar Servidores DNS Personalizados

Voce pode configurar DNS global ou dividido no console de administracao:

# Servidores de nomes globais (usados para todas as consultas DNS)
# Configure no console de admin em DNS > Servidores de nomes

# DNS dividido (rotear dominios especificos para servidores DNS especificos)
# Exemplo: Rotear *.corp.example.com para seu DNS corporativo
# Configure no console de admin em DNS > Servidores de nomes > Adicionar DNS Dividido

O DNS dividido e especialmente util quando combinado com roteamento de sub-redes. Por exemplo, se voce anuncia uma rota para sua LAN do escritorio, tambem pode configurar DNS dividido para que consultas *.office.local sejam resolvidas atraves do servidor DNS do escritorio.

Substituir DNS Local

Para forcar todas as consultas DNS atraves dos servidores de nomes configurados do Tailscale:

sudo tailscale up --accept-dns=true

Para desabilitar o MagicDNS em um dispositivo especifico:

sudo tailscale up --accept-dns=false

Compartilhando Nos com Outros Usuarios

O Tailscale permite que voce compartilhe dispositivos especificos com usuarios fora da sua tailnet. Isso e util para dar a um contratado acesso a um servidor especifico sem adiciona-lo a toda a sua rede.

Compartilhar um No

  1. Va ao console de administracao do Tailscale
  2. Encontre a maquina que voce deseja compartilhar
  3. Clique no menu de tres pontos e selecione Compartilhar
  4. Insira o endereco de e-mail do usuario externo

O no compartilhado aparece na tailnet do usuario externo, mas ele so pode acessar esse dispositivo especifico — nao toda a sua rede.

Acesso do Usuario Externo

O usuario externo deve:

  1. Ter uma conta Tailscale
  2. Aceitar o convite de compartilhamento
  3. O dispositivo compartilhado aparece na saida de tailscale status
# O usuario externo ve o dispositivo compartilhado
tailscale status
# 100.64.0.50   shared-server    shared by user@example.com  linux

Dica: Combine o compartilhamento de nos com ACLs para restringir quais portas o usuario externo pode acessar no dispositivo compartilhado. Por exemplo, permita apenas SSH (porta 22) e HTTP (porta 80).

Referencia de Comandos do Tailscale

ComandoDescricao
tailscale upConectar a sua tailnet e autenticar
tailscale downDesconectar da tailnet
tailscale statusMostrar dispositivos conectados e seus IPs
tailscale ping <host>Fazer ping em um dispositivo e mostrar o caminho da conexao
tailscale netcheckExecutar um diagnostico de rede
tailscale ipMostrar seus enderecos IP do Tailscale
tailscale dns statusMostrar configuracao DNS atual
tailscale file send <arquivo> <host>Enviar um arquivo para outro dispositivo usando Taildrop
tailscale file get <diretorio>Receber arquivos enviados via Taildrop
tailscale ssh <usuario>@<host>SSH para um dispositivo usando Tailscale SSH
tailscale cert <dominio>Obter um certificado TLS para um dominio Tailscale
tailscale logoutFazer logout e remover dispositivo da tailnet
tailscale up --advertise-routes=<CIDR>Anunciar rotas de sub-rede
tailscale up --advertise-exit-nodeAnunciar-se como no de saida
tailscale up --exit-node=<host>Usar um no de saida especifico
tailscale up --advertise-tags=<tags>Aplicar tags ACL ao dispositivo
tailscale up --accept-dns=falseDesabilitar MagicDNS neste dispositivo
tailscale bugreportGerar um relatorio de bugs para solucao de problemas

Solucao de Problemas

Dispositivo Nao Aparece no Console de Administracao

# Verificar se o daemon esta em execucao
sudo systemctl status tailscaled

# Verificar erros de autenticacao nos logs
sudo journalctl -u tailscaled --since "10 minutes ago"

# Forcar re-autenticacao
sudo tailscale up --force-reauth

Nao Consegue Alcancar Outros Dispositivos

# Executar um diagnostico de rede
tailscale netcheck

# Verificar se a conexao e direta ou via relay
tailscale ping <nome-dispositivo>

# Verificar se o firewall nao esta bloqueando o Tailscale
sudo iptables -L -n | grep -i tailscale

# Verificar se a porta UDP 41641 e alcancavel (usada para conexoes diretas)
sudo ss -ulnp | grep tailscaled

Conexoes Lentas (Trafego via Relay)

Se tailscale ping mostra trafego passando por um relay DERP em vez de uma conexao direta:

# Executar netcheck para ver tipo de NAT e conectividade
tailscale netcheck

# Exemplo de saida mostrando problemas potenciais:
#   UDP: true
#   IPv4: yes, 203.0.113.50:41641
#   MappingVariesByDestAddr: false
#   PortMapping: UPnP
#   Nearest DERP: New York City

Causas comuns de conexoes via relay:

  • NAT simetrico em um ou ambos os lados (MappingVariesByDestAddr: true)
  • Firewall bloqueando UDP na porta 41641
  • Firewalls corporativos fazendo inspecao profunda de pacotes

Solucoes:

# No Linux, certifique-se de que o UDP nao esta bloqueado
sudo ufw allow 41641/udp

# Se estiver atras de um firewall corporativo rigoroso, o Tailscale usara o relay DERP
# DERP e criptografado e funcional, apenas um pouco mais lento

Rotas de Sub-rede Nao Funcionam

# Verificar se o encaminhamento de IP esta habilitado
sysctl net.ipv4.ip_forward
# Deve retornar: net.ipv4.ip_forward = 1

# Verificar se as rotas estao anunciadas
tailscale status --json | grep -A5 "AllowedIPs"

# Verificar se as rotas estao aprovadas no console de administracao
# Rotas nao aprovadas nao funcionarao

MagicDNS Nao Resolve

# Verificar status do DNS
tailscale dns status

# Verificar se o resolv.conf esta gerenciado pelo Tailscale
cat /etc/resolv.conf

# Se usar systemd-resolved, verificar sua configuracao
resolvectl status

# Forcar atualizacao de DNS
sudo tailscale down && sudo tailscale up

Resumo

O Tailscale transforma a complexidade da configuracao VPN em uma experiencia de configuracao quase zero. Ao construir sobre as bases criptograficas do WireGuard e adicionar travessia automatica de NAT, autenticacao baseada em identidade e uma topologia mesh, o Tailscale permite que voce conecte todos os seus dispositivos com seguranca em minutos em vez de horas.

Pontos-chave deste guia:

  • A instalacao e trivial: Um comando para instalar, um comando para conectar
  • A rede mesh elimina gargalos: Dispositivos se comunicam diretamente sem um servidor central
  • O roteamento de sub-redes estende o alcance: Acesse dispositivos que nao podem executar o Tailscale atraves de um roteador de sub-rede
  • Nos de saida fornecem roteamento flexivel de trafego: Roteie todo o trafego atraves de qualquer dispositivo na sua tailnet
  • ACLs aplicam acesso de menor privilegio: Controle quem pode acessar o que em um nivel granular
  • MagicDNS simplifica o enderecamento: Use nomes de dispositivos em vez de enderecos IP

Para guias relacionados de seguranca e redes, consulte nossos artigos sobre configurar um servidor VPN WireGuard no Ubuntu para configuracao manual do WireGuard, e fortalecimento de SSH para servidores Linux para proteger as conexoes SSH aos seus servidores conectados com Tailscale.