Dy makina Ubuntu nga i njëjti imazh, një profil VPN, rezultate të kundërta në hyrje: në njërën tuneli është ngritur para se të shfaqet desktopi, në tjetrën nuk ngrihet kurrë. Profili nuk është ndryshorja këtu. Ajo që ndryshon është cilit prej tre komponentëve iu dha urdhri ta nisë, dhe ata tre nuk ndajnë një ndërprerës.

Krahasimi i tyre krah për krah është më i shpejtë se hamendësimi. Secili prej tyre dështon në një mënyrë të dallueshme, dhe pikërisht kjo e bën krahasimin të vlefshëm.

Tre nisës me tre shkaqe të ndryshme

Shërbimi openvpn i paketuar është rruga më e vjetër. Skripti i tij init lexon një listë autostart nga /etc/default/openvpn. Nëse ajo listë është komentuar ose lënë bosh, skripti nis çdo konfigurim që gjen në atë drejtori në vend të atij të vetmit që shtuat. Një skedar i shtuar për një tunel mund të ngrejë disa në heshtje.

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

Rreshti i dytë është ai që njerëzit e konfigurojnë gabimisht. NetworkManager mban profilin e importuar dhe do ta nisë, por vetëm si dytësor i një lidhjeje tjetër, që do të thotë se shkasi i përket lidhjes së rrjetit dhe jo VPN-së.

Krahasoni koston e konfigurimit dhe shtrirjen

Rruga e skriptit init kushton një rresht dhe mbulon çdo konfigurim në makinë. Kjo është e duhur për një ruter dhe e gabuar për një laptop që lidhet me rrjete të ndryshme. Rruga e NetworkManager kushton një kërkim UUID dhe e lidh tunelin me një lidhje bazë. Ngrihet në SSID-në e punës dhe mbetet poshtë në një rrjet hoteli.

Një unit i shkruar me dorë kushton më shumë dhe jep kontrollin më të madh, përfshirë renditjen ndaj shërbimeve të tjera. Shtrirja është faktori vendimtar. Nëse makina ka një rrjet dhe një tunel, shërbimi i paketuar është i ndershëm dhe i parashikueshëm. Nëse tuneli duhet të ndjekë një rrjet Wi-Fi të caktuar, dytësori është i vetmi nga të tre që e shpreh atë kusht pa skriptim shtesë.

Zgjidhni një pronar dhe hiqni të tjerët

Një profil i nisur nga dy pronarë prodhon një kohëzim që ndryshon midis nisjeve, çka është më keq se secili prej mekanizmave vetëm. Zgjidhni pronarin, pastaj çaktivizoni rrugën konkurruese me qëllim dhe jo aksidentalisht.

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

Nëse rruga që tërhiqet është ajo e paketuara, bëjeni në rendin e duhur: vendosni AUTOSTART në none, ekzekutoni systemctl daemon-reload që unit-et e krijuara të marrin listën e re, pastaj çaktivizoni instancën shabllon që nuk e doni më. Nëse kaloni ringarkimin, unit-et e vjetra mbeten aktive, dhe duket sikur ndryshimi nuk pati asnjë efekt.

Një ndalim që varet është problem i veçantë me një përgjigje të kufizuar. TimeoutStopSec kufizon sa kohë pret systemd para se të dërgojë SIGKILL. Një skedar drop-in është vendi i duhur për ta vendosur, sepse redaktimi i unit-it të paketuar e humb ndryshimin në përditësimin tjetër.

Verifikoni çka nisi në të vërtetë

Rinisni dhe lexoni provat në vend që t’i besoni skedarit të konfigurimit. Unit-i që zotëron tunelin do të tregojë një gjendje aktive dhe një vulë kohe nisjeje që përputhet me nisjen, dhe ndërfaqja VPN do të ekzistojë para se të hyni.

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

Këtu hyn një kontroll më shumë: konfirmoni që ExecStart i unit-it tregon binarin që mendoni. Një klient i përpiluar lokalisht ose një paketë snap shpesh kërkon një shteg të qartë ose një mbështjellës snap run, sepse systemd nuk trashëgon rendin e kërkimit të shell-it tuaj. Krahasimi i command -v openvpn me skedarin e unit-it e zgjidh këtë në sekonda.

Shkruani pronarin e zgjedhur në shënimet e makinës, pranë emrit të profilit. Personi tjetër që do të korrigjojë një tunel që mungon do të nisë nga ai rresht në vend që të përsërisë krahasimin.

Artikuj të ngjashëm