1. Por que WireGuard
Protocolo moderno, código pequeno, performance excelente e configuração legível. Ideal para acesso remoto a homelab, bastion ou rede interna sem a complexidade de OpenVPN clássico.
2. Instalação no servidor
# Ubuntu / Debian
sudo apt update
sudo apt install -y wireguard
# Ativar forwarding
echo 'net.ipv4.ip_forward=1' | sudo tee /etc/sysctl.d/99-wireguard.conf
sudo sysctl -p /etc/sysctl.d/99-wireguard.conf
3. Chaves e interface
umask 077
wg genkey | tee /etc/wireguard/server.key | wg pubkey > /etc/wireguard/server.pub
wg genkey | tee /etc/wireguard/client1.key | wg pubkey > /etc/wireguard/client1.pub
# /etc/wireguard/wg0.conf (servidor)
[Interface]
Address = 10.8.0.1/24
ListenPort = 51820
PrivateKey = <conteúdo de server.key>
PostUp = iptables -A FORWARD -i wg0 -j ACCEPT; iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
PostDown = iptables -D FORWARD -i wg0 -j ACCEPT; iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE
[Peer]
PublicKey = <client1.pub>
AllowedIPs = 10.8.0.2/32
sudo systemctl enable --now wg-quick@wg0
sudo wg show
DICA · Substitua
eth0 pela interface real de saída (ip -br a).4. Adicionar um peer (cliente)
# cliente (wg0.conf)
[Interface]
Address = 10.8.0.2/24
PrivateKey = <client1.key>
DNS = 1.1.1.1
[Peer]
PublicKey = <server.pub>
Endpoint = SEU_IP_PUBLICO:51820
AllowedIPs = 0.0.0.0/0 # tunnel full, ou 10.8.0.0/24 para split
PersistentKeepalive = 25
No Android/iOS use o app oficial WireGuard e importe o arquivo ou QR.
5. Firewall e IP forwarding
# UFW exemplo
sudo ufw allow 51820/udp
sudo ufw allow from 10.8.0.0/24
sudo ufw reload
6. Checklist
- Porta UDP 51820 liberada no provedor/firewall
- Chaves privadas nunca no Git
AllowedIPsrestritos no servidor (só o IP do peer)- Teste de conectividade:
ping 10.8.0.1a partir do cliente - Backup do
wg0.confe das keys
7. Erros comuns
| Sintoma | Causa | Solução |
|---|---|---|
| Handshake não completa | Porta bloqueada ou Endpoint errado | Verifique UDP 51820 e IP público |
| Ping não responde | Forwarding ou iptables | Confira sysctl e regras PostUp |
| Internet some no cliente | AllowedIPs = 0.0.0.0/0 sem NAT | Ajuste MASQUERADE ou use split tunnel |
| Múltiplos peers | AllowedIPs colidindo | Cada peer com IP único /32 |