DNS OpenVPN yn aros ar ôl SIGKILL: edrychwch ar y perchennog yn gyntaf
Ni all SIGKILL redeg bachyn down OpenVPN, ond gall systemd-resolved ollwng DNS fesul cyswllt beth bynnag. Penderfynwch beth a ddychwelodd, pwy sy'n berchen ar y datryswr, a beth sy'n weddill.
Mae DNS yn peidio â datrys ar ôl i gleient OpenVPN gael ei ladd, a'r reddf gyntaf yw ailysgrifennu /etc/resolv.conf. Gall y golygiad hwnnw dorri datryswr sy'n gweithio tra bo'r gwir gyflwr hen yn rhywle arall. Y cwestiwn i'w setlo gyntaf yw pwy sy'n berchen ar y gosodiadau DNS a osododd y tiwnel, ac a oedd y gadael a neidiodd y glanhau yn bwysig mewn gwirionedd.
Mae tri amod yn penderfynu'r atgyweiriad: yr arwydd a ddaeth â'r broses i ben, y gydran datryswr a dderbyniodd y gosodiadau, ac a yw cyswllt y tiwnel yn dal i fodoli. Atebwch nhw yn y drefn honno ac mae'r cywiriad fel arfer yn dilyn heb gyffwrdd â ffeil fyd-eang.
Penderfynwch pa fath o adael a ddigwyddodd
Yn y rhifyn Community o OpenVPN, mae SIGINT a SIGTERM ill dau yn geisiadau i adael yn raddol. Ni ellir dal SIGKILL: ni ellir ei rwystro na'i drin, felly nid oes gan unrhyw arferiad cau gyfle i redeg. Mae Ctrl+C arferol mewn terfynell blaen yn cynhyrchu SIGINT, tra bod goruchwyliwr sy'n rhoi'r gorau i aros fel arfer yn uwchgyfeirio i SIGKILL. Mae'r gwahaniaeth yn bwysig oherwydd mai dim ond yr ail achos sy'n gwarantu bod y bachynnau wedi'u neidio.
Nid yw rhedeg y tu mewn i screen neu tmux yn newid pa arwydd y mae Ctrl+C yn ei anfon. Gwiriwch beth a gafodd y broses mewn gwirionedd yn hytrach na beth y mae'r derfynell yn ei wneud fel arfer.
Pan fydd gwasanaeth neu reolwr cysylltiadau yn rhedeg y tiwnel, stopiwch y cysylltiad hwnnw drwy ei berchennog yn hytrach na lladd y pid. Gall rheolwr godi'r broses eto, gan adael tiwnel newydd a chyflwr datryswr dryslyd gennych. Dim ond cais terfynu arferol sydd ei angen ar broses annibynnol er mwyn i'r glanhau redeg.
Penderfynwch pwy sy'n berchen ar y datryswr
Mae systemd-resolved, sgript ar ddull resolvconf ac ailysgrifennu ffeil syml yn dri pherchennog gwahanol. Mae'r cyntaf yn cadw gosodiadau fesul cyswllt yn y cof ac yn eu gollwng pan fydd y rhyngwyneb yn diflannu. Mae'r ail yn cadw cofnodion sy'n para nes bod rhywbeth yn eu dileu. Mae'r trydydd yn ysgrifennu ffeil ac yn gadael yr adferiad i'r sawl a'i hysgrifennodd.
Adnabyddwch y perchennog cyn dewis gorchymyn atgyweirio. Mae gan yr un symptom dri ateb cywir gwahanol yn dibynnu ar ba un sy'n cael ei ddefnyddio.
Efallai bod VPN a reolir gan NetworkManager eisoes yn berchen ar newidiadau'r datryswr. Mae ychwanegu ail gymorthwr ar ei ben yn creu dau berchennog yn cystadlu dros yr un cyswllt, ac mae cyflwr y collwr yn ailymddangos wrth yr ailgysylltu nesaf. Os rheolwr sydd wrth y llyw, trwsiwch y gosodiad yn y rheolwr yn hytrach nag mewn sgript.
Beth all bachyn down ei wneud a beth na all
Mae'r down sgript yn rhedeg unwaith y bydd dyfais TUN/TAP wedi cau. Mae ychwanegu down-pre yn gwrthdroi'r drefn honno ac yn rhedeg y sgript tra bo'r ddyfais yn dal i fodoli, sy'n ofynnol gan gymorthwyr sydd angen y cyswllt byw.
Nid yw'r naill gyfarwyddyd na'r llall yn gwneud i fachyn redeg ar ôl SIGKILL. Nid yw breintiau'n cael eu hadfer gan down-pre chwaith: os bydd y daemon yn gostwng i user neu group neu'n mynd i mewn i chroot, mae'r bachyn yn rhedeg gyda pha bynnag fynediad a adewir ganddo. Gall bachyn a alwyd fethu o hyd ag uwchraddio'r datryswr. Mae'r cyfeirlyfr OpenVPN yn ymdrin â'r arwyddion a chylch bywyd yr alwad yn ôl.
Gwiriwch wall y bachyn ei hun wrth ymyl statws gadael y broses. Mae glanhau ar goll a glanhau wedi methu yn edrych yr un peth yn y datryswr ac yn wahanol yn y logiau.
Gwiriwch y cyflwr sy'n aros mewn gwirionedd
Ar system sy'n defnyddio systemd-resolved, mae resolvectl status yn dangos pa gyswllt sy'n dal i gario gweinyddion DNS y VPN neu barthau llwybro. Gall y cyswllt hwnnw berthyn i gysylltiad sydd wedi mynd, neu i diwnel arall sy'n dal i fod i fyny.
Mae rhyngwyneb sy'n diflannu yn mynd â'i ffurfweddiad fesul cyswllt gydag ef, felly gall bachyn a neidiwyd gydfodoli â DNS glân. Os yw'r cyswllt yn dal i fod wedi'i gofrestru ac yn eiddo'n gyfan gwbl i'r cysylltiad a stopiwyd, dylai'r rheolwr sy'n berchen arno ei dynnu. Os oedd sgript hŷn wedi ailysgrifennu ffeil ddatryswr fyd-eang, chwiliwch am gam adfer dogfennol y sgript honno yn lle hynny.
Adferwch heb ddwyn cyswllt arall
Pan fo gosodiadau fesul cyswllt yn eiddo i chi i'w rheoli, mae resolvectl revert yn cymryd enw'r cyswllt ac yn clirio ffurfweddiad DNS amser rhedeg ar gyfer y rhyngwyneb hwnnw. Gweithred amser rhedeg yw hi yn hytrach na golygiad proffil, felly mae ffurfweddiad cysylltiad parhaus yn aros heb ei gyffwrdd. Enwch y cyswllt anghywir ac fe gliriwch DNS ar gyfer tiwnel sy'n gweithio, a dyna pam mae'r enw'n dod o allbwn y statws.
Cadarnhewch fod /etc/resolv.conf yn ddolen symbolaidd a reolir cyn ei golygu, yna stopiwch y cleient yn arferol unwaith eto ac edrychwch ar DNS eto. Os bydd yr ail stopio yn glanhau, y broblem gynharach oedd y gadael gorfodol yn hytrach na'r ffurfweddiad.