Automatische VPN-verbinding uitzetten zonder het profiel te verwijderen
NetworkManager verbindt VPN-profielen niet uit zichzelf. De trigger is een secondaries-vermelding op de basisverbinding, en die moet je wijzigen.
Bij elke start komt de tunnel omhoog voordat iemand heeft besloten hem te gebruiken, en het selectievakje dat verantwoordelijk lijkt doet niets als je het leegmaakt. Dat is geen fout in de interface. NetworkManager verbindt VPN-profielen niet uit zichzelf; een VPN start omdat een basisverbinding hem bij naam noemt. De oplossing zit op het andere profiel, en het is één eigenschap.
De vlag die je leegmaakt wordt niet geraadpleegd
Het VPN-profiel heeft een eigen eigenschap voor automatisch verbinden, en voor VPN-verbindingen gebruikt de beheerder die niet om iets te starten. Hem leegmaken zorgt dat het profiel consistent leest en verandert geen gedrag, en dat is precies waarom de verrassing de bewerking overleeft.
Het gedocumenteerde mechanisme is een lijst met secundaire verbindingen op het basisprofiel. Wanneer de Wi-Fi- of Ethernet-verbinding activeert, activeert de beheerder ook de VPN-UUID's die daar staan. Vandaag worden in die lijst alleen VPN-verbindingen ondersteund, en bevat hij meerdere vermeldingen, dan raakt één bewerking ze allemaal.
Prioriteit voor automatisch verbinden rangschikt kandidaten; ook dat is geen uitschakelaar.
Lees de twee profielen voordat je bewerkt
Noteer eerst namen, UUID's en typen, want weergegeven namen herhalen zich en de basisverbinding is makkelijk te verwarren met de VPN. Lees daarna de eigenschappen die aan elke kant belangrijk zijn.
nmcli -f NAME,UUID,TYPE connection show
nmcli -f connection.secondaries connection show "Wired connection 1"
nmcli -f connection.autoconnect,connection.autoconnect-priority connection show "Work VPN"
In de grafische editor verschijnen dezelfde waarden onder andere labels. Het tabblad General van de basisverbinding bevat de instelling voor automatisch verbinden en, als de plug-in is geïnstalleerd, de optie om een VPN ermee op te halen. Een vertaald bureaublad kan het prioriteitsveld labelen als automatische verbinding met prioriteit, wat niet de aan-uitschakelaar is. De twee verwarren levert een leeggemaakt vakje en een onveranderde start op.
Verwijder één vermelding, niet de hele lijst
De eigenschap is een lijst, dus een nieuwe waarde toewijzen vervangt alles erin. Gebruik de voorafgaande min om één UUID te verwijderen en de rest van de lijst intact te laten.
nmcli connection modify uuid BASE_UUID -connection.secondaries VPN_UUID
nmcli -f connection.secondaries connection show "Wired connection 1"
Controleer de lijst voor en na, vooral op een machine die van een tweede VPN afhangt.
Profielen kunnen tot bepaalde gebruikers beperkt worden. Als dat zo is, moet het account van waaruit je bewerkt op die lijst staan; anders kan de opdracht geweigerd worden, of schrijft de beheerder een apart profiel per gebruiker dat de oorspronkelijke eigenaar nooit ziet. Controleer de eigenaar voordat je concludeert dat een bewerking niets deed, want een stille kopie per gebruiker verklaart veel verwarrende resultaten.
Test een echte overgang, geen handmatige herstart
De basisverbinding opnieuw verbinden is de betekenisvolle test. Haal hem omlaag en omhoog, of herstart, en kijk dan naar de actieve lijst, de interfacelijst en een routeopzoeking voor een intern adres.
nmcli connection show --active
ip -brief address
ip route get 10.8.0.1
Als de tunnel nog verschijnt, is de resterende eigenaar meestal een script. Het journaal van de beheerder laat zien welk profiel wanneer is geactiveerd, en de dispatcher-map is de plek waar een hook zou wonen die nmcli connection up aanroept bij een interfacegebeurtenis. Een hook is onzichtbaar in de profieleditor, en daarom overleeft hij elk selectievakje-experiment.
Houd het handmatige pad werkend, want dat is de echte eis.
Hoe een goed resultaat eruitziet
Het profiel blijft geïnstalleerd met zijn gateway, certificaat en inloggegevens. Het activeert niet bij de start en het komt omhoog wanneer je erom vraagt. Die drie uitspraken zijn de acceptatietest.
Schrijf de UUID van de basisverbinding in de runbook, want dat is het profiel dat je de volgende keer bewerkt.
Een VPN die beschikbaar maar niet automatisch is, is een configuratiekeuze en geen ontbrekende functie, en hij is één eigenschap verwijderd.