WireGuard permite aceder a serviços privados sem publicar as suas interfaces web. O ponto VPN deve ser acessível; DDNS não ultrapassa CGNAT.
Configuração
Use sub-redes diferentes para LAN e VPN e um par de chaves por dispositivo. AllowedIPs determina os destinos que passam pelo túnel. Um túnel completo exige também encaminhamento e, conforme a topologia, NAT.
Um servidor no router precisa de uma regra de entrada UDP. Um servidor atrás dele precisa de encaminhamento de porta. UDP 51820 é um exemplo, não um valor obrigatório.
Verificação
Confirme o handshake e o acesso real por dados móveis. Um teste TCP não testa WireGuard. Após uma mudança de IP, o cliente pode precisar de resolver novamente o nome DDNS. Mesmo páginas .app privadas exigem um certificado HTTPS válido.
Exemplos de configuração
Adapte valores, interfaces e portas. Os exemplos podem corresponder a versões diferentes: não execute alternativas incompatíveis em conjunto. Nunca publique tokens reais nem chaves privadas.
sudo -i # the rest of this guide runs as root
apt update
apt install wireguard iptables qrencode
# keys for the server and for your first device (a phone)
cd /etc/wireguard
umask 077
wg genkey | tee server.key | wg pubkey > server.pub
wg genkey | tee phone.key | wg pubkey > phone.pub
cat server.pub phone.pub[Interface]
Address = 10.8.0.1/24
ListenPort = 51820
PrivateKey = <contents of server.key>
# let VPN clients reach the LAN, and hide them behind this machine's LAN address
PostUp = sysctl -w net.ipv4.ip_forward=1; iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE
PostDown = iptables -t nat -D POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE
[Peer]
# phone
PublicKey = <contents of phone.pub>
AllowedIPs = 10.8.0.2/32chmod 600 /etc/wireguard/wg0.conf
systemctl enable --now wg-quick@wg0
wg show[Interface]
Address = 10.8.0.2/32
PrivateKey = <contents of phone.key>
# optional: use your Pi-hole or router for DNS while connected
DNS = 192.168.1.2
[Peer]
PublicKey = <contents of server.pub>
Endpoint = home.yourname.uk.app:51820
# only home traffic goes through the tunnel ("split tunnel")
AllowedIPs = 10.8.0.0/24, 192.168.1.0/24
PersistentKeepalive = 25qrencode -t ansiutf8 < /etc/wireguard/phone.conf
shred -u /etc/wireguard/phone.key /etc/wireguard/phone.conf # once scannedVerificações finais
Teste com dados móveis fora do Wi-Fi. Confirme separadamente DNS, porta prevista, certificado HTTPS válido e autenticação. Mantenha painéis administrativos privados, instale atualizações e teste recuperar uma cópia. Verifique firewalls IPv6 e IPv4. Um teste de porta bem-sucedido não é uma auditoria de segurança.
Esta edição localizada resume o guia original. Os comandos mantêm a sintaxe original. Consulte a documentação do fabricante para a sua versão exata.