Setzt eng Reconnectkommando an de Schlofhook an de Problem gesäit geléist aus. En ass just geléist wann den Hook leeft nodeems de Reseau existéiert, als eng Identitéit déi de Client erkennt, iwwer e Wee deen de Client wierklech ëmsetzt. Déi meescht Feeler nom Erwächen sinn eng vun deenen dräi, an keen dovunner erschéngt als Feeler am Hook selwer. Den Hook gëtt esouwisou Erfolleg zréck.

En Skript deen mat null erauskënnt huet dir näischt doriwwer gesot ob en Tunnel zréckkomm ass.

Den Hook leeft, an dann?

#!/bin/sh
case "$1" in
  pre)
    vpn-client disconnect
    ;;
  post)
    vpn-client connect
    ;;
esac

All Evenement rufft den Hook zweemol op, virun an nom Iwwergang, an iwwergëtt him d'Phase an den Numm vum Evenement. En leeft als root mat engem minimale Ëmfeld, dofir sinn absolut Weeër noutwendeg an et soll keng Variabel vun enger Desktop-Sessioun erwaart ginn. Datt béid Opruffer séier zréckkommen seet just datt de Skript gelaf ass. Ob de Profil duerno eropkomm ass, ass eng separat Observatioun an brauch säin eegent Beweis am Log.

Behandelt d'Phaseargument als Deel vum Design. En Reconnectversuch an der pre-Phase geschitt wärend d'Maschinn alles amgaang ass ze verléieren, an en kann net geléngen.

Root, minimalt Ëmfeld, falsche Benotzer

Wann de Client säin Login-Token pro Benotzer hält, léisst den Hook als root et ouni eppes ze presentéieren. Kontrolléiert den Zoustand ënner der Identitéit déi den Hook wierklech benotzt, net déi Dir vun engem Desktop-Terminal getest hutt. E puer Builds loossen och en Daemon zréck deen d'Interface nom Trennen hält, sou datt en Reconnect an enger aler Zoustand landt, an d'Prozess virun ze raumen restauréiert en op de Käschte vun engem onsauberen Ofschalten. Keent vun deenen zwee Verhalen ass sichtbar wann Dir just de gléckleche Wee test.

Schreift den Hook mat absoluten Weeër, haalt en am Besëtz vum root a lafbar, a loggt wat en gemaach huet. Ouni dee Log fänkt déi nächst Enquête bei null un.

Autoconnect ass net de VPN-Wee

NetworkManager bitt zwee Aktivéierungsmechanismen: eng Autoconnect-Flag um Profil, a sekundär Verbindungen déi starten wann e primäre Profil aktivéiert gëtt. Native Gerätstypen ëmsetze déi éischt; VPN-Plugins hunn historesch just déi zweet ëmgesat, dofir kann d'Autoconnect op engem OpenVPN-Profil ze markéieren guer keng Auswierkung hunn. Inspizéiert béid Proprietéiten, a befestegt dann de VPN als Sekundär vum Wi-Fi oder Ethernet-Profil.

[Unit]
PartOf=NetworkManager.service
Requires=NetworkManager-wait-online.service
After=NetworkManager-wait-online.service

Eng WireGuard-Interface déi vun enger systemd-Eenheet geréiert gëtt brauch deen Drop-in amplaz vun engem Hook, bestallt nodeems de Reseau online ass.

Waart op de Reseau, mat enger Caps

timer=1
while ! ping -c1 -n -w1 203.0.113.1 >/dev/null; do
  sleep 1; timer=$((timer+1))
  [ $timer -ge 300 ] && exit 0
done
nmcli connection up "work-vpn"

Beim Erwächen kann den Tunnel ugefrot ginn wärend Wi-Fi nach ëmmer sech nei associéiert, wat all fixe Schlof zu enger Vermutung mécht. Waart op eng erreechbar Adress, hieft dann de Profil, a begrenzt d'Waarden sou datt en Hook de Wee vum Erwächen net onbestëmmt op kann halen. Bevorzugt den Numm vum Profil virun engem numereschen Index, a wann de richtegen Profil je nom Reseau variéiert, loosst den gesonden Tunnel seng Wiel virdru an eng Datei schreiwen.

Schützt Iech och géint Restartstuerm, andeems Dir Versich zielt an ophält. En Watchdog deen op all feelgeschloen Proef reagéiert mécht aus engem Ausfall eng Schläif.

Suspendéiert eemol, a liest dann de Journal fir d'eegen Ausgab vum Hook. Dat ass den eenzegen Test deen d'Reiefolleg beweist.

Ähnlech Artikelen