O WireGuard é um protocolo de VPN moderno, rápido, pequeno e fácil de configurar. Executar o seu próprio em um VPS dá a você um túnel criptografado até um servidor no país de sua escolha, sem nenhuma empresa de VPN de terceiros no meio. Este guia usa Ubuntu 24.04 ou Debian 12/13 e presume que você já protegeu o servidor.
1. Instale o WireGuard
sudo apt update
sudo apt install -y wireguard
2. Gere as chaves do servidor
cd /etc/wireguard
umask 077
wg genkey | tee server.key | wg pubkey > server.pub
O umask 077 garante que os arquivos de chave só possam ser lidos pelo root. Mantenha o server.key privado.
3. Crie as chaves do cliente
Gere um par de chaves para o seu laptop ou celular no servidor e copie a configuração do cliente depois:
wg genkey | tee client1.key | wg pubkey > client1.pub
4. Escreva a configuração do servidor
Primeiro descubra o nome da sua interface de rede pública:
ip route get 1.1.1.1 | awk '{print $5; exit}'
Geralmente é eth0 ou ens3. Crie /etc/wireguard/wg0.conf e substitua os valores em maiúsculas pelos seus:
[Interface]
Address = 10.8.0.1/24
ListenPort = 51820
PrivateKey = SERVER_PRIVATE_KEY
PostUp = iptables -A FORWARD -i wg0 -j ACCEPT; iptables -t nat -A POSTROUTING -o ETH_IF -j MASQUERADE
PostDown = iptables -D FORWARD -i wg0 -j ACCEPT; iptables -t nat -D POSTROUTING -o ETH_IF -j MASQUERADE
[Peer]
# client1
PublicKey = CLIENT1_PUBLIC_KEY
AllowedIPs = 10.8.0.2/32
Cole o conteúdo de server.key e client1.pub nos locais indicados e substitua ETH_IF pelo nome da sua interface.
5. Ative o encaminhamento de IP
echo "net.ipv4.ip_forward=1" | sudo tee /etc/sysctl.d/99-wireguard.conf
sudo sysctl --system
6. Abra o firewall
sudo ufw allow 51820/udp
sudo ufw route allow in on wg0
sudo ufw reload
7. Inicie o túnel
sudo systemctl enable --now wg-quick@wg0
sudo wg show
Você deve ver a interface e, quando um cliente se conectar, seu último handshake.
8. Configure o cliente
No seu dispositivo, crie uma configuração como esta (os aplicativos oficiais do WireGuard para Windows, macOS, Linux, iOS e Android podem importá-la de um arquivo ou de um QR code):
[Interface]
Address = 10.8.0.2/24
PrivateKey = CLIENT1_PRIVATE_KEY
DNS = 1.1.1.1
[Peer]
PublicKey = SERVER_PUBLIC_KEY
Endpoint = YOUR_SERVER_IP:51820
AllowedIPs = 0.0.0.0/0, ::/0
PersistentKeepalive = 25
Usar AllowedIPs = 0.0.0.0/0, ::/0 envia todo o tráfego pelo túnel. Para alcançar apenas a sua rede privada, use 10.8.0.0/24 no lugar.
9. Teste
- Ative o túnel no cliente.
- Execute
sudo wg showno servidor e confirme que há um handshake recente. - Visite uma página de "qual é o meu IP" a partir do cliente. Ela deve mostrar o endereço do seu servidor.
- Verifique vazamentos de DNS se a privacidade for o objetivo e adicione regras IPv6 se o seu servidor tiver IPv6.
Adicionando mais dispositivos
Para cada novo dispositivo, gere um par de chaves, adicione outro bloco [Peer] com um novo endereço como 10.8.0.3/32 e execute sudo wg syncconf wg0 <(wg-quick strip wg0) para aplicá-lo sem derrubar as conexões existentes.
Escolhendo um local
Um servidor WireGuard funciona em qualquer uma das nossas localizações. Escolha uma perto de você para ter velocidade, ou no país cujo endereço IP você quer que seu tráfego use. Veja como escolher uma localização de VPS. Um VPS pequeno é mais que suficiente para um túnel pessoal.