Drepið openconnect: leiðir og DNS vísa enn í göngin
Dautt openconnect-ferli getur skilið eftir uppsettar leiðir og resolver-færslur. Farðu eftir slökkvileiðinni, sendu það merki sem byggingin þín skjalfestir og hreinsaðu.
Göngin eru niðri en vélin hegðar sér enn eins og þau séu uppi: uppfletting hangir þar til hún rennur út, og leið vísar í viðmót sem er ekki lengur til. Þetta er einkenni openconnect-ferlis sem dó án þess að keyra aftengingarhjálparann sinn. Netástandið sem það bjó til er enn uppsett, og ekkert annað í kerfinu veit hvernig á að fjarlægja það.
Farðu í gegnum vélina í þeirri röð sem ástandið var búið til: ferli, tengill, leið, resolver. Hvert skref segir þér hvort biðlarinn sé raunverulega farinn eða aðeins losnaður frá skjáherminum þínum, og sá munur ræður því hvort þú lagir nokkuð yfirhöfuð.
Byrjaðu á ferlinu, ekki stillingunum
Opnaðu skjáhermi og spurðu hvað sé enn í gangi áður en þú snertir leið. pgrep -a openconnect listar hvert tilvik með rökum sínum, sem sýnir pid-skrána og skriftuna sem henni var gefin. Ferli sem þú bjóst ekki við útskýrir draugagöngin hraðar en hvaða log sem er.
Ef ekkert er í gangi skaltu líta á tengilinn. ip link show tun0 segir þér hvort viðmótið lifði af, og ip route show dev tun0 listar leiðir sem eru enn bundnar við það. Athugaðu síðan resolverinn með resolvectl status. Skrifaðu niður allar þrjár útkomurnar áður en þú breytir þeim, því sú skráning er leiðin til að greina úrelta færslu frá nýrri síðar.
Viðmót sem er farið tekur venjulega leiðir sínar með sér. Leiðir sem lifa af tengilinn þýða venjulega að ferlið sé enn á lífi eða að annar biðlari eigi tækið.
Hjálparskriftan er það sem afturkallar breytingarnar
openconnect fjarlægir ekki sjálft viðmótið, leiðirnar eða resolver-færslurnar. Það kallar á ytri hjálpara, /etc/vpnc/vpnc-script í upstream-byggingu og /usr/share/vpnc-scripts/vpnc-script í Debian- og Ubuntu-pökkunum, valinn með -s. Sama skriftan sem reisir göngin er sú sem rífur þau niður.
Ef ferlið hættir án þess að kalla á þann hjálpara stendur ástandið eftir. Handbókin OpenConnect er skýr um að beiningar og nafnaþjónusta muni ekki virka rétt án skriftunnar, og hún lýsir hjálparanum sem þeim hluta sem tekur í sundur ástand viðmótsins við brottför. Þess vegna skiptir leiðin máli þegar þú ræsir biðlarann með -s.
Hvaða merki nær þeirri leið breyttist milli útgáfa. Handbókin fyrir 7.06 líta á SIGTERM sem tafarlausa brottför sem sleppir skriftunni. Núverandi byggingar skjalfesta INT og TERM sem hreina stöðvun, þar sem lotunni er skráð út og hjálparinn keyrir. Lestu SIGNALS-kaflann í þeirri tvíundarskrá sem þú hefur í raun í stað þess að gera ráð fyrir öðru hvoru hegðuninni.
man openconnect | sed -n '/^SIGNALS/,/^LIMITATIONS/p'
Sendu það merki sem byggingin þín skjalfestir
Þegar þú þekkir merkið skaltu stöðva ferlið eftir pid en ekki eftir mynstri.
pgrep -a openconnect
sudo kill -INT "$(cat /var/run/openconnect.pid)"
Endurtaktu síðan þrjár athuganirnar úr fyrsta hluta í stað þess að treysta útgöngustöðunni. ip link show tun0 ætti að mistakast, ip route show dev tun0 ætti ekki að prenta neitt, og resolvectl status ætti ekki lengur að lista VPN-tengilinn.
SIGHUP er ekki stöðvunarhnappur: það aftengir, keyrir skriftuna og lætur lotuna geta haldið áfram með --cookie. SIGUSR2 þvingar tafarlausa endurtengingu. SIGKILL sleppir hreinsuninni algjörlega, og það er einmitt ástandið sem þessi grein fjallar um.
Lagaðu resolverinn án þess að skipta um resolv.conf
Á flestum Ubuntu-kerfum er /etc/resolv.conf táknrænn tengill inn í systemd-resolved, ekki skrá sem þú ættir að breyta. Að skipta henni út brýtur nafnauppflettingu fyrir hvert net, ekki bara VPN. Fjarlægðu skráningu ganganna í staðinn:
resolvectl revert tun0
resolvectl query example.com
Ef kerfið notar resolvconf í stað systemd-resolved varir færslan fyrir hvert viðmót þar til henni er sagt að sleppa tenglinum, og resolvconf -d tun0 er jafngild aðgerð. Athugaðu hvaða resolver er í notkun áður en þú velur skipunina.
Uppfletting sem enn beinist að þjóni bak við dauða tengilinn hangir þar til hún rennur út, og sú töf lítur út eins og bilaður DNS-þjónn frekar en eftirleifð leið.
Gerðu næstu aftengingu leiðinlega
Haltu slóð pid-skrárinnar óbreyttri við ræsingu og slokknun með því að gefa --pid-file í hvert skipti, eða keyrðu openconnect undir unit þar sem KillSignal passar við merkið sem útgáfan þín skjalfestir. Að prófa fyrst í forgrunni sýnir þér slokknunarskilaboðin sem hjálparinn prentar.
Tengdu, aftengdu og keyrðu þrjár athuganir einu sinni. Hrein brottför skilur eftir sig hvorki VPN-tengil, VPN-leið né VPN-resolver-færslu. Ef ein af þremur lifir af veistu nú hvaða hluti hreinsaði ekki. Næsta rannsókn byrjar þá á því svari í stað hangandi uppflettingar.