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.

Como alojar modelos de IA da Ollama em servidores dedicados
Saiba como alojar modelos de IA da Ollama em servidores dedicados para manter a segurança dos dados, garantir a escalabilidade e melhorar o desempenho.
5 min de leitura - 8 de setembro de 2025
Como instalar e utilizar o Redis num VPS
9 min de leitura - 7 de janeiro de 2026