Darllenwch gydweddiad WireGuard linell wrth linell, o Interface i Peer
Mae allweddi Interface yn perthyn i'r pen hwn, allweddi peer i'r ochr arall. Darllenwch bob llinell fel un cyfeiriad, yna cadarnhewch beth ychwanegodd wg-quick o amgylch y protocol.
Nid yw'r rhan fwyaf o gydweddiadau WireGuard sydd wedi torri yn anghywir am werth; maent yn rhoi'r gwerth cywir ar yr ochr anghywir. Mae allwedd breifat yn perthyn i'r peiriant hwn, mae peer yn cario allwedd gyhoeddus y peiriant arall, ac mae cyfeiriad yn eistedd yn y bloc interface er ei fod yn disgrifio lle mae'r twnnel yn byw. Darllenwch y ffeil fel dau gyfeiriad yn cwrdd, yna gwiriwch beth ychwanegodd y sgript gymorth ar ei phen. Mae gan y protocol ei hun lai o feysydd na'r ffeil, ac mae'r rhai ychwanegol yn werth eu gwybod ar wahân.
Mae allweddi interface yn disgrifio'r peiriant hwn
Mae'r bloc interface yn dal hunaniaeth y pen hwn ei hun. PrivateKey yw'r hunaniaeth honno ac ni fydd byth yn gadael y gwesteiwr; mae'r allwedd gyhoeddus gyfatebol yn deillio ohoni a dyna a restrir gan peers eraill. ListenPort yw lle mae'r ochr hon yn derbyn handshakes, felly mae angen portau gwahanol ar ddau gleient y tu ôl i un cyfeiriad.
Address yw cyfeiriad y twnnel y mae'r gwesteiwr hwn yn ateb arno, wedi'i ysgrifennu gyda hyd rhagddodiad oherwydd mai hi hefyd fydd y ffynhonnell a ddefnyddir. Mae cael y rhagddodiad yn anghywir yma yn newid pa gyrchfannau y mae'r gwesteiwr yn credu sydd ar gysylltiad uniongyrchol, sy'n cynhyrchu methiannau sy'n edrych fel llwybreiddio yn hytrach na chyfluniad.
Mae popeth arall mewn [Interface] bloc gyda chleient go iawn fel arfer yn cael ei ychwanegu gan wg-quick: DNS, MTU, Table, a'r llinellau bachyn. Nid ydynt yn feysydd protocol, ac mae wg gosodiad noeth yn eu hanwybyddu'n gyfan gwbl.
Mae pob cofnod peer yn disgrifio un ochr arall
Mae [Peer] bloc yn y parti pell. PublicKey yw allwedd ddeilliadol y parti hwnnw, byth eu hallwedd breifat, ac PresharedKey yw cyfrinach ychwanegol dewisol y mae'n rhaid i'r ddwy ochr ei chadw'n unfath. Endpoint yw lle i anfon, ac mae PersistentKeepalive yn gofyn i'r gwesteiwr hwn anfon pecyn ar ôl y cyfwng pan nad oes dim arall yn mynd allan.
Mae dau gamgymeriad yn cyfrif am y rhan fwyaf o'r dryswch yma. Mae copïo'ch allwedd breifat eich hun i floc peer yn gwneud i'r ddau ben rannu un hunaniaeth, ac mae'r handshake yn methu mewn ffordd sy'n cofnodi'n wael. Mae gadael Endpoint allan ar gleient fel arfer yn fwriadol, oherwydd mae'r gweinydd yn dysgu'r cyfeiriad o'r handshake sy'n dod i mewn; nid yw ei adael allan ar weinydd sy'n gorfod cychwyn felly. Cofiwch hefyd fod keepalive yn cadw mapio NAT yn agored, ac nid yw'n gwella trwybwn nac yn lleihau oedi, felly nid yw trideg eiliad o becynnau ychwanegol yn prynu dim pan fydd traffig eisoes yn llifo.
Llwybreiddio yw AllowedIPs, nid rhestr caniatâd
AllowedIPs yw llwybreiddio cryptokey WireGuard. Allan, mae'n penderfynu pa peer sy'n derbyn pecyn yn seiliedig ar ei gyrchfan. I mewn, mae'n penderfynu a dderbynnir pecyn sy'n cyrraedd o'r peer hwnnw yn seiliedig ar ei ffynhonnell. Mae'r un maes yn gwneud y ddau waith, a dyna pam nad yw'n rhestr rheoli mynediad ac nad yw'n rhestr o wefannau a ganiateir.
Mae AllowedIPs cul ar y gweinydd ar gyfer cleient yn golygu mai dim ond pecynnau sy'n hawlio'r ffynonellau hynny y bydd'r gweinydd yn eu derbyn, a dim ond y cyrchfannau hynny y bydd yn eu hanfon at y cleient hwnnw. Ehangu un ochr heb ehangu'r llall, a chewch dwnnel sy'n codi ac yn pasio dim.
Beth mae wg-quick yn ei ychwanegu o amgylch y protocol
wg-quick yn darllen yr un ffeil ac yn gwneud y camau rhwydwaith y mae'r protocol yn eu gadael i'r system weithredu. Mae'n neilltuo cyfeiriad y rhyngwyneb, yn ychwanegu llwybrau sy'n deillio o AllowedIPs, yn ysgrifennu gosodiadau'r datryswr, ac yn rhedeg y gorchmynion bachyn yn eu trefn.
Mae'r haen honno'n esbonio'r anghymesuredd clasurol. Mae ffeil gyda 0.0.0.0/0 a llinell DNS yn rhoi llwybr diofyn a datryswr i gleient, ac nid yw'n gwneud dim o gwbl i reolau anfon ymlaen na NAT y gweinydd. Mae'r rheini'n perthyn i gyfluniad y gweinydd ei hun, ac ni all unrhyw ffeil cleient eu cyflenwi.
Cadwch un perchennog i'r ffeil. Mae ei golygu â llaw tra bod SaveConfig wedi'i alluogi yn golygu bod eich golygiad yn diflannu'r tro nesaf y bydd y rhyngwyneb yn disgyn, ac ni fydd y rhyngwyneb yn dweud wrthych fod hynny wedi digwydd.
Gwiriwch y cyflwr a gymhwyswyd, nid y ffeil
Ymgais yw'r ffeil. Y cyflwr a gymhwyswyd yw'r hyn y mae'r cnewyllyn yn ei ddal, ac maent yn gwahanu pryd bynnag y bydd cymorth, drop-in neu fachyn wedi golygu rhywbeth ar ôl ei actifadu.
Darllenwch y cyflwr byw a'r cyfeirio gyda'i gilydd, yna cymharwch y ddau â'r hyn a ysgrifennoch:
sudo wg show
ip -4 addr show dev wg0
ip -4 route show dev wg0
grep -v "^#" /etc/wireguard/wg0.confOs yw'r rhestr peer yn wag, crëwyd y rhyngwyneb heb i'w gyfluniad gael ei gymhwyso. Os oes cyfeiriadau a llwybrau ond bod y cownteri'n aros ar sero, llwythwyd y ffeil ac mae'r handshake yn methu, sef problem allwedd neu ben, nid problem trefn adrannau. Cymharwch y ddwy olwg cyn golygu, oherwydd y bwlch rhyngddynt fel arfer yw'r gwall gwirioneddol.