Tá an tollán síos, ach tá an meaisín fós ag iompar mar a bheadh sé suas: seasann cuardach go dtí go rachaidh sé in am, agus dírítear ród chuig comhéadan nach bhfuil ann a thuilleadh. Is é sin síniú próisis openconnect a fuair bás gan a chúntóir dícheangail a rith. Tá an staid líonra a chruthaigh sé fós suiteáilte, agus níl a fhios ag aon rud eile ar an gcóras conas í a bhaint.

Siúil an meaisín san ord inar cruthaíodh an staid: próiseas, nasc, ród, réititheoir. Insíonn gach céim duit an bhfuil an cliant imithe i ndáiríre nó nach bhfuil sé ach dícheangailte ó do theirminéal, agus socraíonn an t-idirdhealú sin an ndéanfaidh tú rud ar bith a dheisiú.

Tosaigh leis an bpróiseas, ní leis an gcumraíocht

Oscail teirminéal agus fiafraigh cad atá ag rith fós sula ndéanfaidh tú teagmháil le ród. pgrep -a openconnect liostaíonn sé gach cás lena argóintí, rud a thaispeánann an comhad pid agus an script a tugadh dó. Míníonn próiseas nár thug tú súil leis an tollán síofrach níos tapúla ná aon log.

Mura bhfuil aon rud ag rith, féach ar an nasc. ip link show tun0 insíonn sé duit ar mhair an comhéadan, agus ip route show dev tun0 liostaíonn sé róid atá fós ceangailte leis. Ansin seiceáil an réititheoir le resolvectl status. Scríobh síos na trí aschur sula n-athraíonn tú iad, mar is é an taifead sin an bealach a ndéanfaidh tú idirdhealú níos déanaí idir iontráil shean agus ceann nua.

De ghnáth tógann comhéadan atá imithe a chuid róid leis. Ciallaíonn róid a mhaireann an nasc de ghnáth go bhfuil an próiseas fós beo nó go bhfuil an gléas ag dara cliant.

Is é an script cúntóra a chealaíonn na hathruithe

Ní bhaineann openconnect an comhéadan, na róid ná iontrálacha an réititheora féin. Glaonn sé cúntóir seachtrach, /etc/vpnc/vpnc-script i mbunú upstream agus /usr/share/vpnc-scripts/vpnc-script i bpacáistí Debian agus Ubuntu, roghnaithe le -s. Is é an script céanna a ardaíonn an tollán a scarann é.

Má fhágann an próiseas gan an cúntóir sin a ghlaoch, fanann an staid. Tá lámhleabhar OpenConnect soiléir nach n-oibreoidh ródú agus seirbhís ainmneacha i gceart gan an script, agus cuireann sé síos ar an gcúntóir mar an chomhpháirt a dhíscaoileann staid an chomhéadain ar éalú. Sin é an fáth a bhfuil tábhacht leis an gcosán nuair a sheolann tú an cliant le -s.

D’athraigh an comhartha a shroicheann an cosán sin idir leaganacha. Measann lámhleabhar 7.06 gur éalú láithreach é SIGTERM a scipeálann an script. Doiciméadaíonn built reatha INT agus TERM mar stopadh glan, ina ndéantar an seisiún a logáil amach agus ina ritheann an cúntóir. Léigh an roinn SIGNALS den dénár atá agat i ndáiríre in ionad ceachtar iompair a ghlacadh.

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

Seol an comhartha a dhoiciméadaíonn do bhuil

Nuair a bheidh an comhartha ar eolas agat, stop an próiseas de réir pid seachas de réir patrúin.

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

Ansin déan na trí sheiceáil ón gcéad roinn arís in ionad brath ar stádas an éalaithe. ip link show tun0 ba cheart go dteipfeadh, ip route show dev tun0 nár cheart aon rud a phriontáil, agus resolvectl status nár cheart an nasc VPN a liostú a thuilleadh.

Ní cnaipe stopa é SIGHUP: dícheanglaíonn sé, ritheann sé an script agus fágann sé an seisiún in-athsheoltar le --cookie. Cuireann SIGUSR2 iachall ar athnascadh láithreach. Scipeálann SIGKILL an glanadh go hiomlán, agus sin go beacht an staid a bhfuil an t-alt seo faoi.

Deisigh an réititheoir gan resolv.conf a athsholáthar

Ar fhormhór na gcóras Ubuntu is /etc/resolv.conf nasc siombalach isteach i systemd-resolved é, ní comhad ar cheart duit a chur in eagar. Má athsholáthraíonn tú é, bristear réiteach ainmneacha do gach líonra, ní hamháin don VPN. Bain clárú an tolláin ina ionad sin:

resolvectl revert tun0
resolvectl query example.com

Má úsáideann an córas resolvconf seachas systemd-resolved, fanann an taifead in aghaidh an chomhéadain go dtí go ndéarfaí leis an nasc a scaoileadh, agus resolvconf -d tun0 is é an gníomh comhionann é. Seiceáil cén réititheoir atá in úsáid sula roghnaíonn tú an t-ordú.

Seasann cuardach atá fós dírithe ar fhreastalaí taobh thiar den nasc marbh go dtí go rachaidh sé in am, agus is cosúil leis an moill sin le freastalaí DNS briste seachas le ród fágtha.

Déan an chéad dícheangal eile leadránach

Coinnigh cosán an chomhaid pid mar an gcéanna ag am tosaithe agus múchta trí --pid-file a chur gach uair, nó rith openconnect faoi aonad a bhfuil a KillSignal ag teacht leis an gcomhartha a dhoiciméadaíonn do leagan. Taispeánann tástáil sa tulra ar dtús duit na teachtaireachtaí múchta a phriontálann an cúntóir.

Ceangail, dícheangail agus rith na trí sheiceáil uair amháin. Ní fhágann éalú glan aon nasc VPN, aon ród VPN ná aon iontráil réititheora VPN. Má mhaireann ceann de na trí, tá a fhios agat anois cén chomhpháirt nár ghlan. Tosaíonn an chéad imscrúdú eile ansin ón bhfreagra sin seachas ó chuardach atá ar crochadh.

Ailt ghaolmhara