Configuração do servidor WireGuard no Linux (wg0, NAT, pares)
12 min de leitura - 22 de junho de 2026

Configuração prática do servidor WireGuard para Linux: chaves, wg0.conf, NAT, gestão de pares com syncconf e os comandos de resolução de problemas que os administradores de sistemas utilizam na prática.
Execute um servidor WireGuard quando pretender acesso privado à infraestrutura alojada sem expor as portas de administração à Internet pública. Este utiliza autenticação por chave pública, funciona no kernel do Linux desde a versão 5.6 e, uma vez em funcionamento, passa a funcionar de forma discreta. Este artigo aborda quando utilizar um servidor WireGuard, como o configurar wg0e como manter os pares a funcionar no dia a dia.
Quando utilizar um servidor WireGuard
Três padrões abrangem a maioria das configurações: acesso remoto, ligações servidor a servidor e encaminhamento site a site.
Para acesso remoto, execute o servidor num VPS ou num servidor dedicado e encaminhe o tráfego de administração através do túnel. Defina AllowedIPs em cada par para a sub-rede privada de gestão (algo como 10.0.0.0/24) para que apenas o tráfego destinado aos sistemas internos utilize o túnel. Todo o resto permanece na ligação local do utilizador. Se os utilizadores se ligarem a partir de casa ou de redes móveis, adicione PersistentKeepalive = 25 no lado do cliente para evitar que as sessões NAT sejam encerradas.
Para ligações servidor-a-servidor, mantenha AllowedIPs restrito. Normalmente, basta uma única /32 ou uma pequena sub-rede de backend. Isso evita que tráfego não relacionado seja puxado para o túnel e mantém o encaminhamento previsível.
A ligação de site a site é diferente. O anfitrião WireGuard atua como um gateway entre sub-redes, pelo que o reencaminhamento de IP tem de estar ativado e as regras NAT têm de enviar o tráfego de retorno pela interface correta.
| Padrão | AllowedIPs de alcance | Melhor adequação | Complexidade da configuração |
|---|---|---|---|
| Acesso remoto | Sub-redes privadas, por exemplo 10.0.0.0/24 | Acesso de administradores e programadores | Baixa |
| Servidor para servidor | IPs específicos ou sub-rede de backend | Ligações ponto a ponto entre anfitriões | Baixo a médio |
| Site a site | LAN remota completa, por exemplo /24 | Roteamento de gateway a gateway | Médio a elevado |
| Acesso a serviços privados | Apenas sub-rede interna (túnel dividido) | Isolamento do serviço de backend | Médio |
Configuração do servidor
O servidor armazena a chave privada, escuta no UDP 51820 por predefinição e encerra o túnel. A mesma configuração de base funciona para os três padrões acima referidos.
Chaves e wg0.conf
Gerar o par de chaves do servidor:
wg genkey | sudo tee /etc/wireguard/server_private.key | wg pubkey | sudo tee /etc/wireguard/server_public.keyProteja a chave privada:
sudo chmod 600 /etc/wireguard/server_private.keyA chave privada permanece no servidor. A chave pública é a que se fornece aos pares.
Criar /etc/wireguard/wg0.conf:
[Interface]
Address = 10.8.0.1/24
ListenPort = 51820
PrivateKey = <SERVER_PRIVATE_KEY>
PostUp = iptables -A FORWARD -i %i -j ACCEPT; iptables -t nat -A POSTROUTING -o <PUBLIC_IFACE> -j MASQUERADE
PostDown = iptables -D FORWARD -i %i -j ACCEPT; iptables -t nat -D POSTROUTING -o <PUBLIC_IFACE> -j MASQUERADE
[Peer]
PublicKey = <CLIENT_PUBLIC_KEY>
AllowedIPs = 10.8.0.2/32Identifique a interface de saída na qual deve inserir <PUBLIC_IFACE> com:
ip -o -4 route show to default | awk '{print $5}'Reencaminhamento, firewall e NAT
Abra a porta de escuta:
sudo ufw allow 51820/udpAtive o reencaminhamento de IP adicionando esta linha ao ficheiro /etc/sysctl.conf:
net.ipv4.ip_forward = 1Aplicar sem reiniciar:
sudo sysctl -pO PostUp e PostDown linhas em wg0.conf adicionam e removem a regra de mascaramento NAT quando a interface é ativada ou desativada. Sem elas, o tráfego de retorno da LAN nunca chega ao par.
Ao ativar o túnel
wg-quick controla a interface, o encaminhamento e os PostUp/PostDown ganchos num único comando:
sudo wg-quick up wg0Para o arranque automático após o reinício, ative a unidade do systemd:
sudo systemctl enable --now wg-quick@wg0Verifique o estado com:
sudo wg showUma linha recente latest handshake linha confirma que o túnel está a funcionar. Se parecer desatualizada ou vazia, verifique a firewall, as chaves em ambos os lados e o AllowedIPs.
Adicionar e remover pares
Cada par necessita do seu próprio par de chaves. Gere-o no cliente e, em seguida, adicione a chave pública do par wg0.conf num novo [Peer] bloco com uma AllowedIPs entrada que atribua o seu IP de túnel.
Utilize /32 para um único dispositivo:
AllowedIPs = 10.8.0.3/32Isso impede que um par reivindique endereços atribuídos a outro. Para acesso com túnel dividido, indique apenas as sub-redes privadas que devem passar pelo túnel, por exemplo AllowedIPs = 10.8.0.0/24.
Aplique as alterações de configuração sem interromper as sessões ativas:
sudo wg syncconf wg0 <(wg-quick strip wg0)A remoção de um par funciona da mesma forma. Elimine o seu [Peer] bloco de wg0.conf e execute syncconf novamente.
Resolução de problemas
Se um par se ligar, mas não conseguir aceder a nada do outro lado, a causa é normalmente uma das quatro seguintes:
- O encaminhamento de IP está desativado
- Falta a regra de mascaramento NAT
- A interface de saída na regra NAT está errada
AllowedIPsnão inclui o destino
Verifique o encaminhamento:
cat /proc/sys/net/ipv4/ip_forwardDeve devolver 1. Se devolver 0, a alteração no sysctl não foi aplicada ou não foi guardada.
Verifique a regra NAT e a interface de saída:
sudo iptables -t nat -L POSTROUTING
ip route get 1.1.1.1O segundo comando mostra o nome real da interface de saída, como ens3, enp1s0, ou eth0. Este tem de corresponder à interface na regra MASQUERADE.
Se o próprio handshake estiver em falta, verifique se a porta UDP 51820 esteja aberto no firewall e em qualquer fornecedor a montante, e que ambos os lados tenham a chave pública correta do outro.
Para pares atrás de NAT residencial ou móvel que encerra sessões UDP inativas, defina PersistentKeepalive = 25 no cliente.
Rotação de chaves e chaves pré-partilhadas
Para túneis que permanecem ativos durante meses, rode as chaves uma vez por ano, aproximadamente. Gere um novo par de chaves, atualize ambas as extremidades e aplique com wg syncconf. Não reutilize uma chave privada entre dois pares. Isso cria conflitos de encaminhamento e interrompe a entrega entre eles.
Para uma camada adicional à autenticação por chave pública, adicione uma chave pré-partilhada por par:
wg genpskAdicione o resultado como PresharedKey = <PSK> no [Peer] bloco em ambos os lados. O WireGuard integra a PSK no handshake, pelo que um atacante que, de alguma forma, comprometa uma das chaves assimétricas continuará a não conseguir descodificar o tráfego sem ela.
Comandos úteis no dia-a-dia:
| Comando | Finalidade |
|---|---|
wg show | Parceiros, handshakes, contadores de tráfego |
wg show wg0 transfer | Contadores de bytes para wg0 |
wg show all dump | Saída analisável por computador para scripts de monitorização |
wg syncconf wg0 <(wg-quick strip wg0) | Aplicar alterações de configuração sem interromper as sessões |
wg genpsk | Gerar uma chave pré-partilhada |
Se precisar de um host estável e acessível ao público para terminar túneis WireGuard e encaminhar tráfego privado para a sua infraestrutura, consulte os planos de VPS sem limites de tráfego da FDC.

Fadiga ocular digital: Como proteger a sua visão num mundo dominado pelos ecrãs
Passa o dia inteiro a olhar para ecrãs? Saiba como reduzir a fadiga ocular digital com técnicas e ferramentas comprovadas. Este guia é essencial para trabalhadores remotos, programadores e qualquer pessoa que trabalhe na área da tecnologia.
4 min de leitura - 21 de maio de 2025
Por que é importante ter um VPS potente e sem limites de tráfego
8 min de leitura - 9 de maio de 2025