Preberite konfiguracijo WireGuard vrstico za vrstico, od Interface do Peer
Ključi Interface pripadajo temu koncu, ključi peer drugi strani. Vsako vrstico berite kot eno smer, nato preverite, kaj je wg-quick dodal okoli protokola.
Večina pokvarjenih konfiguracij WireGuard se ne zmoti v vrednosti; pravilno vrednost postavijo na napačno stran. Zasebni ključ pripada temu stroju, peer nosi javni ključ drugega stroja, naslov pa sedi v bloku interface, čeprav opisuje, kje živi tunel. Datoteko berite kot dve smeri, ki se srečata, nato preverite, kaj je pomožni skript dodal zgoraj. Sam protokol ima manj polj kot datoteka, dodatna pa je vredno poznati ločeno.
Ključi interface opisujejo ta stroj
Blok interface hrani lastno identiteto tega konca. PrivateKey je ta identiteta in nikoli ne zapusti gostitelja; iz nje je izpeljan ustrezni javni ključ in prav tega naštevajo drugi peeri. ListenPort je mesto, kjer ta stran sprejema rokovanja, zato dva odjemalca za enim naslovom potrebujeta različni vrati.
Address je naslov tunela, na katerega odgovarja ta gostitelj, zapisan z dolžino predpone, ker bo tudi vir, ki ga bo uporabil. Napačna predpona tukaj spremeni, katere cilje ima gostitelj za neposredno povezane, in to daje okvare, ki so videti kot usmerjanje in ne kot konfiguracija.
Vse ostalo v [Interface] bloku s pravim odjemalcem običajno doda wg-quick: DNS, MTU, Table, in vrstice kavljev. To niso polja protokola in gola wg nastavitev jih popolnoma prezre.
Vsak vnos peer opisuje eno drugo stran
[Peer] blok je oddaljena stran. PublicKey je izpeljani ključ te strani, nikoli njen zasebni ključ, in PresharedKey je izbirna dodatna skrivnost, ki jo morata obe strani hraniti enako. Endpoint je kam pošiljati, in PersistentKeepalive prosi tega gostitelja, naj po intervalu pošlje paket, ko nič drugega ne gre ven.
Dve napaki pojasnita večino zmede tukaj. Kopiranje lastnega zasebnega ključa v blok peer povzroči, da si dva konca delita eno identiteto, in rokovanje spodleti tako, da se slabo zabeleži. Endpoint izpuščanje pri odjemalcu je običajno namerno, ker se strežnik naslova nauči iz dohodnega rokovanja; izpuščanje na strežniku, ki mora začeti, ni. Zapomnite si tudi, da keepalive drži preslikavo NAT odprto in ne izboljša prepustnosti niti ne zmanjša zakasnitve, zato trideset sekund dodatnih paketov ne kupi ničesar, ko promet že teče.
AllowedIPs je usmerjanje, ne seznam dovoljenj
AllowedIPs je kriptoključno usmerjanje WireGuarda. Navzven odloča, kateri peer prejme paket glede na cilj. Navznoter odloča, ali je paket, ki prihaja od tega peera, sprejet glede na vir. Isto polje opravlja obe nalogi, zato to ni seznam za nadzor dostopa in ni seznam dovoljenih spletnih mest.
Ozka AllowedIPs na strežniku za odjemalca pomeni, da bo strežnik sprejel le pakete, ki trdijo te vire, in pošiljal le te cilje temu odjemalcu. Razširite eno stran, ne da bi razširili drugo, in dobite tunel, ki se dvigne in ne spusti ničesar skozi.
Kaj wg-quick doda okoli protokola
wg-quick bere isto datoteko in izvede omrežne korake, ki jih protokol prepusti operacijskemu sistemu. Dodeli naslov interface, doda poti, izpeljane iz AllowedIPs, zapiše nastavitve razreševalnika in po vrsti zažene ukaze kavljev.
Ta plast pojasni klasično asimetrijo. Datoteka z 0.0.0.0/0 in vrstico DNS odjemalcu da privzeto pot in razreševalnik, s strežnikovimi pravili posredovanja ali NAT pa ne stori prav ničesar. Ta pripadajo konfiguraciji samega strežnika in nobena odjemalska datoteka jih ne more zagotoviti.
Za datoteko imejte enega lastnika. Ročno urejanje, medtem ko je SaveConfig omogočen, pomeni, da vaše urejanje izgine ob naslednjem padcu interface, in interface vam ne bo povedal, da se je to zgodilo.
Preverite uporabljeno stanje, ne datoteke
Datoteka je namera. Uporabljeno stanje je tisto, kar drži jedro, in razhajata se vsakič, ko je pomočnik, drop-in ali kavelj po aktivaciji kaj uredil.
Preberite živo stanje in naslavljanje skupaj ter nato oboje primerjajte s tem, kar ste napisali:
sudo wg show
ip -4 addr show dev wg0
ip -4 route show dev wg0
grep -v "^#" /etc/wireguard/wg0.confČe je seznam peerv praznen, je interface nastal brez uporabe njegove konfiguracije. Če naslovi in poti obstajajo, a števci ostanejo na ničli, se je datoteka naložila in rokovanje spodleti, kar je težava ključa ali konca, ne pa vrstnega reda razdelkov. Primerjajte oba pogleda pred urejanjem, saj je razlika med njima običajno resnična napaka.