Dwy beiriant Ubuntu o’r un ddelwedd, un proffil VPN, canlyniadau gwrthgyferbyniol wrth fewngofnodi: ar un mae’r twnnel i fyny cyn i’r bwrdd gwaith ymddangos, ac ar y llall nid yw’n codi byth. Nid y proffil yw’r newidyn yma. Y gwahaniaeth yw pa un o dri chydran a gafodd orchymyn i’w gychwyn, ac nid yw’r tri hynny’n rhannu un switsh.

Mae eu cymharu ochr yn ochr yn gyflymach na dyfalu. Mae pob un yn methu mewn ffordd adnabyddadwy, a dyna sy’n gwneud y gymhariaeth yn werth ei gwneud.

Tri chychwynnydd â thri thrigar gwahanol

Y gwasanaeth openvpn pecyn yw’r llwybr hynaf. Mae ei sgript init yn darllen rhestr hunangychwyn o /etc/default/openvpn. Os yw’r rhestr honno wedi’i sylwebu allan neu wedi’i gadael yn wag, mae’r sgript yn cychwyn pob cyfluniad a geir yn y cyfeiriadur hwnnw yn lle’r un sengl a ychwanegoch. Gall un ffeil a ychwanegwyd ar gyfer un twnnel godi sawl un yn dawel.

StarterWhat triggers itTypical failure
Init script and templated unitsBoot, plus anything in the autostart listStarts every config, not the one you meant
NetworkManager secondaryActivation of the base Wi-Fi or Ethernet profileNothing happens until that base link comes up
Hand-written unit or wrapperWhatever its WantedBy and ExecStart sayRuns a different binary or environment than your shell

Yr ail res yw’r un y mae pobl yn ei ffurfweddu’n anghywir. Mae NetworkManager yn dal y proffil a fewnforiwyd ac yn ei gychwyn, ond dim ond fel eilradd i gysylltiad arall, sy’n golygu bod y trigar yn perthyn i’r cyswllt rhwydwaith yn hytrach na’r VPN.

Cymharwch gost y gosodiad a’r cwmpas

Mae’r llwybr sgript init yn costio un llinell ac yn cwmpasu pob cyfluniad ar y peiriant. Mae hynny’n iawn ar gyfer llwybrydd ac yn anghywir ar gyfer gliniadur sy’n ymuno â rhwydweithiau gwahanol. Mae’r llwybr NetworkManager yn costio chwiliad UUID ac yn clymu’r twnnel i un cysylltiad sylfaenol. Mae’n codi ar rwydwaith y gwaith ac yn aros i lawr ar rwydwaith gwesty.

Mae uned a ysgrifennwyd â llaw yn costio fwyaf ac yn prynu’r rheolaeth fwyaf, gan gynnwys trefnu yn erbyn gwasanaethau eraill. Cwmpas yw’r ffactor penderfynol. Os oes gan y peiriant un rhwydwaith ac un twnnel, mae’r gwasanaeth pecyn yn onest ac yn ragweladwy. Os dylai’r twnnel ddilyn rhwydwaith Wi-Fi penodol, yr eilradd yw’r unig un o’r tri sy’n mynegi’r amod hwnnw heb sgriptio ychwanegol.

Dewiswch un perchennog a symud y lleill

Mae proffil a gychwynnir gan ddau berchennog yn cynhyrchu amseriad sy’n newid rhwng cychwyniadau, sy’n waeth na’r naill ddull ar ei ben ei hun. Dewiswch y perchennog, yna analluogwch y llwybr cystadleuol yn fwriadol yn hytrach nag yn ddamweiniol.

# who is configured to start something?
grep -v '^#' /etc/default/openvpn
systemctl list-units 'openvpn*'
nmcli -g connection.secondaries connection show 'Work Wi-Fi'

# NetworkManager: attach the tunnel to the base link by UUID
TUNNEL=$(nmcli -g UUID connection show 'Corp Tunnel')
nmcli connection modify 'Work Wi-Fi' +connection.secondaries "$TUNNEL"

Os mai’r llwybr pecyn sy’n cael ei ddwyn i ben, gwnewch hynny yn y drefn gywir: gosodwch AUTOSTART i none, rhedegwch systemctl daemon-reload fel bod yr unedau a gynhyrchwyd yn codi’r rhestr newydd, yna analluogwch yr achos templed nad ydych ei eisiau mwyach. Mae hepgor yr ail-lwytho yn gadael yr hen unedau’n weithredol, sy’n edrych fel pe na bai’r newid wedi cael unrhyw effaith.

Mae ataliad sy’n hongian yn broblem ar wahân ag ateb cyfyngedig. Mae TimeoutStopSec yn cyfyngu faint mae systemd yn aros cyn anfon SIGKILL. Ffeil drop-in yw’r lle cywir i’w gosod, oherwydd mae golygu’r uned becyn yn colli’r newid yn yr uwchraddiad nesaf.

Gwiriwch beth a gychwynnwyd mewn gwirionedd

Ailgychwynnwch a darllenwch y dystiolaeth yn lle ymddiried yn y ffeil ffurfweddu. Bydd yr uned sy’n berchen ar y twnnel yn dangos cyflwr gweithredol a stamp amser cychwyn sy’n cyfateb i’r cychwyn, a bydd rhyngwyneb y VPN yn bodoli cyn i chi fewngofnodi.

systemctl is-enabled openvpn-client@office
systemctl status openvpn-client@office --no-pager
nmcli -f GENERAL.STATE,connection.secondaries connection show 'Work Wi-Fi'
ip -brief link show tun0

Mae un gwiriad arall yn perthyn yma: cadarnhewch fod ExecStart yr uned yn cyfeirio at y deuaidd rydych yn meddwl. Mae cleient a luniwyd yn lleol neu becyn snap yn aml angen llwybr penodol neu lapio snap run, oherwydd nid yw systemd yn etifeddu trefn chwilio eich plisgyn. Mae cymharu command -v openvpn â ffeil yr uned yn setlo hynny mewn eiliadau.

Ysgrifennwch y perchennog a ddewiswyd yng nodiadau’r peiriant, wrth ymyl enw’r proffil. Bydd y person nesaf sy’n dadfygio twnnel coll yn dechrau o’r llinell honno yn lle ailadrodd y gymhariaeth.

Erthyglau cysylltiedig