Egy OpenVPN GUI-profilt bontson le, ne az összes alagutat
A GUI által kezelt alagút GUI-parancsot igényel, a szolgáltatás által kezelt alagút szolgáltatásvezérlést. Állapítsa meg, melyik program birtokolja a profilt, mielőtt bármit szkriptel.
A leválasztó szkript általában egy okból hiúsul meg: a rossz tulajdonost szólítja meg. A közösségi OpenVPN GUI által kezelt alagút az adott GUI munkamenetéhez tartozik, a Windows-szolgáltatás által indított alagút a szolgáltatáshoz, az OpenVPN Connect pedig egyikhez sem. Végezze el ezeket az ellenőrzéseket sorrendben, és álljon meg, amikor a tulajdonos nem egyértelmű. A kill parancs küldése azért, mert a tulajdonos kétértelmű volt, pontosan az az út, amelyen egy profil leválasztásából az egész telephely kiesése lesz.
GUI által kezelt kapcsolat esetén a hasznos parancs egy üzenet a GUI-nak, nem pedig jelzés az openvpn.exe-nek.
Először állapítsa meg a tulajdonost
Nézze meg, melyik program mutatja valóban a csatlakozott állapotot, mielőtt bármit ír. A rendszertálcán lévő ikon azt jelenti, hogy a GUI munkamenet birtokolja. A szolgáltatásbejegyzés azt jelenti, hogy a szolgáltatás birtokolja. A saját profillistával rendelkező külön alkalmazásablak egyiket sem jelenti, és rá a saját, verzióspecifikus felülete érvényes.
Ellenőrizze a fiókot és az asztali munkamenetet is. Egy másik felhasználóként vagy nem interaktív munkamenetben futó ütemezett feladatról nem szabad feltételezni, hogy a bejelentkezett személy által látott GUI-t vezérli. Ez az eltérés olyan parancsot eredményez, amely tisztán lefut és semmit nem változtat, és ez a legdrágább hibafajta naplóból kideríteni.
Utána küldje el a tulajdonos saját leválasztását
Ha a GUI a példában szereplő útvonalon van telepítve, és létezik egy office nevű profil, a teljes parancs egy sor:
"C:\Program Files\OpenVPN\bin\openvpn-gui.exe" --command disconnect officeHelyettesítse a tényleges telepítési útvonalával és a konfiguráció pontos nevével, beleértve a kis- és nagybetűket úgy, ahogy a GUI mutatja. A projekt parancsdokumentációja felsorolja a támogatott GUI-vezérlőket, és ez a példa kizárólag az OpenVPN GUI-hoz tartozik — nem parancs minden olyan alkalmazáshoz, amelynek nevében OpenVPN szerepel.
A szolgáltatás tulajdonában lévő alagútnál a helyes vezérlő a szolgáltatás, nem a GUI bináris fájlja. Vizsgálja meg a telepített szolgáltatást és az általa kezelt profilokat, mielőtt bármit leállít, mert egy leállítás több alagutat is kidönthet egyszerre, és nem kap profilonkénti eredményt.
Ellenőrizze, hogy semmi más nem esik ki
A GUI a disconnect_all parancsot is dokumentálja, és a hatóköre pontosan az oka annak, hogy rossz eszköz egy olyan szkripthez, amelynek csak az office-t kell leállítania. Ha az egyszerűség kedvéért kísértésbe esne, kérdezze meg, mi más van még csatlakozva azon a gépen, és hogyan veszi ezt észre a felhasználó.
A taskkill /F /IM openvpn.exe két szempontból rosszabb. A futtatható fájl neve alapján választ folyamatokat, és kikényszeríti a leállítást, így sem profilszámot, sem a tulajdonos szokásos leválasztási sorrendjét nem fejezi ki. Ezt rendezett leállításnak nevezni mindkét problémát egyetlen kilépési állapot mögé rejti.
Bármelyik utat választja, a változtatás előtt ellenőrizze a hatás kiterjedését: listázza a csatlakozott profilokat, jegyezze fel, melyeknek túl kell élniük, és utána ellenőrizze őket újra.
Az állapotot igazolja, ne a kilépési kódot
A leválasztás kérése után a megnevezett kapcsolat állapotát a tulajdonosán keresztül olvassa ki, ahelyett hogy a parancs visszatérési értékében bízna. Ha a következő lépésnek a szétszerelés után hálózatra van szüksége, várjon erre az állapotváltozásra kifejezett időkorláttal, ahelyett hogy feltételezné, a tisztítás befejeződött, amikor a folyamat visszatért. A szétszereléssel versenyző szkript időnként meghiúsul, és a hiba a VPN-t fogja terhelni.
Ha az állapot soha nem változik, a tulajdonos valószínűleg nem az, akit megszólított. Ellenőrizze újra a munkamenetet és a fiókot, mielőtt erősebb parancsra váltana.
Mi kerüljön a naplóba
Naplózza a profil nevét, a megszólított tulajdonost és az indítási kontextust, valamint a létrejövő állapotot. Ne öntse a teljes konfigurációt vagy a hitelesítő adatokat a feladat naplójába, és ne naplózza a parancssort, ha az titkokat tartalmazó fájlra mutató útvonalat tartalmaz.
Egy hibaüzenet, amely megnevezi a profilt és a kontextust, elég ahhoz, hogy a következő ember újra előállítsa a problémát. Az a napló, amely csak egy általános kilépési kódot rögzít, visszaküldi őket az elejére, és épp ott kezdődik újra a találgatás.