Basahin ang WireGuard config linya per linya, mula Interface hanggang Peer
Ang mga key ng Interface ay sa dulong ito, ang mga key ng peer ay sa kabilang panig. Basahin ang bawat linya bilang isang direksyon, pagkatapos tingnan kung ano ang idinagdag ng wg-quick sa paligid ng protocol.
Karamihan ng sirang WireGuard config ay hindi mali sa halaga; inilalagay nila ang tamang halaga sa maling panig. Ang pribadong key ay sa makinang ito, ang peer ay nagdadala ng pampublikong key ng kabilang makina, at ang address ay nakaupo sa interface block kahit inilalarawan nito kung saan nakatira ang tunnel. Basahin ang file bilang dalawang direksyong nagtatagpo, pagkatapos tingnan kung ano ang idinagdag ng helper script sa itaas. Ang protocol mismo ay may mas kaunting field kaysa sa file, at ang dagdag ay dapat malaman nang hiwalay.
Inilalarawan ng mga key ng interface ang makinang ito
Hawak ng interface block ang sariling pagkakakilanlan ng dulong ito. PrivateKey ay ang pagkakakilanlang iyon at hindi kailanman lumalabas sa host; ang katugmang pampublikong key ay hinango rito at iyon ang inililista ng ibang peers. ListenPort ay kung saan tumatanggap ang panig na ito ng handshake, kaya dalawang kliyente sa likod ng isang address ay kailangan ng magkaibang port.
Address ay ang address ng tunnel na sinasagot ng host na ito, isinulat na may haba ng prefix dahil ito rin ang pinagmulang gagamitin. Ang maling prefix dito ay nagbabago kung aling mga destinasyon ang itinuturing ng host na direktang konektado, at iyon ay gumagawa ng mga pagkabigo na mukhang routing at hindi configuration.
Lahat ng iba sa isang [Interface] block na may tunay na kliyente ay karaniwang idinadagdag ng wg-quick: DNS, MTU, Table, at ang mga hook line. Hindi ito mga field ng protocol, at ang hubad na wg setup ay tuluyang binabalewala ang mga ito.
Inilalarawan ng bawat peer entry ang isa pang panig
Isang [Peer] block ay ang malayong panig. PublicKey ay ang hinangong key ng panig na iyon, hindi kailanman ang kanilang pribadong key, at PresharedKey ay isang opsyonal na dagdag na lihim na dapat pareho ang hawak ng dalawang panig. Endpoint ay kung saan magpapadala, at PersistentKeepalive ay hinihiling sa host na ito na magpadala ng packet pagkatapos ng agwat kapag wala nang ibang lumalabas.
Dalawang pagkakamali ang nagpapaliwanag sa karamihan ng kalituhan dito. Ang pagkopya ng sarili mong pribadong key sa isang peer block ay ginagawang isang pagkakakilanlan ang dalawang dulo, at ang handshake ay nabibigo sa paraang mahirap i-log. Endpoint ang pag-iwan nito sa labas sa isang kliyente ay karaniwang sinasadya, dahil natututuhan ng server ang address mula sa papasok na handshake; ang pag-iwan nito sa labas sa isang server na kailangang magsimula ay hindi. Tandaan din na pinananatiling bukas ng keepalive ang isang NAT mapping, at hindi nito pinapabuti ang throughput o binabawasan ang latency, kaya tatlumpung segundong dagdag na packet ay walang binibili kapag dumadaloy na ang traffic.
Ang AllowedIPs ay routing, hindi listahan ng pahintulot
AllowedIPs ay ang crypto-key routing ng WireGuard. Palabas, nagpapasya ito kung aling peer ang tatanggap ng packet batay sa destinasyon. Papasok, nagpapasya ito kung tatanggapin ang packet mula sa peer na iyon batay sa pinagmulan. Ang parehong field ay gumagawa ng dalawang gawain, kaya hindi ito listahan ng access control at hindi listahan ng pinapayagang website.
Isang makitid na AllowedIPs sa server para sa isang kliyente ay nangangahulugang tatanggapin lang ng server ang mga packet na nagsasabing galing sa mga pinagmulang iyon, at ipapadala lang ang mga destinasyong iyon sa kliyenteng iyon. Palawakin ang isang panig nang hindi pinalalawak ang isa, at makakakuha ka ng tunnel na bumabangon at walang pinapasang kahit ano.
Ano ang idinadagdag ng wg-quick sa paligid ng protocol
wg-quick binabasa ang parehong file at ginagawa ang mga hakbang sa network na iniiwan ng protocol sa operating system. Itinatalaga nito ang address ng interface, nagdadagdag ng mga ruta na hinango sa AllowedIPs, isinusulat ang mga setting ng resolver at pinapatakbo ang mga hook command sa pagkakasunod-sunod.
Ipinapaliwanag ng layer na iyon ang klasikong asimetriya. Ang file na may 0.0.0.0/0 at linyang DNS ay nagbibigay sa kliyente ng default na ruta at resolver, at wala itong ginagawa sa mga patakaran ng forwarding o NAT ng server. Ang mga iyon ay sa sariling configuration ng server, at walang file ng kliyente ang makapagbibigay ng mga iyon.
Panatilihin ang isang may-ari ng file. Ang mano-manong pag-edit nito habang SaveConfig ay naka-enable ay nangangahulugang mawawala ang iyong pag-edit sa susunod na bumaba ang interface, at hindi ka sasabihan ng interface na nangyari iyon.
Suriin ang inilapat na estado, hindi ang file
Ang file ay isang layunin. Ang inilapat na estado ang hawak ng kernel, at naghihiwalay sila sa tuwing may helper, drop-in o hook na nag-edit ng isang bagay pagkatapos ng activation.
Basahin ang live na estado at ang addressing nang magkasama, pagkatapos ihambing ang dalawa sa isinulat mo:
sudo wg show
ip -4 addr show dev wg0
ip -4 route show dev wg0
grep -v "^#" /etc/wireguard/wg0.confKung walang laman ang listahan ng peer, ginawa ang interface nang hindi inilalapat ang configuration nito. Kung may mga address at ruta ngunit nananatiling zero ang mga counter, na-load ang file at nabibigo ang handshake, na isang problema sa key o dulo at hindi sa pagkakasunod-sunod ng seksyon. Ihambing ang dalawang view bago mag-edit, dahil ang agwat sa pagitan ng mga ito ang karaniwang tunay na depekto.