Como usar seu VPS como nó de saída do Tailscale
Configure seu VPS como exit node do Tailscale: instale, anuncie, ative o encaminhamento IP, aprove a rota no console e corrija DNS e IPv6.
O que um nó de saída do Tailscale faz
Um nó de saída do Tailscale é uma máquina na sua tailnet que transporta todo o tráfego da Internet dos seus outros dispositivos. Um VPS (servidor privado virtual) é uma boa opção porque tem um endereço público fixo e permanece online. A configuração exige cinco passos: instalar o Tailscale no servidor, anunciar o nó de saída, ativar o encaminhamento de IP, aprovar a rota no console de administração e selecionar o nó no laptop. O quarto passo é uma opção numa página web, não um comando. É nessa etapa que a maioria das pessoas fica bloqueada.
Depois de ativado, o laptop cifra cada pacote e envia-o para o VPS. O VPS aplica NAT de origem (tradução de endereços de rede) e envia o pacote usando o seu próprio endereço IP público. Os sites veem o VPS. A rede Wi-Fi do café vê um único fluxo UDP cifrado para o VPS e nada mais.
O Tailscale usa WireGuard no caminho de dados e um servidor de coordenação que distribui chaves e ajuda duas máquinas a encontrar-se através de NAT. Esse servidor de coordenação elimina a necessidade de copiar chaves em qualquer uma das etapas abaixo. Para consultar os compromissos técnicos em detalhe, leia como o Tailscale e o WireGuard simples se comparam. Se preferir controlar todas as partes do túnel, configure uma VPN WireGuard simples no seu VPS.
As etapas abaixo pressupõem que o Tailscale já está em execução no seu laptop e que ambas as máquinas iniciam sessão na mesma tailnet. Uma tailnet é a sua rede privada do Tailscale, e cada dispositivo nela recebe um endereço estável dentro de 100.64.0.0/10.
Instalar o Tailscale no seu VPS
curl -fsSL https://tailscale.com/install.sh | sh
sudo tailscale upO script de instalação seleciona o repositório de pacotes da sua distribuição e instala o daemon tailscaled. Em seguida, tailscale up mostra um URL de autenticação. Abra-o num navegador e inicie sessão com a mesma conta usada pelo seu portátil, porque um VPS associado a uma tailnet diferente não consegue servir o seu portátil.
tailscale status
tailscale ip -4tailscale status deve agora listar as duas máquinas. tailscale ip -4 mostra o endereço da tailnet do VPS. É esse endereço que será fornecido ao cliente mais adiante.
O Tailscale precisa de um dispositivo TUN para criar o túnel. Num VPS KVM, o dispositivo está disponível. Em planos baseados em virtualização por contentores que partilham o kernel do host, /dev/net/tun por vezes não existe, e tailscaled não consegue criar a interface tailscale0. Execute ls -l /dev/net/tun antes de continuar.
Ative o encaminhamento de IP, ou o VPS descarta todos os pacotes
Uma máquina Linux descarta qualquer pacote que não seja endereçado a si própria, porque net.ipv4.ip_forward é 0 por padrão. O exit node aceitaria o seu tráfego, desencriptá-lo-ia e depois descartá-lo-ia. Grave a configuração num ficheiro para que persista após um reboot.
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.conftee -a acrescenta conteúdo ao ficheiro. Por isso, executar estas linhas uma segunda vez grava ambas as configurações duas vezes. O resultado continua a funcionar, mas cat /etc/sysctl.d/99-tailscale.conf ficará estranho. Confirme o valor ativo em vez de confiar no ficheiro:
sysctl net.ipv4.ip_forwardO comando tem de mostrar net.ipv4.ip_forward = 1. Se ignorar este passo e utilizar tailscale up --advertise-exit-node, o cliente informa:
Warning: IP forwarding is disabled, subnet routing/exit nodes will not work.tailscale set --advertise-exit-node não executa essa verificação. Por isso, o silêncio de set não prova que o encaminhamento esteja ativo. Leia diretamente o valor de sysctl.
Não precisa de escrever manualmente uma regra de masquerade. tailscaled instala as suas próprias cadeias de firewall, denominadas ts-input, ts-forward e ts-postrouting, e a regra NAT para o tráfego do exit node fica em ts-postrouting. Consulte-as com sudo iptables-save | grep ts- ou, num sistema com nftables, com sudo nft list ruleset.
Anuncie o VPS como nó de saída
sudo tailscale set --advertise-exit-nodetailscale set altera uma preferência e mantém as restantes inalteradas. tailscale up --advertise-exit-node também anuncia o nó, mas tem um efeito secundário: up trata as flags da linha de comandos como o conjunto completo das definições não predefinidas. Por isso, uma execução posterior de sudo tailscale up sem argumentos falha e apresenta
changing settings via 'tailscale up' requires mentioning all
non-default flags. To proceed, either re-run your command with --reset or
use the command below to explicitly mention the current value of
all non-default settings:Use set para alterações posteriores e essa mensagem não voltará a aparecer.
Anunciar é apenas uma oferta. O VPS informa agora o servidor de coordenação de que está disponível para funcionar como nó de saída. Nenhum cliente pode utilizá-lo ainda.
Aprovar o exit node do Tailscale no console de administração
Esta é a etapa que não tem um comando associado. Abra a página Machines no console de administração, localize o VPS, abra o menu de três pontos no fim da respetiva linha, escolha Edit route settings e ative Use as exit node.
Enquanto essa opção não estiver ativa, o plano de controlo mantém a oferta e não a atribui a nenhum dispositivo. tailscale exit-node list no portátil não mostra nada, e o tráfego continua a usar a rota normal. Não aparece nenhuma mensagem de erro em nenhuma das máquinas. O exit node simplesmente nunca aparece.
Pode aprovar exit nodes automaticamente com uma entrada no ficheiro de política do tailnet:
"autoApprovers": {
"exitNode": ["tag:exit"],
}Um dispositivo iniciado com --advertise-tags=tag:exit é aprovado automaticamente, desde que tag:exit esteja definido em tagOwners no mesmo ficheiro de política. A atribuição de tags altera a propriedade: um dispositivo com tag pertence ao tailnet, e não à sua conta de utilizador, e as regras de acesso aplicáveis também mudam. Para um único VPS, a opção no console é mais simples.
Selecione o nó de saída no seu laptop
Num cliente Linux:
tailscale exit-node list
sudo tailscale set --exit-node=vps.your-tailnet.ts.netexit-node list mostra os nós de saída aprovados na sua tailnet e os respetivos endereços. Uma lista vazia significa que a etapa de aprovação não foi concluída. No macOS, Windows, iOS e Android, a mesma opção está disponível no menu Exit Node da aplicação Tailscale.
Verifique a partir do cliente, nunca a partir do servidor:
curl -4 https://ifconfig.meExecute o comando uma vez antes de selecionar o nó de saída e outra vez depois. O endereço deve mudar do endereço local para o IP público da VPS. Para deixar de usar o nó de saída:
sudo tailscale set --exit-node=Há mais uma flag importante desde o primeiro dia. Com um nó de saída selecionado, o cliente envia tudo pelo túnel, incluindo os pacotes destinados a 192.168.1.50. Por isso, a impressora e o armazenamento de rede deixam de responder. Mantenha a rede local na rota local:
sudo tailscale set --exit-node=<name> --exit-node-allow-lan-access=truePor que o DNS muda assim que o exit node é ativado
Por padrão, um dispositivo que usa um exit node também usa esse exit node como resolvedor de DNS (domain name system) para todos os domínios. Isso substitui os servidores de nomes DNS global e split DNS configurados para a sua tailnet. Esse comportamento é intencional. Se as consultas continuassem a ser encaminhadas para o resolvedor da rede local, o router do café continuaria a ver o nome de todos os sites que visita, embora o tráfego estivesse privado. Os nomes e os pacotes devem sair do mesmo local.
Uma consequência afeta quem executa um resolvedor interno: um servidor de nomes da tailnet de que depende deixa de ser utilizado enquanto o exit node está ativo. Ative Use with exit node para esse servidor de nomes na página DNS da consola de administração para o voltar a utilizar.
Os nomes MagicDNS continuam a funcionar, porque o cliente Tailscale responde-lhes localmente em 100.100.100.100 antes de qualquer informação chegar ao exit node. Verifique com dig @100.100.100.100 your-vps.your-tailnet.ts.net ou, num cliente systemd-resolved, com resolvectl status, onde a interface Tailscale lista 100.100.100.100 como servidor DNS.
Se desativar o tratamento de DNS do Tailscale com --accept-dns=false, o cliente mantém o resolvedor que aprendeu com a rede local. O tráfego é encapsulado no túnel, mas as consultas não. Esse é o mesmo vazamento de DNS que afeta túneis WireGuard configurados manualmente. Não altere --accept-dns, a menos que tenha uma razão específica para o fazer.
IPv6 através do exit node
Um exit node anuncia ambas as rotas predefinidas, 0.0.0.0/0 e ::/0. Se o VPS não tiver um caminho IPv6 funcional para a Internet, os pacotes IPv6 chegam através do túnel e ficam parados nesse ponto. Teste no VPS antes de confiar nele:
ip -6 addr show
curl -6 https://ifconfig.meUma solicitação falhada significa que o VPS não tem conectividade IPv6 upstream. Os sites com suporte dual stack normalmente continuam a carregar, porque o cliente desiste do IPv6 e tenta novamente através de IPv4. Essa nova tentativa, porém, acrescenta um atraso na primeira ligação a cada site. Os destinos acessíveis apenas por IPv6 continuam inacessíveis.
A outra parte é o encaminhamento. net.ipv4.ip_forward = 1 com net.ipv6.conf.all.forwarding definido como 0 fornece um caminho IPv4 funcional e um black hole para IPv6. Para o leitor, isto parece que "alguns sites estão lentos", e não um erro pesquisável. Ambas as linhas devem ficar no ficheiro sysctl.
O VPS também deve anunciar rotas de sub-rede?
Um exit node transporta todo o tráfego de Internet. Uma rota de sub-rede transporta um intervalo privado que fica atrás da máquina que o anuncia. São funcionalidades separadas, com aprovações separadas, e uma máquina pode fazer ambas.
sudo tailscale set --advertise-routes=10.0.0.0/24Anuncie uma sub-rede quando o VPS partilhar uma rede privada com outros servidores aos quais pretende aceder pelos respetivos endereços privados. Aprove a rota no mesmo painel Edit route settings, através do seu próprio botão de alternância.
Escolha o intervalo com cuidado. Uma rota anunciada é mais específica do que a rota predefinida do portátil. Por isso, anunciar 192.168.1.0/24 a partir do VPS assume o controlo dos endereços de uma rede doméstica que use o mesmo intervalo, e os dispositivos na sua secretária deixam de responder. Use um intervalo escolhido por si, não o intervalo escolhido pelo router doméstico.
Torne o exit node rápido com encaminhamento UDP GRO
O Tailscale 1.54 e versões posteriores, num kernel Linux 6.2 ou posterior, podem usar um receive offload que aumenta o throughput do tráfego encaminhado. O GRO (generic receive offload) agrega os pacotes recebidos antes de o kernel os processar individualmente. Em agosto de 2026, esta configuração ainda tem de ser feita manualmente no exit node.
sudo apt install -y ethtool
NETDEV=$(ip -o route get 8.8.8.8 | cut -f 5 -d " ")
sudo ethtool -K $NETDEV rx-udp-gro-forwarding on rx-gro-list offip -o route get 8.8.8.8 indica a interface que efetivamente alcança a Internet, para nunca ter de escolher entre eth0, ens3 e enp1s0. Confirme com ethtool -k $NETDEV | grep udp-gro-forwarding, que agora deverá apresentar on.
A configuração perde-se após um reboot. Num sistema que utiliza networkd-dispatcher, torne-a automática:
printf '#!/bin/sh\n\nethtool -K %s rx-udp-gro-forwarding on rx-gro-list off \n' "$(ip -o route get 8.8.8.8 | cut -f 5 -d " ")" | sudo tee /etc/networkd-dispatcher/routable.d/50-tailscale
sudo chmod 755 /etc/networkd-dispatcher/routable.d/50-tailscaleVerifique primeiro se /etc/networkd-dispatcher/routable.d/ existe. Se não existir, a máquina não está a executar networkd-dispatcher. Nesse caso, uma pequena unidade systemd que execute a linha ethtool no arranque faz o mesmo trabalho.
O que a política de utilização aceitável do seu provedor significa para o tráfego de saída
Cada pacote enviado por um cliente através do nó de saída deixa a rede com o endereço IP público do VPS e, por isso, fica associado à sua conta. As denúncias de abuso chegam à sua caixa de entrada: notificações de direitos de autor e reclamações sobre varrimentos de portas. Leia a AUP (política de utilização aceitável) do seu provedor antes de encaminhar o tráfego de uma família ou de uma equipa através de um único servidor. Não disponibilize um nó de saída a pessoas pelas quais não possa responder.
A largura de banda é contabilizada duas vezes. O tráfego chega ao VPS através do túnel e depois sai novamente para a Internet. Normalmente, ambas as direções são contabilizadas no limite de transferência do plano. Um vídeo transmitido através de um nó de saída consome mais dados do que a maioria das pessoas espera.
Os intervalos de endereços de datacenter também têm uma reputação associada. Alguns sites mostram mais CAPTCHAs para esses endereços. Alguns serviços de streaming recusam-nos diretamente. Nenhuma alteração na sua configuração muda esse comportamento, porque ele depende do bloco de endereços pertencente ao seu provedor.
Por que o tráfego continua a sair pela sua ligação local
O nó de saída foi anunciado, mas não foi aprovado. tailscale exit-node list no cliente não apresenta nada, e nenhuma das máquinas regista um erro. Aceda à página Machines e ative Use as exit node.
O cliente nunca o selecionou. A aprovação torna o nó disponível para a tailnet. A seleção é uma ação separada em cada dispositivo. Execute novamente sudo tailscale set --exit-node=<name> e verifique curl -4 https://ifconfig.me.
O encaminhamento está desativado. O sintoma é específico: tailscale ping <vps> funciona, o túnel está claramente ativo e todos os endereços externos atingem o tempo limite. sysctl net.ipv4.ip_forward apresenta 0. Corrija o ficheiro sysctl e execute sudo sysctl -p /etc/sysctl.d/99-tailscale.conf.
Uma firewall descarta os pacotes encaminhados. tailscaled cria a sua própria cadeia ts-forward, o que é suficiente numa VPS limpa. Um sistema que já execute ufw ou Docker pode ficar com uma política FORWARD de DROP e regras colocadas antes das regras do Tailscale. Não tente adivinhar qual é o problema: execute sudo iptables -L FORWARD -n -v enquanto o cliente tenta carregar uma página e monitorize quais os contadores que aumentam. Num sistema com ufw, a correção habitual é DEFAULT_FORWARD_POLICY="ACCEPT" em /etc/default/ufw, seguida de sudo ufw reload. Verifique também a firewall de rede do seu fornecedor no painel de controlo, porque é um controlo separado de tudo o que é executado no servidor.
Funciona, mas está lento. Execute tailscale netcheck nas duas máquinas. Se indicar que UDP está bloqueado, os dois dispositivos não conseguem estabelecer um caminho direto e usam um relay DERP, o que acrescenta latência a todas as ligações. Permitir tráfego UDP de entrada na porta 41641 para a VPS na firewall de rede do fornecedor normalmente restabelece o caminho direto.
Quando deixar de usar o servidor de coordenação do Tailscale
Tudo o que foi descrito acima depende do servidor de coordenação alojado do Tailscale para a troca de chaves e para a aprovação que efetuou. O tráfego continua a circular diretamente do portátil para o VPS, e o servidor de coordenação nunca o transporta. No entanto, esse servidor determina quem pode aderir à tailnet e a que dispositivos cada equipamento pode aceder. Se quiser remover essa dependência, execute o Headscale como o seu próprio servidor de controlo do Tailscale e aponte ambos os clientes para ele. Depois, os passos relativos ao exit node são os mesmos. A aprovação da rota é feita através da linha de comandos do Headscale, em vez da consola alojada.
FAQ
Por que o meu tráfego continua a usar a ligação local depois de selecionar o exit node?
Existem duas causas comuns. O exit node foi anunciado, mas nunca foi aprovado: abra a página Machines na consola de administração, localize o VPS, selecione Edit route settings e ative Use as exit node. A aprovação é uma opção na consola; nenhum comando no servidor a executa. A segunda causa é diferente: o encaminhamento IP está desativado, pelo que o túnel é estabelecido, tailscale ping para o VPS funciona, mas todos os endereços externos atingem o tempo limite. Verifique com sysctl net.ipv4.ip_forward, que tem de apresentar 1.
Tenho de aprovar manualmente o exit node todas as vezes?
A opção é uma ação única para cada máquina. Se recriar o VPS frequentemente, adicione um bloco autoApprovers ao ficheiro de política da tailnet que contenha "exitNode": ["tag:exit"], defina tag:exit em tagOwners e inicie o nó com --advertise-tags=tag:exit. Um dispositivo com uma tag pertence à tailnet, e não à sua conta de utilizador, pelo que as regras de acesso aplicadas a esse dispositivo também mudam.
Que servidor DNS o meu portátil utiliza enquanto um exit node está ativo?
O próprio exit node. Um dispositivo que utiliza um exit node envia para este todas as consultas DNS, substituindo os servidores de nomes DNS globais e split DNS definidos para a tailnet. Isto impede que a rede local veja os nomes que consulta. Para manter um servidor de nomes da tailnet em utilização, ative Use with exit node para esse servidor na página DNS da consola de administração. Os nomes MagicDNS continuam a ser resolvidos, porque o cliente Tailscale responde localmente em 100.100.100.100.
Um VPS pode ser simultaneamente um exit node e um router de sub-rede?
Sim. sudo tailscale set --advertise-exit-node e sudo tailscale set --advertise-routes=10.0.0.0/24 são independentes, e cada um tem a sua própria opção de aprovação em Edit route settings. O encaminhamento IP tem de estar ativado no VPS para ambos. Evite anunciar um intervalo que corresponda à rede doméstica do seu portátil, porque a rota anunciada é mais específica do que a rota predefinida e os seus dispositivos locais ficam inacessíveis.
Um exit node oculta o meu tráfego do fornecedor do VPS?
Não. O túnel termina no VPS, pelo que o tráfego sai do servidor no formato esperado pelo destino, e o seu fornecedor transporta-o sem encriptação sempre que o próprio site não está encriptado. Um exit node transfere o ponto onde o seu tráfego entra na Internet da rede onde está ligado para o servidor que aluga. Oculta a sua navegação do Wi-Fi de um café e do ISP de sua casa, mas mostra essa mesma navegação ao fornecedor do VPS com o nome da sua conta associado.