Lea unha configuración de WireGuard liña por liña, de Interface a Peer
As claves de Interface pertencen a este extremo, as de peer ao outro lado. Lea cada liña como unha dirección e logo confirme que engadiu wg-quick arredor do protocolo.
A maioría das configuracións de WireGuard rotas non se equivocan nun valor; poñen o valor correcto no lado incorrecto. Unha clave privada pertence a esta máquina, un peer leva a clave pública da outra máquina, e un enderezo senta no bloque interface aínda que describe onde vive o túnel. Lea o ficheiro como dúas direccións que se atopan e logo comprobe que engadiu por riba o script auxiliar. O protocolo en si ten menos campos ca o ficheiro, e os extra paga a pena coñecelos por separado.
As claves de interface describen esta máquina
O bloque interface garda a identidade propia deste extremo. PrivateKey é esa identidade e nunca sae do host; a clave pública correspondente derívase dela e é o que enumeran os demais peers. ListenPort é onde este lado recibe os handshakes, así que dous clientes tras un mesmo enderezo necesitan portos distintos.
Address é o enderezo do túnel ao que responde este host, escrito cunha lonxitude de prefixo porque tamén é a orixe que usará. Equivocar o prefixo aquí cambia que destinos o host cre que están enlazados directamente, o que produce fallos que parecen de encamiñamento e non de configuración.
Todo o demais nun [Interface] bloque cun cliente real adoita engadilo wg-quick: DNS, MTU, Table, e as liñas de gancho. Non son campos do protocolo, e unha instalación wg espida ignóraos por completo.
Cada entrada de peer describe un lado máis
Un [Peer] bloque é a parte remota. PublicKey é a clave derivada desa parte, nunca a súa clave privada, e PresharedKey é un segredo extra opcional que ambos os dous lados deben ter idéntico. Endpoint é a onde enviar, e PersistentKeepalive pide a este host que envíe un paquete tras o intervalo cando non sae nada máis.
Dous erros explican a maior parte da confusión aquí. Copiar a túa propia clave privada nun bloque peer fai que os dous extremos compartan unha identidade, e o handshake falla dun xeito que se rexistra mal. Deixar Endpoint fóra nun cliente adoita ser intencionado, porque o servidor aprende o enderezo do handshake entrante; deixalo fóra nun servidor que debe iniciar non o é. Lembra tamén que keepalive mantén aberta unha asignación NAT, e non mellora o rendemento nin reduce a latencia, así que trinta segundos de paquetes extra non compran nada cando o tráfico xa flúe.
AllowedIPs é encamiñamento, non unha lista de permisos
AllowedIPs é o encamiñamento por clave criptográfica de WireGuard. De saída, decide que peer recibe un paquete segundo o seu destino. De entrada, decide se se acepta un paquete que chega dese peer segundo a súa orixe. O mesmo campo fai as dúas tarefas, por iso non é unha lista de control de acceso nin unha lista de sitios permitidos.
Un AllowedIPs estreito no servidor para un cliente significa que o servidor só aceptará paquetes que declaren esas orixes e só enviará eses destinos a ese cliente. Amplía un lado sen ampliar o outro e obterás un túnel que sobe e non pasa nada.
Que engade wg-quick arredor do protocolo
wg-quick le o mesmo ficheiro e realiza os pasos de rede que o protocolo deixa ao sistema operativo. Asigna o enderezo da interface, engade rutas derivadas de AllowedIPs, escribe a configuración do resolutor e executa as ordes de gancho en orde.
Esa capa explica a asimetría clásica. Un ficheiro con 0.0.0.0/0 e unha liña DNS dá ao cliente unha ruta por defecto e un resolutor, e non fai absolutamente nada ás regras de reenvío nin de NAT do servidor. Esas pertencen á configuración do propio servidor, e ningún ficheiro de cliente pode fornecidas.
Mantén un único propietario do ficheiro. Editalo a man mentres SaveConfig está activado significa que a túa edición desaparece a próxima vez que a interface baixe, e a interface non che dirá que pasou.
Comproba o estado aplicado, non o ficheiro
O ficheiro é unha intención. O estado aplicado é o que mantén o núcleo, e diverxen sempre que un auxiliar, un drop-in ou un gancho editou algo tras a activación.
Le o estado vivo e o enderezamento xuntos e logo compara ambos co que escribiches:
sudo wg show
ip -4 addr show dev wg0
ip -4 route show dev wg0
grep -v "^#" /etc/wireguard/wg0.confSe a lista de peers está baleira, a interface creouse sen que se aplicase a súa configuración. Se existen enderezos e rutas pero os contadores seguen a cero, o ficheiro cargouse e o handshake falla, o que é un problema de clave ou de extremo e non de orde de seccións. Compara as dúas vistas antes de editar, porque a diferenza entre elas adoita ser o fallo real.