Dei fleste øydelagde WireGuard-konfigurasjonane tek ikkje feil av ein verdi; dei set rett verdi på feil side. Ein privat nøkkel høyrer til denne maskinen, ein peer ber den offentlege nøkkelen til den andre maskinen, og ei adresse sit i interface-blokka sjølv om ho skildrar kvar tunnelen bur. Les fila som to retningar som møtest, og sjekk deretter kva hjelpeskriptet la til oppå. Protokollen sjølv har færre felt enn fila, og dei ekstra er verd å kjenne kvar for seg.

Interface-nøklar skildrar denne maskinen

Interface-blokka held eigen identitet til dette endepunktet. PrivateKey er den identiteten og forlèt aldri verten; den samsvarande offentlege nøkkelen blir leidd ut frå han, og det er den andre peers listar. ListenPort er der denne sida tek imot handtrykk, så to klientar bak éi adresse treng ulike portar.

Address er tunneladressa denne verten svarar på, skriven med ei prefikslengd fordi ho òg er kjelda han vil bruke. Feil prefiks her endrar kva destinasjonar verten trur er direkte tilkopla, og det gjev feil som ser ut som ruting og ikkje som konfigurasjon.

Alt anna i ei [Interface] blokk med ein verkeleg klient blir vanlegvis lagt til av wg-quick: DNS, MTU, Table, og kroklinjene. Dei er ikkje protokollfelt, og eit bart wg oppsett ignorerer dei heilt.

Kvar peer-oppføring skildrar éi anna side

[Peer] blokk er den fjerne parten. PublicKey er den leidde nøkkelen til den parten, aldri den private nøkkelen deira, og PresharedKey er ein valfri ekstra løyndom som begge sider må halde identisk. Endpoint er kvar det skal sendast, og PersistentKeepalive ber denne verten sende ein pakke etter intervallet når ingenting anna går ut.

To feil forklarer det meste av forvirringa her. Å kopiere sin eigen private nøkkel inn i ei peer-blokk gjer at dei to endane deler éin identitet, og handtrykket feilar på ein måte som blir dårleg logga. Endpoint å utelate på ein klient er vanlegvis med vilje, fordi tenaren lærer adressa frå det innkomande handtrykket; å utelate det på ein tenar som må initiere er det ikkje. Hugs òg at keepalive held ein NAT-mapping open, og det betrar ikkje gjennomstrøyminga eller minskar latenstida, så tretti sekund med ekstra pakkar kjøper ingenting når trafikken alt flyt.

AllowedIPs er ruting, ikkje ei tillatingsliste

AllowedIPs er WireGuards kryptonøkkel-ruting. Utgåande avgjer det kva peer som tek imot ein pakke ut frå destinasjonen. Inngåande avgjer det om ein pakke som kjem frå den peeren blir godteken ut frå kjelda. Det same feltet gjer begge jobbane, og difor er det ikkje ei tilgangskontrolliste og ikkje ei liste over tillatne nettsider.

Ein smal AllowedIPs på tenaren for ein klient tyder at tenaren berre tek imot pakkar som hevdar desse kjeldene, og berre sender desse destinasjonane til den klienten. Utvid éi side utan å utvide den andre, og du får ein tunnel som kjem opp og slepp ingenting gjennom.

Kva wg-quick legg til rundt protokollen

wg-quick les den same fila og gjer nettverksstega protokollen overlèt til operativsystemet. Det tildeler interface-adressa, legg til ruter leidde ut frå AllowedIPs, skriv innstillingane for resolveren og køyrer krokkommandoane i rekkjefølgje.

Det laget forklarer den klassiske asymmetrien. Ei fil med 0.0.0.0/0 og ei DNS linje gjev ein klient ei standardrute og ein resolver, og ho gjer absolutt ingenting med vidaresendings- eller NAT-reglane til tenaren. Dei høyrer til konfigurasjonen til tenaren sjølv, og inga klientfil kan levera dei.

Hald éin eigar av fila. Å redigere henne for hand medan SaveConfig er slått på tyder at endringa di forsvinn neste gong interface går ned, og interface vil ikkje fortelje deg at det skjedde.

Kontroller den brukte tilstanden, ikkje fila

Fila er ein intensjon. Den brukte tilstanden er det kjernen held, og dei går frå kvarandre kvar gong ein hjelpar, ein drop-in eller ein krok redigerte noko etter aktiveringa.

Les den levande tilstanden og adresseringa saman, og samanlikn deretter båe med det du skreiv:

sudo wg show
ip -4 addr show dev wg0
ip -4 route show dev wg0
grep -v "^#" /etc/wireguard/wg0.conf

Viss peer-lista er tom, vart interface oppretta utan at konfigurasjonen vart brukt. Viss adresser og ruter finst men teljarane blir ståande på null, vart fila lasta og handtrykket feilar, noko som er eit nøkkel- eller endepunktproblem og ikkje eit seksjonsrekkjefølgjeproblem. Samanlikn dei to visingane før du redigerer, fordi gapet mellom dei er vanlegvis den eigentlege feilen.

Relaterte artiklar