A maioria das falhas de WireGuard montadas à mão resume-se a qual chave foi parar onde. A secção de interface leva a chave privada do dispositivo que está a configurar, enquanto uma secção de par leva a chave pública da máquina do outro extremo. Trocar essas metades, ou colar a errada, produz um handshake que nunca se completa e um registo que nunca nomeia uma chave. Faça as quatro verificações abaixo por ordem antes de tocar em AllowedIPs ou DNS.

Duas chaves, duas direções

Uma chave privada pertence exatamente a um dispositivo e fica na secção de interface desse dispositivo. A sua metade pública é o que qualquer outro par precisa para reconhecer o dispositivo, e as ferramentas derivam-na em vez de a inventarem. No servidor, a chave pública do seu dispositivo aparece como uma entrada de par; no seu dispositivo, a chave pública do servidor ocupa esse papel. Ler uma configuração em voz alta com esses termos apanha a maioria das confusões antes de chegarem a um handshake.

O comando wg imprime o que a interface local está realmente a usar, incluindo as duas chaves públicas. Isso torna-o na forma mais rápida de separar um erro de configuração de um problema de conetividade:

wg show
wg show interfaces

A primeira saída lista cada par com a sua chave pública, o endpoint que usou por último e a idade do seu último handshake. Uma idade de handshake «nunca» de um lado e recente do outro aponta para uma chave que só um extremo aceitou. O segundo comando nomeia as interfaces que pode inspecionar mais a fundo.

O que partilhar e o que nunca partilhar

Uma chave pública destina-se a ser entregue, embora ainda identifique uma relação de dispositivos, por isso enviá-la ao administrador que a pediu é diferente de a publicar. Uma chave privada nunca sai do dispositivo que a gerou. Um perfil exportado ou um código QR contém toda a configuração, incluindo essa chave privada, pelo que nenhum dos dois é seguro para fazer circular, e esconder o texto dentro de uma imagem não muda nada. As chaves pré-partilhadas são opcionais e igualmente secretas, e ambos os extremos têm de ter o mesmo valor, senão o handshake para nessa etapa.

Outra distinção merece ser dita sem rodeios: um endpoint é um endereço e uma porta, nunca uma chave. Colar uma chave pública no campo do endpoint, ou um endereço num campo de chave, produz um perfil que é analisado e depois não faz nada. As ferramentas não o apanham, porque ambos os campos são apenas cadeias. O início rápido do WireGuard mostra a cadeia de geração e derivação numa linha.

Um dispositivo, uma entrada de par

Onde o serviço o permite, cada dispositivo deve levar a sua própria identidade de par. Colar o perfil completo de um portátil num telefone torna difuso qual dispositivo detém essa identidade no servidor e torna mais difícil revogar um único telefone perdido. Se uma chave privada escapar, remova a autorização antiga do par no servidor e arranje um substituto. Apagar o ficheiro local não remove a entrada do servidor, e uma nova chave de cliente não ajuda ninguém até o servidor conhecer a sua metade pública.

Mantenha a correspondência entre dispositivo e chave pública junto à lista de endereços. É essa lista que transforma uma revogação numa tarefa de dois minutos em vez de uma tarde inteira.

O que continua a falhar depois do handshake

Os pares de chaves identificam pares; não decidem o comportamento da rede. O AllowedIPs associa intervalos de endereços a um par, e as rotas em volta são geridas pelo cliente ou pela ferramenta de configuração. O sintoma costuma dizer que camada abrir a seguir:

What you seeWhich key problem it usually meansWhere to look first
Handshake age stays at never on both endsPeer public key missing, or an endpoint pointing at nothingwg show, then the endpoint value
Handshake completes on one side onlyThe two ends hold different public keys for each otherwg show on both hosts
Handshake works, then no trafficAllowedIPs or routes rather than keyswg show and the route table
Worked until a key was regeneratedThe peer entry still holds the old public keyCompare both public keys, then update the peer

O DNS pode falhar depois de ambos os pares se autenticarem corretamente, e uma aplicação pode falhar enquanto o túnel está saudável, por isso um handshake a funcionar não é o fim do diagnóstico. As chaves também não dizem nada sobre a prática de registo de um operador nem sobre se um site reconhece a sua conta, e essas perguntas pertencem a outro lugar. Passe às camadas de rede quando as quatro verificações passarem, porque uma chave em falta não é um problema de encaminhamento disfarçado.

Artigos relacionados