Configuras o WireGuard num portátil, funciona, e copiar essa mesma configuração para um telemóvel demora dez segundos. Os dois ligam-se. Durante algum tempo nada parece errado.
Depois os dois ficam ligados ao mesmo tempo, e um deles deixa de receber tráfego. Sem erro, sem regularidade, e normalmente quando estás a tentar fazer outra coisa.
A solução é um par de chaves por dispositivo. O nosso gerador de configurações WireGuard gratuito cria um par de chaves, um endereço e uma configuração separados para cada peer no teu navegador, e se ainda tens de alugar o servidor, um Contabo Cloud VPS 4 a 5,50 €/mês (link de afiliado) vem com o seu próprio IPv4 público. Se preferires um alojamento nos EUA com garantia de reembolso de 30 dias, o Ultahost VPS Basic custa 5,52 $ por mês num compromisso de 24 meses (1 GB de RAM, IPv4 dedicado, lido a 21 de outubro de 2026), o suficiente para um servidor WireGuard para alguns dispositivos. O gerador é gratuito até 10 dispositivos; acima disso, o WireGuard Pro (produto nosso, 9 EUR uma vez, sem subscrição) sobe o limite para 250 e junta um ZIP com cada .conf de cliente e o respetivo código QR em PNG, prático para configurar um escritório ou uma família inteira de uma só vez.
O que o servidor vê
O WireGuard identifica um peer pela sua chave pública. Não pelo IP, não pelo dispositivo, não pelo nome. Dois dispositivos com a mesma chave privada são, para o servidor, um peer que não para de se mover.
Cada handshake atualiza o endpoint registado para esse peer, o endereço e a porta para onde o servidor envia as respostas. O telemóvel faz o handshake, as respostas vão para o telemóvel. O portátil faz o handshake, as respostas vão para o portátil. O que não fez o handshake mais recente continua a enviar pacotes que chegam bem, e deixa de receber o que quer que seja de volta.
É todo o mecanismo, e explica exatamente o sintoma: uma ligação que salta entre dois dispositivos a intervalos que ninguém controla, porque o intervalo de handshake não é algo que agendes.
As três consequências, pela ordem do que te vão custar
Não os consegues distinguir. O wg show lista um peer, um tempo de handshake, um contador de transferência. O tráfego do telemóvel e do portátil é somado. Se algum dia precisares de saber que dispositivo fez alguma coisa, essa informação não existe.
Não consegues revogar só um. Remover a chave do servidor remove o acesso a todos os dispositivos que a têm. Um telemóvel perdido significa cortar também o portátil, e depois voltar a emitir para os dois.
O AllowedIPs torna-se ambíguo. No servidor, o AllowedIPs é a forma como um pacote é associado a um peer. Dois dispositivos atrás de uma única entrada de peer partilham um endereço de túnel, por isso tudo o que é encaminhado para esse endereço chega ao dispositivo que tem o endpoint nesse momento.

A solução: uma chave e um endereço por dispositivo
No cliente, ou no servidor se estiveres a gerar para outra pessoa:
wg genkey | tee phone.key | wg pubkey > phone.pub
No servidor, acrescenta um bloco de peer por dispositivo, cada um com o seu endereço:
[Peer]
# laptop
PublicKey = <laptop.pub>
AllowedIPs = 10.10.0.2/32
[Peer]
# phone
PublicKey = <phone.pub>
AllowedIPs = 10.10.0.3/32
Acrescenta-o a quente, sem desligar ninguém:
wg set wg0 peer <phone.pub> allowed-ips 10.10.0.3/32
⛔ Depois escreve-o também no ficheiro de configuração. O wg set altera a interface em execução e nada no disco; um reboot perde-o. Essa armadilha, e o resto do ciclo de vida de um peer, estão tratados em adicionar um peer WireGuard.
Remover um dispositivo mais tarde passa a ser um único comando, que não mexe em mais nada:
wg set wg0 peer <phone.pub> remove
A linha de comentário não é decoração
Nada no protocolo transporta um nome de dispositivo, por isso uma lista de doze chaves públicas fica ilegível seis meses depois. Um comentário # phone acima de cada bloco é a única etiqueta que alguma vez vai existir, e o dia em que precisares de revogar um à pressa é o dia em que a vais querer.
Dois casos vizinhos que não são isto
Uma chave pré-compartilhada é partilhada de propósito. A PresharedKey é simétrica e tem de ser idêntica nas duas extremidades de um par de peers. Isso não é reutilização de chave entre dispositivos, e os dois confundem-se facilmente: vê o guia da chave pré-compartilhada.
Um dispositivo, vários túneis também não é problema. Um portátil pode ter chaves diferentes para servidores diferentes sem conflito, porque a identidade é por túnel e não por máquina.
Se emites configurações para dispositivos com regularidade, gerar o código QR é a parte rápida, e merece a mesma disciplina: o código QR WireGuard contém a chave privada por inteiro, por isso um código por dispositivo e nunca um partilhado.
★ Datacenter GDPR em Nuremberg · ✓ IPv4 dedicado incluído · porta de 200 Mbit/s
Aloje a sua VPN no seu próprio VPS → ContaboAcesso root completo · IPv4 público · escolha a sua região→


