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:
| Caracteristica | Tailscale | VPN Tradicional (OpenVPN/IPsec) | WireGuard Manual |
|---|---|---|---|
| Topologia | Mesh (peer-to-peer) | Hub-and-spoke (servidor central) | Ponto a ponto ou hub |
| Configuracao | Zero-config | Configuracao complexa servidor + cliente | Troca manual de chaves |
| Travessia de NAT | Automatica | Requer redirecionamento de portas | Requer redirecionamento de portas |
| Gerenciamento de chaves | Automatico via servidor de coordenacao | PKI manual ou chaves pre-compartilhadas | Pares de chaves manuais |
| Identidade | SSO (Google, Microsoft, GitHub) | Certificados ou credenciais | Chaves pre-compartilhadas |
| Desempenho | Peer-to-peer direto, baixa latencia | Todo trafego pelo servidor central | Direto, mas configuracao manual |
| Escalabilidade | Adicionar dispositivo em segundos | Reconfigurar servidor para cada cliente | Editar configs em todos os peers |
| Suporte movel | Apps nativos (iOS, Android) | Clientes de terceiros | Clientes 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
- Baixe o instalador em tailscale.com/download/windows
- Execute o instalador
.msi - O Tailscale aparece na bandeja do sistema apos a instalacao
- Clique no icone do Tailscale e selecione Fazer login
- 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:
- Va ao console de administracao do Tailscale
- Encontre a maquina roteadora de sub-rede
- Clique no menu de tres pontos e selecione Editar configuracoes de rota
- 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:
- Va ao console de administracao do Tailscale
- Navegue ate DNS
- 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
- Va ao console de administracao do Tailscale
- Encontre a maquina que voce deseja compartilhar
- Clique no menu de tres pontos e selecione Compartilhar
- 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:
- Ter uma conta Tailscale
- Aceitar o convite de compartilhamento
- 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
| Comando | Descricao |
|---|---|
tailscale up | Conectar a sua tailnet e autenticar |
tailscale down | Desconectar da tailnet |
tailscale status | Mostrar dispositivos conectados e seus IPs |
tailscale ping <host> | Fazer ping em um dispositivo e mostrar o caminho da conexao |
tailscale netcheck | Executar um diagnostico de rede |
tailscale ip | Mostrar seus enderecos IP do Tailscale |
tailscale dns status | Mostrar 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 logout | Fazer logout e remover dispositivo da tailnet |
tailscale up --advertise-routes=<CIDR> | Anunciar rotas de sub-rede |
tailscale up --advertise-exit-node | Anunciar-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=false | Desabilitar MagicDNS neste dispositivo |
tailscale bugreport | Gerar 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.