Ẹ̀rọ Ubuntu méjì láti inú àwòrán kan náà, profáìlì VPN kan, àbájáde òdì kejì nígbà ìwọlé: lórí ọ̀kan, ọ̀nà abẹ́lẹ̀ ti gòkè ṣáájú kí ojú-iṣẹ́ ó farahàn; lórí èkejì, kò gòkè rárá. Profáìlì kì í ṣe ohun tí ó ń yípadà níbí. Ìyàtọ̀ ni pé èwo nínú ẹ̀ka mẹ́ta ni a pàṣẹ fún láti dá a sílẹ̀, àwọn mẹ́ta náà kò sì pín ìtẹ̀ mọ́ra kan.

Fífi wọ́n wé pọ̀ ní ẹ̀gbẹ́ yá kíákíá ju ṣíṣe àfojúsùn. Ọ̀kọ̀ọ̀kan wọn kùnà ní ọ̀nà tí a lè dá mọ̀, ìyẹn sì ni ó mú kí ìfiwéra náà yẹ.

Àwọn olùdásílẹ̀ mẹ́ta pẹ̀lú ohun ìdánilẹ́kọ̀ọ́ mẹ́ta

Iṣẹ́ openvpn tí a kó sínú àpò ni ọ̀nà tí ó pẹ́ jùlọ. Script init rẹ̀ ń ka àkójọ ìbẹ̀rẹ̀ aládàáṣe láti /etc/default/openvpn. Bí àkójọ yẹn bá jẹ́ àṣírí tàbí kí a fi í sílẹ̀ lófò, script yóò dá gbogbo ìṣètò tí ó bá rí nínú àpò yẹn sílẹ̀ dípò ọ̀kan ṣoṣo tí o fi kún. Fáìlì kan tí a fi kún fún ọ̀nà abẹ́lẹ̀ kan lè gbé ọ̀pọ̀ ró ní ìdákẹ́jẹ́.

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

Ìlà kejì ni àwọn ènìyàn ń ṣètò ní ọ̀nà tí kò tọ́. NetworkManager ń di profáìlì tí a kó wọlé mú yóò sì dá a sílẹ̀, ṣùgbọ́n kìkì gẹ́gẹ́ bí ẹlẹ́ẹ̀kejì ìsopọ̀ mìíràn, ìyẹn ni pé ohun ìdánilẹ́kọ̀ọ́ náà jẹ́ ti ìsopọ̀ nẹ́tíwọ́kì kì í ṣe ti VPN.

Fi iye ìṣètò àti àyíká wé

Ọ̀nà script init ń gba ìlà kan ṣoṣo ó sì bo gbogbo ìṣètò lórí ẹ̀rọ. Ìyẹn dára fún router, kò sì dára fún kọ̀mpútà amóhùnmáwòrán tí ó ń wọ oríṣiríṣi nẹ́tíwọ́kì. Ọ̀nà NetworkManager ń gba wíwá UUID kan ó sì so ọ̀nà abẹ́lẹ̀ mọ́ ìsopọ̀ ìpìlẹ̀ kan. Ó ń gòkè lórí SSID iṣẹ́, ó sì ń wà ní ìsàlẹ̀ lórí nẹ́tíwọ́kì òtẹ́ẹ̀lì.

Unit tí a kọ pẹ̀lú ọwọ́ ń ná jùlọ ó sì ń fúnni ní ìṣàkóso jùlọ, pẹ̀lú ìtòlẹ́sẹẹsẹ sí àwọn iṣẹ́ mìíràn. Àyíká ni ohun tí ó pinnu. Bí ẹ̀rọ bá ní nẹ́tíwọ́kì kan àti ọ̀nà abẹ́lẹ̀ kan, iṣẹ́ tí a kó sínú àpò jẹ́ òtítọ́, a sì lè retí rẹ̀. Bí ọ̀nà abẹ́lẹ̀ yẹn bá ní láti tẹ̀lé nẹ́tíwọ́kì Wi-Fi pàtó kan, ẹlẹ́ẹ̀kejì ni ọ̀kan ṣoṣo nínú mẹ́ta tí ó ń fi ipò yẹn hàn láìsí script àfikún.

Yan olóhun kan kí o sì yọ àwọn yòókù kúrò

Profáìlì tí olóhun méjì ń dá sílẹ̀ ń mú àkókò tí ó ń yípadà láàrín ìbẹ̀rẹ̀ jáde, ìyẹn burú ju ọ̀kọ̀ọ̀kan àwọn ọ̀nà náà lọ. Yan olóhun náà, kí o sì fi àfọwọ́kọ́ pa ọ̀nà ìdíje náà, kì í ṣe lójijì.

# 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"

Bí ọ̀nà tí a ń yọ kúrò bá jẹ́ ti àpò, ṣe é ní ìtòlẹ́sẹẹsẹ tí ó tọ́: ṣètò AUTOSTART sí none, ṣe systemctl daemon-reload kí àwọn unit tí a dá lè gba àkójọ tuntun, lẹ́yìn náà pa ẹ̀dà àwòkọ́ṣe tí o kò nílò mọ́ náà mọ́. Bí a bá fojú fo ìtúnṣe, àwọn unit àtijọ́ yóò wà ní ìgbònú, yóò sì dàbí ẹni pé ìyípadà náà kò ní ipa.

Ìdúró tí ó ń kọ́kọ́rọ́ jẹ́ ìṣòro ọ̀tọ̀ pẹ̀lú ìdáhùn tí ó ní ààlà. TimeoutStopSec ń fi ààlà sí bí systemd yóò dúró pẹ́ tó kí ó tó rán SIGKILL. Fáìlì drop-in ni ibi tí ó tọ́ láti ṣètò rẹ̀, nítorí ṣíṣe àtúnṣe sí unit àpò yóò padánu ìyípadà ní ìgbéga tókàn.

Ṣàyẹ̀wò ohun tí ó kúkú bẹ̀rẹ̀

Tún ẹ̀rọ ṣe kí o sì ka ẹ̀rí dípò gbígbẹ́kẹ̀lé fáìlì ìṣètò. Unit tí ó ni ọ̀nà abẹ́lẹ̀ yóò fi ipò alágbára àti àmì àkókò ìbẹ̀rẹ̀ tí ó bá ìbẹ̀rẹ̀ mu hàn, wíwọlé VPN yóò sì wà kí o tó wọlé.

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

Ìgbéléwọ̀n mìíràn tún yẹ níbí: ṣàyẹ̀wò pé ExecStart unit ń tọ́ka sí binary tí o ń rò. Ẹ̀rọ aláṣẹ́ tí a kó níbílẹ̀ tàbí àpò snap sábà nílò ọ̀nà tí ó ṣe kedere tàbí ìbòjú snap run, nítorí systemd kì í jogún ìtòlẹ́sẹẹsẹ wíwá shell rẹ. Fífi command -v openvpn wé fáìlì unit yóò yanjú rẹ̀ ní ìṣẹ́jú àáyá.

Kọ olóhun tí o yàn sínú àwọn àkọsílẹ̀ ẹ̀rọ, lẹ́gbẹ̀ẹ́ orúkọ profáìlì. Ẹni tókàn tí yóò ṣàtúnṣe ọ̀nà abẹ́lẹ̀ tí ó sọnù yóò bẹ̀rẹ̀ láti ìlà yẹn dípò àtúnṣe ìfiwéra náà.

Àwọn àpilẹ̀kọ tó jọra