Handaki limezimwa, lakini mashine bado ina tabia kana kwamba limewashwa: utafutaji huning'inia hadi muda wake uishe, na njia inaelekeza kwenye kiolesura kisichokuwepo tena. Hii ni alama ya mchakato wa openconnect uliokufa bila kuendesha msaidizi wake wa kukatisha muunganisho. Hali ya mtandao iliyoizalisha bado imesakinishwa, na hakuna kitu kingine kwenye mfumo kinachojua jinsi ya kuiondoa.

Pitia mashine kwa mpangilio ambao hali iliundwa: mchakato, kiungo, njia, resolver. Kila hatua inakuambia kama mteja ameondoka kweli au amejitenga tu kutoka kwenye terminal yako, na tofauti hiyo huamua kama unapaswa kurekebisha chochote.

Anza na mchakato, si usanidi

Fungua terminal na uulize ni nini bado kinaendelea kabla ya kugusa njia. pgrep -a openconnect huorodhesha kila kisa pamoja na hoja zake, jambo ambalo linaonyesha faili ya pid na script iliyopewa. Mchakato usioutarajia hueleza handaki la kizuka kwa haraka kuliko logi yoyote.

Ikiwa hakuna kinachoendelea, angalia kiungo. ip link show tun0 inakuambia kama kiolesura kilinusurika, na ip route show dev tun0 huorodhesha njia ambazo bado zimefungwa kwake. Kisha angalia resolver kwa resolvectl status. Andika matokeo yote matatu kabla ya kuyabadilisha, kwa sababu rekodi hiyo ndiyo njia ya kutofautisha baadaye ingizo lililopitwa na wakati na jipya.

Kiolesura kinachotoweka kawaida huondoa njia zake pamoja nacho. Njia zinazobaki baada ya kiungo kawaida humaanisha kuwa mchakato bado uko hai au kwamba mteja wa pili anamiliki kifaa.

Script msaidizi ndiyo inayobatilisha mabadiliko

openconnect yenyewe haiondoi kiolesura, njia au maingizo ya resolver. Inaita msaidizi wa nje, /etc/vpnc/vpnc-script katika build ya upstream na /usr/share/vpnc-scripts/vpnc-script katika vifurushi vya Debian na Ubuntu, iliyochaguliwa kwa -s. Script ile ile inayoinua handaki ndiyo inayolibomoa.

Ikiwa mchakato unatoka bila kuita msaidizi huyo, hali inabaki. mwongozo wa OpenConnect unasema waziwazi kwamba uelekezaji na huduma ya majina hayatafanya kazi ipasavyo bila script, na unaelezea msaidizi kama sehemu inayobomoa hali ya kiolesura wakati wa kutoka. Ndiyo sababu njia ni muhimu unapoanzisha mteja kwa -s.

Ishara ipi inayofikia njia hiyo ilibadilika kati ya matoleo. Mwongozo wa 7.06 unachukulia SIGTERM kama kutoka kwa haraka kunakoruka script. Build za sasa zinaandika INT na TERM kama kusimama safi, ambapo kikao kinatolewa na msaidizi anaendesha. Soma sehemu ya SIGNALS ya binary uliyo nayo kweli badala ya kudhani mojawapo ya tabia hizo mbili.

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

Tuma ishara ambayo build yako inaithibitisha

Mara unapojua ishara, simamisha mchakato kwa pid na si kwa muundo.

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

Kisha rudia ukaguzi tatu za sehemu ya kwanza badala ya kuamini hali ya kutoka. ip link show tun0 inapaswa kushindwa, ip route show dev tun0 haipaswi kuchapisha chochote, na resolvectl status haipaswi kuorodhesha tena kiungo cha VPN.

SIGHUP si kitufe cha kusimamisha: inakatisha, inaendesha script na kuacha kikao kiweze kuendelezwa kwa --cookie. SIGUSR2 inalazimisha kuunganishwa tena mara moja. SIGKILL inaruka usafishaji kabisa, na hiyo ndiyo hali ambayo makala hii inazungumzia.

Rekebisha resolver bila kubadilisha resolv.conf

Katika mifumo mingi ya Ubuntu /etc/resolv.conf ni kiungo cha mfano kwenye systemd-resolved, si faili unayopaswa kuhariri. Kuibadilisha huvunja utatuzi wa majina kwa kila mtandao, si VPN pekee. Badala yake, ondoa usajili wa handaki:

resolvectl revert tun0
resolvectl query example.com

Ikiwa mfumo unatumia resolvconf badala ya systemd-resolved, ingizo la kila kiolesura hubaki hadi liambiwe liachilie kiungo, na resolvconf -d tun0 ni hatua sawia. Angalia ni resolver ipi inatumika kabla ya kuchagua amri.

Utafutaji unaoelekea seva iliyo nyuma ya kiungo kilichokufa huning'inia hadi muda wake uishe, na ucheleweshaji huo unaonekana kama seva ya DNS iliyovunjika badala ya njia iliyobaki.

Fanya kukatisha muunganisho ijayo kuwa kunachosha

Weka njia ya faili ya pid sawa wakati wa kuanza na kuzima kwa kutoa --pid-file kila mara, au endesha openconnect chini ya unit ambayo KillSignal inalingana na ishara ambayo toleo lako linathibitisha. Kujaribu kwanza mbele kunakuonyesha ujumbe wa kuzima ambao msaidizi huchapisha.

Ungana, katisha muunganisho na uendesha ukaguzi tatu mara moja. Kutoka safi hakuachi kiungo cha VPN, njia ya VPN au ingizo la resolver ya VPN. Ikiwa mmoja wa watatu atanusurika, sasa unajua sehemu ipi ilishindwa kusafisha. Uchunguzi unaofuata huanza kutoka jibu hilo badala ya utafutaji unaoning'inia.

Makala zinazohusiana