Legu WireGuard-agordon linion post linio, de Interface ĝis Peer
Interface-ŝlosiloj apartenas al ĉi tiu finpunkto, peer-ŝlosiloj al la alia flanko. Legu ĉiun linion kiel unu direkton, poste kontrolu, kion wg-quick aldonis ĉirkaŭ la protokolo.
Plej multaj difektitaj WireGuard-agordoj ne eraras pri valoro; ili metas la ĝustan valoron sur la malĝustan flankon. Privata ŝlosilo apartenas al ĉi tiu maŝino, peer portas la publikan ŝlosilon de la alia maŝino, kaj adreso sidas en la interface-bloko kvankam ĝi priskribas, kie loĝas la tunelo. Legu la dosieron kiel du direktojn, kiuj renkontiĝas, poste kontrolu, kion la helpa skripto aldonis supre. La protokolo mem havas malpli da kampoj ol la dosiero, kaj la pliaj indas esti konataj aparte.
Interface-ŝlosiloj priskribas ĉi tiun maŝinon
La interface-bloko tenas la propran identecon de ĉi tiu finpunkto. PrivateKey estas tiu identeco kaj neniam forlasas la gastiganton; la kongrua publika ŝlosilo deriviĝas el ĝi kaj ĝin listigas la aliaj peer. ListenPort estas kie ĉi tiu flanko ricevas manpremojn, do du klientoj malantaŭ unu adreso bezonas malsamajn pordojn.
Address estas la tunela adreso, al kiu ĉi tiu gastiganto respondas, skribita kun prefiksa longo ĉar ĝi ankaŭ estos la fonto, kiun ĝi uzos. Erara prefikso ĉi tie ŝanĝas, kiujn celojn la gastiganto konsideras rekte ligitaj, kaj tio produktas malsukcesojn, kiuj aspektas kiel enkursigado anstataŭ agordo.
Ĉio alia en [Interface] bloko kun reala kliento estas kutime aldonata de wg-quick: DNS, MTU, Table, kaj la hokaj linioj. Ili ne estas protokolaj kampoj, kaj nuda wg agordo tute ignoras ilin.
Ĉiu peer-ero priskribas unu alian flankon
Bloko [Peer] estas la fora partio. PublicKey estas la derivita ŝlosilo de tiu partio, neniam ilia privata ŝlosilo, kaj PresharedKey estas laŭvola plia sekreto, kiun ambaŭ flankoj devas teni idente. Endpoint estas kien sendi, kaj PersistentKeepalive petas ĉi tiun gastiganton sendi paketon post la intervalo, kiam nenio alia eliras.
Du eraroj kaŭzas la plejparton de la konfuzo ĉi tie. Kopii vian propran privatan ŝlosilon en peer-blokon igas la du finojn kunhavigi unu identecon, kaj la manpremo malsukcesas tiamaniere, ke ĝi mallbone protokoliĝas. Lasi Endpoint ekstere ĉe kliento kutime estas intenca, ĉar la servilo lernas la adreson el la alvenanta manpremo; lasi ĝin ekstere ĉe servilo, kiu devas iniciati, ne estas. Memoru ankaŭ, ke keepalive tenas NAT-mapadon malfermita, kaj ĝi ne plibonigas trairon nek malpliigas latentecon, do tridek sekundoj da pliaj paketoj aĉetas nenion, kiam trafiko jam fluas.
AllowedIPs estas enkursigado, ne permeslisto
AllowedIPs estas la kriptoŝlosila enkursigado de WireGuard. Elire, ĝi decidas, kiu peer ricevas paketon laŭ ĝia celo. Enire, ĝi decidas, ĉu paketo alvenanta de tiu peer akceptiĝas laŭ ĝia fonto. La sama kampo faras ambaŭ taskojn, tial ĝi ne estas alirkontrola listo kaj ne estas listo de permesitaj retejoj.
Mallarĝa AllowedIPs ĉe la servilo por kliento signifas, ke la servilo akceptos nur paketojn asertantajn tiujn fontojn, kaj sendos nur tiujn celojn al tiu kliento. Larĝigu unu flankon sen larĝigi la alian, kaj vi ricevas tunelon, kiu leviĝas kaj trapasigas nenion.
Kion wg-quick aldonas ĉirkaŭ la protokolo
wg-quick legas la saman dosieron kaj plenumas la retajn paŝojn, kiujn la protokolo lasas al la operaciumo. Ĝi asignas la interface-adreson, aldonas vojojn derivitajn el AllowedIPs, skribas la agordojn de la solvilo kaj rulas la hokajn komandojn laŭvice.
Tiu tavolo klarigas la klasikan malsimetrion. Dosiero kun 0.0.0.0/0 kaj linio DNS donas al kliento defaŭltan vojon kaj solvilon, kaj ĝi faras absolute nenion al la plusendaj aŭ NAT-reguloj de la servilo. Tiuj apartenas al la propra agordo de la servilo, kaj neniu klienta dosiero povas provizi ilin.
Tenu unu posedanton por la dosiero. Redakti ĝin permane dum SaveConfig estas ŝaltita signifas, ke via redakto malaperas la venontan fojon, kiam la interface malleviĝas, kaj la interface ne diros al vi, ke tio okazis.
Kontrolu la aplikitan staton, ne la dosieron
La dosiero estas intenco. La aplikita stato estas tio, kion tenas la kerno, kaj ili diverĝas ĉiam, kiam helpilo, drop-in aŭ hoko redaktis ion post la aktivigo.
Legu la vivan staton kaj la adresadon kune, poste komparu ambaŭ kun tio, kion vi skribis:
sudo wg show
ip -4 addr show dev wg0
ip -4 route show dev wg0
grep -v "^#" /etc/wireguard/wg0.confSe la peer-listo estas malplena, la interface kreiĝis sen aplikiĝo de sia agordo. Se adresoj kaj vojoj ekzistas sed la nombriloj restas ĉe nulo, la dosiero ŝargiĝis kaj la manpremo malsukcesas, kio estas ŝlosila aŭ finpunkta problemo anstataŭ sekcia-orda problemo. Komparu la du vidojn antaŭ redakti, ĉar la breĉo inter ili kutime estas la vera fuŝo.