A sua VPN multi-hop: encadeie dois servidores WireGuard

Dificuldade: Avançado 12 min de leitura Atualizado: 22.07.2026 1
A sua VPN multi-hop: encadeie dois servidores WireGuard
Encaminhe o seu trafego por dois servidores seus encadeando dois VPS WireGuard numa cadeia multi-hop privada - a configuracao de duplo salto mais privada.

Uma VPN multi-hop encaminha o seu trafego atraves de dois servidores em dois paises diferentes, por isso nenhuma maquina sabe ao mesmo tempo quem voce e e o que faz. As VPN comerciais oferecem isto como "Double VPN" ou "Secure Core", mas a versao mais privada e a que voce constroi a partir de dois servidores que so voce controla. Este guia encadeia dois servidores WireGuard - um servidor de entrada ao qual se liga e um servidor de saida por onde o seu trafego sai - para que o seu IP real fique escondido atras de dois saltos que mais ninguem pode registar.

Antes de comecar: este e um guia avancado. Se ainda nao configurou um unico servidor WireGuard, siga primeiro o nosso guia de WireGuard num VPS - aqui assume-se que esse processo lhe e familiar. Precisa de dois VPS, idealmente de fornecedores diferentes em paises diferentes, ambos com um Ubuntu ou Debian novo e acesso root.

Como funciona a cadeia

O seu dispositivo liga-se apenas ao servidor de entrada. O servidor de entrada nao envia o seu trafego diretamente para a internet - em vez disso reencaminha tudo atraves de um segundo tunel WireGuard para o servidor de saida, que depois chega a internet. Portanto o caminho e: voce → entrada → saida → internet. O servidor de entrada ve o seu IP real mas nunca o seu destino; o de saida ve o seu destino mas ve sempre apenas o servidor de entrada. Os sites veem o IP do servidor de saida. Daremos ao servidor de saida o intervalo 10.8.0.0/24 e ao de entrada 10.7.0.0/24 para os seus dispositivos.

Passo 1: Configurar o servidor de saida

O servidor de saida e apenas um servidor WireGuard normal. No VPS de saida, instale o WireGuard e gere as suas chaves:

apt update && apt install -y wireguard
wg genkey | tee /etc/wireguard/exit.key | wg pubkey > /etc/wireguard/exit.pub
cat /etc/wireguard/exit.key   # this is EXIT_PRIVATE_KEY
cat /etc/wireguard/exit.pub   # this is EXIT_PUBLIC_KEY

Encontre a sua interface de rede publica (normalmente eth0) com ip route show default. Depois crie /etc/wireguard/wg0.conf no servidor de saida:

[Interface]
Address = 10.8.0.1/24
ListenPort = 51820
PrivateKey = EXIT_PRIVATE_KEY
PostUp = iptables -A FORWARD -i %i -j ACCEPT; iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
PostDown = iptables -D FORWARD -i %i -j ACCEPT; iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE

[Peer]
# The entry server (we add its key in Step 4)
PublicKey = ENTRY_LINK_PUBLIC_KEY
AllowedIPs = 10.8.0.2/32

Substitua eth0 se a sua interface for diferente. Deixe ENTRY_LINK_PUBLIC_KEY como marcador por agora - geramo-lo no Passo 4.

Passo 2: Ativar o forwarding e arrancar a saida

Ative o reencaminhamento IP de forma permanente e depois arranque o WireGuard no servidor de saida:

echo 'net.ipv4.ip_forward=1' > /etc/sysctl.d/99-wg.conf
sysctl -p /etc/sysctl.d/99-wg.conf
ufw allow 51820/udp
systemctl enable --now wg-quick@wg0

Anote o IP publico do servidor de saida - vamos chama-lo EXIT_IP.

Passo 3: Configurar o servidor de entrada (o seu lado)

No VPS de entrada, instale o WireGuard e gere dois pares de chaves - um para o tunel virado para os seus dispositivos (wg0) e um para a ligacao a saida (wg1):

apt update && apt install -y wireguard
wg genkey | tee /etc/wireguard/entry0.key | wg pubkey > /etc/wireguard/entry0.pub   # faces your devices
wg genkey | tee /etc/wireguard/entry1.key | wg pubkey > /etc/wireguard/entry1.pub   # link to exit

A chave publica em entry1.pub e o ENTRY_LINK_PUBLIC_KEY que deixou como marcador no servidor de saida no Passo 1. Volte e cole-o agora no wg0.conf da saida, depois execute systemctl restart wg-quick@wg0 no servidor de saida.

Passo 4: Criar a ligacao entrada-saida (wg1)

No servidor de entrada, crie /etc/wireguard/wg1.conf. Isto torna o servidor de entrada um cliente do servidor de saida:

[Interface]
Address = 10.8.0.2/24
PrivateKey = ENTRY_LINK_PRIVATE_KEY
# Do NOT route the whole server through the exit - that would cut your own SSH.
# Send only your client subnet (10.7.0.0/24) through the exit, via a separate table.
Table = off
PostUp = ip rule add from 10.7.0.0/24 table 120; ip route add default dev wg1 table 120
PostDown = ip rule del from 10.7.0.0/24 table 120; ip route del default dev wg1 table 120

[Peer]
# The exit server
PublicKey = EXIT_PUBLIC_KEY
Endpoint = EXIT_IP:51820
AllowedIPs = 0.0.0.0/0
PersistentKeepalive = 25

ENTRY_LINK_PRIVATE_KEY e o conteudo de entry1.key. Este e o passo mais importante a acertar. Um simples AllowedIPs = 0.0.0.0/0 faria o WireGuard encaminhar o trafego proprio do servidor de entrada - incluindo a sua sessao SSH - atraves da saida, o que corta o seu acesso ao servidor. Table = off impede isso, e as regras de policy routing enviam apenas a sua sub-rede de cliente pela saida, deixando o servidor acessivel como sempre.

Passo 5: Criar o tunel de entrada para os seus dispositivos (wg0)

Ainda no servidor de entrada, crie /etc/wireguard/wg0.conf. Este e o tunel ao qual o seu telemovel ou portatil se liga, e as regras de encaminhamento empurram esse trafego para o wg1:

[Interface]
Address = 10.7.0.1/24
ListenPort = 51820
PrivateKey = ENTRY_DEVICE_PRIVATE_KEY
PostUp = iptables -A FORWARD -i wg0 -o wg1 -j ACCEPT; iptables -A FORWARD -i wg1 -o wg0 -j ACCEPT; iptables -t nat -A POSTROUTING -o wg1 -j MASQUERADE
PostDown = iptables -D FORWARD -i wg0 -o wg1 -j ACCEPT; iptables -D FORWARD -i wg1 -o wg0 -j ACCEPT; iptables -t nat -D POSTROUTING -o wg1 -j MASQUERADE

[Peer]
# Your device (we add its key in Step 6)
PublicKey = CLIENT_PUBLIC_KEY
AllowedIPs = 10.7.0.2/32

ENTRY_DEVICE_PRIVATE_KEY e o conteudo de entry0.key. O masquerading no wg1 esconde o seu dispositivo atras do servidor de entrada, por isso a saida ve sempre apenas a entrada.

Passo 6: Criar a config do dispositivo e ligar

Gere um par de chaves para o seu dispositivo (no seu computador ou no servidor de entrada), depois construa a config do cliente. Coloque a chave publica do dispositivo no wg0.conf da entrada onde diz CLIENT_PUBLIC_KEY. A config do seu dispositivo fica assim:

[Interface]
PrivateKey = CLIENT_PRIVATE_KEY
Address = 10.7.0.2/32
DNS = 1.1.1.1

[Peer]
PublicKey = ENTRY_DEVICE_PUBLIC_KEY
Endpoint = ENTRY_IP:51820
AllowedIPs = 0.0.0.0/0
PersistentKeepalive = 25

Aqui ENTRY_DEVICE_PUBLIC_KEY vem de entry0.pub, e ENTRY_IP e o IP publico do servidor de entrada - o unico servidor com que o seu dispositivo alguma vez fala.

Passo 7: Arrancar a entrada e verificar a cadeia

No servidor de entrada, ative o forwarding e arranque os dois tuneis por ordem (primeiro a ligacao, depois o tunel do dispositivo):

echo 'net.ipv4.ip_forward=1' > /etc/sysctl.d/99-wg.conf
sysctl -p /etc/sysctl.d/99-wg.conf
ufw allow 51820/udp
systemctl enable --now wg-quick@wg1
systemctl enable --now wg-quick@wg0

Agora importe a config do cliente na app WireGuard do seu dispositivo e ligue-se. Para confirmar que a cadeia funciona, verifique o seu IP - deve mostrar o pais do servidor de saida, nao o de entrada:

curl https://api.ipify.org

Se isso devolver o IP do servidor de saida, o seu trafego salta pelos dois servidores. Faca um teste de fugas na nossa pagina de ferramentas de rede para ter a certeza de que nao ha fugas de DNS ou WebRTC.

Erros comuns: se nao tiver internet apos ligar, verifique se o reencaminhamento IP esta ativo (sysctl net.ipv4.ip_forward deve devolver 1) em ambos os servidores, se o servidor de saida tem a sua chave de entrada no bloco [Peer], e se ambas as firewalls permitem UDP 51820. Se o IP mostrar o pais de entrada em vez do de saida, a regra MASQUERADE -o wg1 na entrada nao carregou - reinicie o wg0 no servidor de entrada.

Vale a pena?

Um multi-hop auto-alojado e a configuracao mais privada que existe: dois servidores seus, em dois paises, sem fornecedor pelo meio a guardar registos. Os compromissos sao a velocidade (dois saltos adicionam latencia) e o custo (dois VPS em vez de um). Para a navegacao diaria um unico servidor chega; construa a cadeia quando o seu modelo de ameaca o exigir mesmo. E lembre-se: um multi-hop protege a sua privacidade, nao muda a lei do lugar onde vive.

Etiquetas: multihop double vpn wireguard self-hosted advanced