WireGuard PersistentKeepalive: cadwch fapiad NAT yn fyw
Os yw’r cysylltiad gwrthdro yn gweithio dim ond yn syth ar ôl i’r cymar anfon traffig, mae’r mapiad yn dod i ben. Gosodwch keepalive y tu ôl i’r llwybrydd, yna darllenwch y terfyn amser go iawn.
Mae blwch y cartref yn agor y twnnel ac yn cyrraedd y gweinydd cwmwl heb drafferth. Gall y gweinydd cwmwl gyrraedd yr ap cartref am funud neu ddwy ar ôl i flwch y cartref anfon rhywbeth ddiwethaf, ac yna mae’n stopio. Nid yw unrhyw beth yn ymddangos yn lòg WireGuard, ni adroddir unrhyw wall ysgydwad llaw, ac mae ailgychwyn y twnnel yn ei drwsio am gyfnod byr. Mae’r patrwm hwnnw yn fapiad sy’n dod i ben, nid yn dwnnel wedi torri, ac mae’r llawlyfr isod yn cadarnhau hynny cyn newid unrhyw beth.
Cadarnhewch mai’r patrwm yw dod i ben oherwydd segurdod
Y manylyn sy’n gwahaniaethu yw amseru. Os yw’r cysylltiad gwrthdro yn gweithio’n syth ar ôl i’r cymar cartref anfon traffig ac yn methu ar ôl cyfnod tawel, mae’r llwybr yn iawn ac nid yw’r cyflwr yn y canol. Os na weithiodd erioed, hyd yn oed yn syth ar ôl traffig, mae hyn yn ddiagnosis anghywir.
sudo wg show wg0 latest-handshakes
sudo wg show wg0 endpoints
sudo wg show wg0 transfer
Rhedwch y ddau gyntaf yn syth ar ôl i’r cymar cartref anfon rhywbeth, arhoswch bum munud, a’u rhedwch eto. Mae stamp amser ysgydwad llaw sy’n adnewyddu yn ôl yr amserlen heb ben draw newydd yn dweud wrthych fod y twnnel yn fyw. Yr hyn a newidiodd yw gallu pecynnau digymell i gyrraedd o’r tu allan, sy’n nodwedd o’r llwybr yn hytrach na’r twnnel.
Yna gwnewch gynnig gwrthdro a gwyliwch y cyfrifwyr trosglwyddo. Os yw ochr y cwmwl yn anfon beitiau ac ochr y cartref yn derbyn dim, mae’r pecyn wedi gadael y cwmwl ac wedi marw mewn dyfais sy’n cadw cyflwr ar y ffordd. Dyna’r llofnod rydych chi’n chwilio amdano. Os yw’r ddau gyfrifydd yn symud, mae’r twnnel wedi danfon y pecyn a’r ap yw’r sawl dan amheuaeth.
Rhowch y keepalive ar y cymar y tu ôl i’r llwybrydd
Mae keepalive parhaus yn cadw mapiad NAT ac unrhyw gyflwr mur tân yn fyw trwy anfon pecyn bach dilysedig yn ôl amserlen. Mae’r gosodiad yn perthyn i’r peiriant y tu ôl i’r llwybrydd, yn ei gofnod ar gyfer y cymar pell, oherwydd dyna’r ochr y mae ei phecyn allan yn creu’r cyflwr.
[Peer]
PublicKey = <cloud peer public key>
AllowedIPs = 10.71.0.1/32
PersistentKeepalive = 25
Cyfunwch ef â’r adran cymar bresennol. Nid yw ychwanegu ail floc â’r un allwedd gyhoeddus yn ffordd ddilys o ychwanegu opsiynau, ac ni fydd wg-quick yn eu cyfuno ar eich rhan. Mae’r 25 eiliad a ddogfenwyd yn enghraifft a ddewiswyd i fod o dan derfynau amser UDP cyffredin, nid gwerth ag unrhyw ystyr arbennig.
Nid yw rhoi’r un cyfarwyddeb ar ochr y cwmwl yn helpu’r broblem hon. Mae pecynnau’r cymar hwnnw eisoes yn cyrraedd o gyfeiriad cyhoeddus, felly nid oes mapiad i’w gadw yn y cyfeiriad sy’n bwysig. Mae’n ychwanegu traffig ac yn newid dim.
Darllenwch yr amseryddion yn lle dyfalu cyfwng
Mae keepalive yn gweithio oherwydd eu bod yn cyrraedd yn amlach na’r cyflwr yn dod i ben. Mae hynny’n gwneud y terfyn amser yn y rhif rydych chi wir ei angen, ac ar Linux mae’n ddarllenadwy ar y ddyfais sy’n gwneud y cyfieithu:
sysctl net.netfilter.nf_conntrack_udp_timeout
sysctl net.netfilter.nf_conntrack_udp_timeout_stream
sudo conntrack -L -p udp --dport 51820
Y gwerth cyntaf yw’r terfyn amser ar gyfer llif UDP a welwyd mewn un cyfeiriad yn unig, a’r ail yn berthnasol unwaith y gwelwyd atebion. Mae’r ddau fel arfer yn fyr, a bydd mapiad sy’n distewi yn dilyn yr hyn sy’n berthnasol i’ch llif.
Cymharwch y rhif hwnnw â’ch cyfwng. Mae keepalive o 25 eiliad o dan derfyn 30 eiliad yn gweithio; nid yw’r un keepalive o dan derfyn 15 eiliad yn gweithio. Nid oes unrhyw faint o ailgeisio yn newid y rhifyddeg honno. Mae rhai llwybryddion defnyddwyr a chludwyr symudol yn defnyddio gwerthoedd llawer byrrach na rhagosodiad Linux, a dyna pam mae ffurfweddiad sy’n gweithio ar un rhwydwaith yn methu ar un arall.
| Observation | What it means | Reasonable response |
|---|---|---|
| Works after traffic, dies when idle | Mapping or firewall state expiring | Lower the keepalive interval |
| Never works, even immediately | No return route, listener or firewall | Stop tuning keepalive |
| Works for hours, then dies once | Carrier-side translation or address change | Check the endpoint and logs together |
Gwiriwch y gwrandawr a’r mur tân ar wahân
Mae mapiad byw yn angenrheidiol ac yn annigonol. Rhaid i’r ap ar flwch y cartref wrando ar y cyfeiriad cywir, a rhaid i fur tân y gwesteiwr ganiatáu’r pecyn ar ôl ei ddatgryptio.
sudo ss -lntup | grep 8080
sudo wg show wg0 allowed-ips
curl -sS -m 5 http://10.71.0.2:8080/health
Os yw’r soced wedi’i rwymo i gyfeiriad y rhyngwyneb ffisegol yn unig yn hytrach na chyfeiriad y twnnel, mae pecynnau’n cyrraedd ar y twnnel yn cael eu gollwng cyn i’r mur tân gael ei ymgynghori. Mae’r methiant hwn yn edrych yn union yr un fath â phroblem fapio o ochr y cwmwl, ac mae’n goroesi pob addasiad keepalive.
Mae gwiriad y rhestr a ganiateir yr un mor bwysig yn y cyfeiriad arall. Rhaid i gymar y cwmwl ganiatáu cyfeiriad twnnel y cartref fel ffynhonnell os yw am ateb, a rhaid i gymar y cartref ganiatáu cyfeiriad y cwmwl fel cyrchfan. Mae pecynnau keepalive yn draffig dilysedig ac yn arfer yr un rheolau, a dyna pam y gall keepalive sy’n ymddangos yn gweithio gyd-fodoli ag ap nad yw’n gweithio.
Cyflwynwch y newid a gwybod ei derfynau
Gosodwch y gosodiad, ailgychwynnwch y rhyngwyneb os dyna eich dull diweddaru, ac yna ailadroddwch y prawf segurdod yn hytrach na’r prawf uniongyrchol. Arhoswch yn hirach na’r terfyn amser a ddarllenwyd gennych yn gynharach, gwnewch gais gwrthdro, a chadarnhewch fod y cyfrifwyr wedi symud ar y ddau ben.
Cofnodwch y cyfwng a’r terfyn amser a fesurwyd wrth ei ymyl. Gall newid yn y dyfodol i firmware’r llwybrydd, neu symud i gysylltiad symudol, newid y terfyn amser. Y nodyn sy’n caniatáu i rywun ailddeillio’r gwerth yn lle ei gopïo. Mae dau rif ar un llinell yn arbed ymchwiliad cyfan yn ddiweddarach.
Mae keepalive parhaus yn diogelu cyflwr. Nid ydynt yn agor porth, nid ydynt yn ychwanegu cofnod i’r rhestr a ganiateir, ac nid ydynt yn gwneud i wrandawr ymddangos. Pan nad yw’r cysylltiad gwrthdro yn gweithio o gwbl, mae’r bai yn un o’r tri hynny, ac mae cyd-ddechrau cyflym WireGuard yn disgrifio’r gosodiad keepalive yn yr un termau cul.