Tunela jaitsita dago, baina makinak oraindik goian egongo balitz bezala jokatzen du: kontsulta bat zintzilik geratzen da denbora-muga agortu arte, eta ibilbide bat jada existitzen ez den interfaze batera seinalatzen du. Hori deskonektatzeko laguntzailea exekutatu gabe hildako openconnect prozesu baten sinadura da. Sortu zuen sare-egoera oraindik instalatuta dago, eta sistemako beste ezerk ez daki nola kendu.

Zeharkatu makina egoera sortu zen ordenan: prozesua, esteka, ibilbidea, resolverra. Urrats bakoitzak esaten du klientea benetan joan den edo zure terminaletik soilik askatu den, eta bereizketa horrek erabakitzen du ea ezer konpondu behar duzun.

Hasi prozesuarekin, ez konfigurazioarekin

Ireki terminal bat eta galdetu zer dabilen oraindik ibilbide bat ukitu aurretik. pgrep -a openconnect instantzia bakoitza bere argumentuekin zerrendatzen du, eta horrek pid fitxategia eta eman zitzaion scripta erakusten ditu. Espero ez zenuen prozesu batek tunel mamua edozein logek baino azkarrago azaltzen du.

Ezer ez badabil, begiratu esteka. ip link show tun0 esaten du interfazeak bizirik iraun duen, eta ip route show dev tun0 oraindik berari lotuta dauden ibilbideak zerrendatzen ditu. Ondoren egiaztatu resolverra honekin resolvectl status. Idatzi hiru irteerak aldatu aurretik, erregistro hori baita geroago sarrera zaharkitu bat berri batetik bereizteko modua.

Desagertzen den interfaze batek normalean bere ibilbideak eramaten ditu. Estekatik bizirik irauten duten ibilbideek normalean esan nahi dute prozesua oraindik bizirik dagoela edo bigarren kliente batek gailua duela.

Laguntzaile scripta da aldaketak desegiten dituena

openconnectek ez du bera interfazea, ibilbideak edo resolver sarrerak kentzen. Kanpoko laguntzaile bat deitzen du, /etc/vpnc/vpnc-script upstream konpilazio batean eta /usr/share/vpnc-scripts/vpnc-script Debian eta Ubuntu paketeetan, honekin aukeratuta -s. Tunela altxatzen duen script bera da hura desmuntatzen duena.

Prozesua laguntzaile hori deitu gabe irteten bada, egoera gelditzen da. OpenConnect eskuliburuak argi dio scriptik gabe bideratzeak eta izen-zerbitzuak ez dutela behar bezala funtzionatuko, eta laguntzailea irteeran interfazearen egoera desmuntatzen duen osagaia dela deskribatzen du. Horregatik da garrantzitsua bidea klientea -s aukerarekin abiarazten duzunean.

Zein seinalek iristen den bide horretara bertsioen artean aldatu zen. 7.06 eskuliburuak SIGTERM irteera berehalakotzat hartzen du, scripta saltatzen duena. Egungo konpilazioek INT eta TERM geldialdi garbitzat dokumentatzen dituzte, non saioa itxi egiten den eta laguntzailea exekutatzen den. Irakurri benetan duzun bitarraren SIGNALS atala, bi jokabideetako edozein suposatu beharrean.

man openconnect | sed -n '/^SIGNALS/,/^LIMITATIONS/p'

Bidali zure konpilazioak dokumentatzen duen seinalea

Seinalea dakizunean, gelditu prozesua pid-aren arabera, ez ereduaren arabera.

pgrep -a openconnect
sudo kill -INT "$(cat /var/run/openconnect.pid)"

Ondoren errepikatu lehen ataleko hiru egiaztapenak, irteera-egoeran fidatu beharrean. ip link show tun0 huts egin beharko luke, ip route show dev tun0 ez luke ezer inprimatuko, eta resolvectl status ez luke VPN esteka gehiago zerrendatuko.

SIGHUP ez da gelditzeko botoi bat: deskonektatu, scripta exekutatu eta saioa honekin berriz has daitekeela uzten du --cookie. SIGUSR2 berehalako berriz konektatzea behartzen du. SIGKILL-ek garbiketa guztiz saltatzen du, eta hori da artikulu honetako gaia den egoera.

Konpondu resolverra resolv.conf ordeztu gabe

Ubuntu sistema gehienetan /etc/resolv.conf systemd-resolved-en esteka sinbolikoa da, ez duzun editatu beharreko fitxategia. Hura ordezteak izen-ebazpena hausten du sare guztietan, ez VPNan soilik. Horren ordez, kendu tunelaren erregistroa:

resolvectl revert tun0
resolvectl query example.com

Sistemak systemd-resolved-en ordez resolvconf erabiltzen badu, interfaze bakoitzeko erregistroa mantentzen da esteka uzteko esaten zaion arte, eta resolvconf -d tun0 baliokide den ekintza da. Egiaztatu zein resolver erabiltzen den komandoa aukeratu aurretik.

Esteka hilaren atzean dagoen zerbitzari batera oraindik zuzenduta dagoen kontsulta zintzilik geratzen da denbora-muga agortu arte, eta atzerapen horrek hondatutako DNS zerbitzari baten itxura du, geratzen den ibilbide baten ordez.

Egin hurrengo deskonexioa aspergarri

Mantendu pid fitxategiaren bidea berdin abioan eta itzaltzean, hau pasatuz --pid-file aldi bakoitzean, edo exekutatu openconnect unitate baten azpian zeinaren KillSignal zure bertsioak dokumentatzen duen seinalearekin bat datorren. Lehen planoan probatzeak laguntzaileak inprimatzen dituen itzaltze-mezuak erakusten dizkizu.

Konektatu, deskonektatu eta exekutatu hiru egiaztapenak behin. Irteera garbi batek ez du VPN estekarik, VPN ibilbiderik ez eta VPN resolver sarrerarik uzten. Hiruetako bat bizirik irauten badu, badakizu zein osagai ez zuen garbitu. Hurrengo ikerketa erantzun horretatik hasten da, zintzilik dagoen kontsulta batetik beharrean.

Erlazionatutako artikuluak