Openconnect ëmbruecht: d’Routen an DNS weisen nach ëmmer op den Tunnel
En doudegen openconnect-Prozess kann installéiert Routen an Resolver-Andräg hannerloossen. Gitt de Wee vum Ausschalten duerch, schéckt de Signal, deen Äre Build dokumentéiert, a raumt op.
Den Tunnel ass erof, awer d’Maschinn verhält sech nach ëmmer wéi wann en uewen ass: eng Ufro hängt bis se an den Timeout leeft, an eng Route weist an en Interface, deen et net méi gëtt. Dat ass d’Signature vun engem openconnect-Prozess, deen gestuerwen ass, ouni säin Trennhëllef auszeféieren. Den Netzwierkzustand, deen en erstallt huet, ass nach ëmmer installéiert, an näischt anescht am System weess, wéi een en ewechhëlt.
Gitt d’Maschinn an der Rei duerch, an där de Zustand erstallt gouf: Prozess, Link, Route, Resolver. All Schrëtt seet Iech, ob de Client wierklech fort ass oder sech just vun Ärem Terminal ofgekuppelt huet, an deen Ënnerscheed entscheet, ob Dir iwwerhaapt eppes reparéiert.
Fänkt mam Prozess un, net mat der Konfiguratioun
Maacht en Terminal op a freet, wat nach leeft, ier Dir eng Route beréiert. pgrep -a openconnect listet all Instanz mat hiren Argumenter op, wat d’pid-Datei an de Skript weist, deen hir ginn ass. En Prozess, deen Dir net erwaart hutt, erkläert den Fantomtunnel méi séier wéi all Log.
Wann näischt leeft, kuckt de Link un. ip link show tun0 seet Iech, ob den Interface iwwerlieft huet, an ip route show dev tun0 listet Routen op, déi nach un en gebonnen sinn. Da kontrolléiert de Resolver mat resolvectl status. Schreift all dräi Ausgabe virum Änneren op, well dee Rekord ass de Wee, wéi Dir méi spéit en ale vun engem neien Andrag ënnerscheet.
En Interface, deen fort ass, hëlt normalerweis seng Routen mat sech. Routen, déi de Link iwwerliewen, bedeiten normalerweis, datt de Prozess nach lieft oder en zweeten Client d’Apparat huet.
De Hëllefsskript ass dat, wat d’Ännerungen zréckrollt
openconnect hëlt den Interface, d’Routen oder d’Resolver-Andräg net selwer ewech. Et rifft en externen Hëllef un, /etc/vpnc/vpnc-script an engem Upstream-Build an /usr/share/vpnc-scripts/vpnc-script an den Debian- an Ubuntu-Päck, gewielt mat -s. Dee selwechte Skript, deen den Tunnel opstellt, ass deen, deen en ofbaut.
Wann de Prozess erausgeet, ouni deen Hëllef ze ruffen, bleift de Zustand. OpenConnect-Handbuch sot ausdrécklech, datt Routing an Nummendéngscht ouni de Skript net richteg funktionéieren, an et beschreift den Hëllef als de Komponent, deen de Zustand vum Interface beim Erausgoen ofbaut. Dofir ass de Wee wichteg, wann Dir de Client mat -s.
Wéi ee Signal dee Wee erreecht, huet sech tëscht Versiounen geännert. D’Handbuch vun 7.06 behandelt SIGTERM als direkt Erausgoen, dat de Skript iwwerspréngt. Aktuell Buiwen dokumentéieren INT an TERM als propper Stopp, wou d’Sessioun ofgemellt gëtt an den Hëllef leeft. Liest d’Sektioun SIGNALS vun der Binärdatei, déi Dir tatsächlech hutt, amplaz eng vun deenen zwee Verhalen unzehuelen.
man openconnect | sed -n '/^SIGNALS/,/^LIMITATIONS/p'
Schéckt de Signal, deen Äre Build dokumentéiert
Wann Dir de Signal kennt, stoppt de Prozess iwwer d’pid an net iwwer de Muster.
pgrep -a openconnect
sudo kill -INT "$(cat /var/run/openconnect.pid)"
Widderhëlt duerno déi dräi Kontrollen aus dem éischten Deel, amplaz dem Exit-Status ze vertrauen. ip link show tun0 sollt feelen, ip route show dev tun0 sollt näischt ausdrécken, an resolvectl status sollt de VPN-Link net méi oplëschten.
SIGHUP ass keen Stopknäppchen: et trennt d’Verbindung, féiert de Skript aus a léisst d’Sessioun weiderféierbar mat --cookie. SIGUSR2 zwingt eng direkt Neiverbindung. SIGKILL iwwerspréngt d’Aufräumen komplett, an dat ass genee dee Zustand, ëm deen et an dësem Artikel geet.
Reparéiert de Resolver, ouni resolv.conf ze ersetzen
Op de meeschten Ubuntu-Systemer ass /etc/resolv.conf e symbolesche Link an systemd-resolved, keng Datei, déi Dir sollte beaarbechten. En z’ersetzen brécht d’Nummensopliesung fir all Netzwierk, net just fir d’VPN. Entfernt amplaz d’Registréierung vum Tunnel:
resolvectl revert tun0
resolvectl query example.com
Wann de System resolvconf amplaz systemd-resolved benotzt, bleift den Andrag pro Interface, bis him gesot gëtt, de Link lasszeloossen, an resolvconf -d tun0 ass déi gläichwäerteg Aktioun. Kontrolléiert, wéi ee Resolver benotzt gëtt, ier Dir de Kommando auswielt.
Eng Ufro, déi nach op e Server hannert dem doudegen Link zilt, hängt bis se an den Timeout leeft, an déi Delai gesäit aus wéi en defekten DNS-Server an net wéi eng Reschtroute.
Maacht den nächsten Trennen langweileg
Halt de Wee vun der pid-Datei beim Start an beim Ausschalten identesch, andeems Dir --pid-file all Kéier gitt, oder fuerdert openconnect ënner enger Unit aus deren KillSignal zum Signal passt, deen Är Versioun dokumentéiert. Fir d’éischt am Virdergrond testen weist Iech d’Ausschaltmeldungen, déi den Hëllef dréckt.
Verbind, trennt a féiert déi dräi Kontrollen eng Kéier aus. En propperen Exit hannerléisst weder e VPN-Link, nach eng VPN-Route, nach en VPN-Resolver-Andrag. Wann een vun den dräi iwwerlieft, wësst Dir elo, wéi ee Komponent net opgeraumt huet. Déi nächst Enquête fänkt dann un där Äntwert un amplaz bei enger hänkender Ufro.