OpenVPN Connect kontra OpenVPN GUI: var Windows lagrar profiler
Två Windows-klienter, två profilmodeller: GUI listar .ovpn-filer från en mapp, Connect har ett importlager. Ta sedan bort eller importera korrekt.
I Windows har frågan "var är min OpenVPN-profil" två olika svar, och att välja fel kostar en eftermiddag. Community-OpenVPN GUI behandlar en mapp som sin profillista: varje .ovpn-fil i den konfigurerade mappen visas i menyn i aktivitetsfältet, och en fil som tas bort från mappen försvinner. OpenVPN Connect arbetar från ett importlager, så det behåller en profil du raderat från disken och ignorerar en fil du kopierat in. Jämförelsen nedan är den jag använder för att avgöra vilken mapp jag ska öppna innan jag rör något.
En mapplista kontra ett importlager
Community-GUI:n räknar upp filer vid start: den läser en konfigurationsmapp, vald vid installationen, och en .ovpn-fil som ligger där är en profil. Stäng klienten, kopiera en fil till mappen, starta den igen, och posten finns i menyn.
Connect bygger istället sin lista från poster som skrevs vid importen, så en kopierad fil är osynlig medan en importerad profil överlever raderingen av den ursprungliga nedladdningen. Just den enda skillnaden förklarar de flesta rapporterna om att de två klienterna lagrar profiler på olika ställen, för det gör de.
Community-GUI:n: vilken mapp som faktiskt används
Två mappar spelar roll. En installation per användare läser %USERPROFILE%\OpenVPN\config; en installation för alla användare läser C:\Program Files\OpenVPN\config, eller x86-sökvägen när klienten är 32-bit. Om en profil bara visas för ett Windows-konto ligger den i mappen per användare och det andra kontot kommer aldrig att se den.
Härled inte sökvägen från installationsprogrammet. GUI:n accepterar ett --config_dir-argument och minns mappen den startades med, så en genväg kan peka någon helt annanstans. Kontrollera genvägens mål och fältet Start in, eller GUI-inställningarna, innan du skapar någon fil.
Borttagning är filborttagning. Stäng GUI:n först så att den inte håller posten i minnet, radera .ovpn tillsammans med eventuella certifikat- eller nyckelfiler bredvid, och starta sedan klienten igen.
Mappen för alla användare kräver borttagning med förhöjda rättigheter. En borttagning som tyst inte gör något där är UAC, inte en klientbugg.
Connect: importlagret och den dubbla AppData-fällan
Nuvarande 2.x- och 3.x-byggen lagrar profiler under %APPDATA%\OpenVPN Connect\profiles. Byggen runt 2.5 använde istället %ProgramFiles(x86)%\OpenVPN Technologies\OpenVPN Client\etc\profile, vilket är varför äldre och nyare forumsvar verkar motsäga varandra. En maskin som uppgraderats på plats kan fortfarande ha båda.
Sökvägarna förvanskas när de återberättas. %AppData% löses redan ut till AppData\Roaming, så att skriva %AppData%\Roaming\OpenVPN Connect\profiles expanderar till AppData\Roaming\Roaming och pekar ingenstans. Använd variabeln eller den bokstavliga sökvägen, aldrig en blandning av de två.
Radera via klienten: öppna Profiles, använd pennikonen, välj Delete. Det tar bort posten och den sparade kopian tillsammans. Att ta bort mappen medan Connect körs kan lämna en post som inte öppnar något, och det är klagomålet "profile still shows up" i dess andra form.
Den importerade kopian är den klienten kör. Att redigera .ovpn som ligger kvar i Downloads ändrar ingenting, eftersom Connect läser sin sparade kopia; för att ändra en remote eller en cipher redigerar du profilen inuti klienten, eller redigerar filen och importerar den igen .
Varför en raderad profil kommer tillbaka
Två installationer av samma klientfamilj är det vanliga skälet. En GUI per användare och en GUI för alla användare har separata konfigurationsmappar, så borttagning från den ena lämnar den andra intakt och aktivitetsfältet listar fortfarande namnet. Programs and Features är där du bekräftar om båda är installerade.
Det andra skälet är en profil som aldrig fanns i mappen du kontrollerade. Att öppna en .ovpn en gång från en nätverksdelning eller en Downloads-mapp kan kopiera den till konfigurationsmappen per användare, och importerade Connect-profiler finns bara i AppData. Innan du redigerar något, sök efter filnamnet under både %USERPROFILE% och %APPDATA%. En profilmapp innehåller vanligtvis den privata nyckeln bredvid .ovpn, så klistra aldrig in mappen i en biljett eller chatt för att bevisa vilken profil du tog bort - ange istället filnamnet och tidsstämpeln.
Äldre GUI-byggen lagrar också klientinställningar i registret. Om aktivitetsfältet fortfarande listar ett namn efter att filen försvunnit och det bara finns en installation, starta om klienten en gång och kontrollera genvägens konfigurationsmapp igen innan du överväger att röra registerposter.
Två tunnlar samtidigt: först adaptrar, sedan rutten
GUI:n kan hålla flera anslutningar, en per virtuell adapter; lägg till adaptrar från Start-menyposten som installerar TAP-Windows6, och bekräfta sedan antalet i Network Connections, eftersom två samtidiga tunnlar behöver två adaptrar och båda bör få sin adress automatiskt. Routning är den svårare gränsen. Två profiler som var och en omdirigerar all trafik konkurrerar om standardrutten, och bara en kan äga den, så du får tillfälliga fel istället för två fungerande tunnlar. Behåll en full tunnel och ge den andra en split-tunnel-profil som bara trycker ut sitt eget subnät.
Överlappande privata intervall kan inte åtgärdas genom att lägga till en adapter. Om båda servrarna delar ut 10.8.0.0/24 kolliderar den andra tunneln på adressnivå och ingen klientkonfiguration kommer att skilja dem.
Adapternas namn berättar vad du tittar på. Get-NetAdapter i PowerShell listar TAP-Windows-adaptrar och Wintun-adaptern vid namn, vilket är snabbare än att räkna ikoner i Network Connections när en tunnel kom upp på fel adapter.
Starta en namngiven profil från ett skript
GUI:n tar ett profilnamn relativt sin konfigurationsmapp, så en startare ser ut så här: "C:\Program Files\OpenVPN\bin\openvpn-gui.exe" --connect "myvpn.ovpn". En absolut sökväg, eller en process startad i en annan arbetsmapp, misslyckas tyst, och därför går en genväg som fungerar med dubbelklick sönder under Task Scheduler.
Ange arbetsmappen istället för att hoppas. I en AutoHotkey-startare är det SetWorkingDir, C:\Program Files\OpenVPN\config; i Task Scheduler är det åtgärdens fält Start in. Att skicka --config_dir med samma sökväg gör startaren oberoende av båda.
Innan du är klar, exportera profilen, notera dess adapter, subnät och det subnät den routar, och håll varje kunds certifikat i sin egen undermapp. Bekräfta sedan att mappen tillhör den klient du faktiskt kör, och radera via klienten när den klienten har ett importlager. Det är den ordningen som hindrar samma profil från att dyka upp igen efter nästa omstart.