Firwat stierft OpenVPN, wann den Laptop opwächt?
Schlof kann d'OpenVPN-Sessioun ëmbréngen an tun0 hannerloossen. Test den Tunnel, a start dann d'Eenheet aus engem systemd-Schlofhook nei, net den Apparat.
Setzt d'Maschinn an de Schlof, wéckt se op a kontrolléiert dann dräi Saachen an dëser Reiefolleg, ier Dir eng Konfiguratioun beréiert: ob tun0 nach existéiert, ob d'Route zu enger interner Adress nach ëmmer hien auswielt, an ob de Server dëse Peer nach ëmmer oplëscht. En Apparat, dee Schlof iwwerlieft, wärend d'Route soss wouhi weist, ass e Rescht, keen Tunnel. Wann d'Route richteg ass an den Traffic trotzdem stierft, sëtzt de Fehler iwwer dem Tunnel an en Neistart vum Client ännert dat net. D'Automatiséierung vun engem Neistart huet nëmmen Sënn, nodeems en handgemaachten Test gewisen huet, wéi ee vun deenen dräi Fäll Dir hutt.
ip -br address show tun0
ip route get 10.20.0.10
journalctl -u openvpn-client@office -b --no-pager | tail -30
Reproduzéiert den Opwächen, ier Dir et automatiséiert
De Schlof beendet d'verschlësselte Sessioun méi dacks, wéi en den Apparat ewechhëlt. Den UDP-Floss, deen den Tunnel lieweg gehal huet, hält op, de Server kann de Peer fale loossen, an de Client entweder merkt et a verbënnt sech nees oder hält eng Interface ouni eppes hannert sech. Eng Interfacekontroll eleng beweist wéineg, well en ale Apparat gesäit genee aus wéi een, deen funktionéiert bis Pakete missen duerch en duerch. Führt d'Routenoofro an eng richteg Ufro duerch den Tunnel aus a liest dann de Journal ronderëm den Ament vum Opwächen.
Wann de Client vu selwer zréckkënnt, bäit eng Hook Belaaschtung dobäi amplaz Zouverlässegkeet. Wann en sech ni erhëlt, ass d'Automatiséierung déi éierlech Léisung.
Wou en systemd-Schlofhook tatsächlech wunnt
Vill eeler Guide weisen op /etc/pm/sleep.d, en Dossier, dee pm-utils gehéiert an deen en systemd-baséierte Schlof ni consultéiert. systemd liest Hooks aus /usr/lib/systemd/system-sleep/ an /etc/systemd/system-sleep/, gëtt fir d'éischt d'Phas an duerno d'Operatioun weider, also sinn pre an post déi eenzeg Wäerter, op déi eng Hook sech verzweigt. Halt déi lokal Kopie ënner /etc amplaz eng verpackte Fichier ze änneren, a vergiess net, datt de Skript als root an der Mëtt vum Iwwergang leeft, also muss en séier zréckkommen.
#!/bin/sh
case "$1" in
post)
systemctl --no-block try-restart [email protected]
;;
esac
exit 0
try-restart beréiert eng Eenheet nëmmen, wann se schonn aktiv ass, also bleift en Tunnel, deen Dir bewosst ofgeschalt hutt, iwwer den Opwächen ofgeschalt. --no-block verhënnert, datt d'Hook waart, während de Client verhandelt, wat zielt, wann d'Netz nach net uewen ass. Zesumme bedeiten déi zwou Fändelen eng Hook, déi stëll feelt, amplaz déi ganz Opwächsequenz opzehalen. Wann d'Eenheet schonn gestoppt ass, geschitt iwwerhaapt näischt, an dat ass genee dat Resultat, wat Dir do wëllt.
Stellt den Déngscht erëm hier, loosst tun0 a Rou
Wann Dir tun0 vun Hand erofhëlt, iwwerwaacht den Daemon eng Interface, déi him net méi gehéiert, an déi nächst Zoustandsaarbecht produzéiert verwirrend Feeler. Zielt op den Déngscht oder säi Verbindungsprofil amplaz op d'Interface; kontrolléiert fir d'éischt den exakten Numm vun der Eenheet, well Distributiounspakken, OpenVPN 3 an NetworkManager all verschidde wielen. En NetworkManager-Profil kënnt zréck, wann dës Verbindung zyklesch gemaach gëtt, also ass d'systemd-Eenheet do net d'Zil. Wat och ëmmer de Mechanismus ass, et sollt déiselwecht Aktioun sinn, déi Dir vun Hand iwwerpréift hutt.
En Neistart installéiert d'Routen nei, déi de Client beim Verbannen erausgedréckt huet. Déi meeschten Opwächen wëllen dat. Eng Maschinn, wou Dir eegen Weeër dobäi gesat hutt, net, also kontrolléiert déi nei, amplaz unzehuelen, d'Erhuelung hätt se zréckgesat, a schreift se do op, wou den nächsten Opwächen se fanne kann.
Behandelt den Timing, deen Dir net kontrolléiert
D'Drahtlosassociatioun an DHCP fäerdeg dacks, nodeems d'Hook gelaf ass, also kann en Neistart feelen, während nach kee Wee zum Server existéiert. Waart kuerz op déi Adress, probéiert et nach eng Kéier a loggt d'Resultat.
D'Nimmopliesung ass en eegene Course, well den Netzwierkstack vum Desktop DNS erëm hierstelle kann, nodeems den Tunnel schonn uewen ass. Test d'Ufroen eleng mat resolvectl query internal.example amplaz se aus enger funktionéierender Route ofzeleeden. En Tunnel, dee richteg routéiert an näischt opléisst, ass e DNS-Problem, keen Hookproblem.
Halt d'Entscheedung vun der Hook sichtbar, andeems Dir d'Phas, den Numm vun der Eenheet an d'Resultat an de Journal schreift. Notéiert an den Notize vun der Maschinn, wéi en Opwächtest Dir ausgefouert hutt, sou datt eng funktionéierend Erhuelung vun enger glécklecher ënnerscheet ka ginn. Wielt déi mannst stéierend Aktioun, déi den Déngscht zréckbréngt, a loosst e Client, dee sech vu selwer erhëlt, dat maachen. E kompletten Neistart verwërft Sessiounen am Gaang, wat ee richtege Käschtepunkt op engem Laptop ass, deen e puer Mol den Dag opwächt.