Tüm tünelleri değil, tek bir OpenVPN GUI profilinin bağlantısını kesin
GUI tarafından yönetilen bir tünel GUI komutu ister, hizmet tarafından yönetilen bir tünel ise hizmet denetimi ister. Herhangi bir betik yazmadan önce profilin hangi programa ait olduğunu belirleyin.
Bir bağlantı kesme betiği genellikle tek bir nedenden dolayı başarısız olur: yanlış sahibine seslenir. Topluluk OpenVPN GUI'sinin yönettiği tünel o GUI oturumuna aittir, bir Windows hizmetinin başlattığı tünel hizmete aittir ve OpenVPN Connect ikisine de ait değildir. Bu denetimleri sırayla yapın ve sahip belirsizse durun. Sahip belirsiz olduğu için kill komutu göndermek, tek bir profilin bağlantısının kesilmesini tüm sahanın kesintisine dönüştüren yoldur.
GUI tarafından yönetilen bir bağlantı için yararlı komut, openvpn.exe dosyasına sinyal değil GUI'ye gönderilen mesajdır.
Önce sahibi belirleyin
Herhangi bir şey yazmadan önce hangi programın gerçekten bağlı durumu gösterdiğine bakın. Sistem tepsisindeki bir simge, GUI oturumunun sahip olduğu anlamına gelir. Bir hizmet girdisi, hizmetin sahip olduğu anlamına gelir. Kendi profil listesine sahip ayrı bir uygulama penceresi ikisi de değildir ve ona kendi sürüme özgü arayüzü uygulanır.
Hesabı ve masaüstü oturumunu da denetleyin. Başka bir kullanıcı olarak veya etkileşimsiz bir oturumda çalışan zamanlanmış bir görevin, oturum açmış kişinin gördüğü GUI'yi denetlediği varsayılmamalıdır. Bu uyumsuzluk, temiz sonlanan ve hiçbir şeyi değiştirmeyen bir komut üretir ve bu, bir günlükten ayıklanması en pahalı arıza türüdür.
Sonra sahibin kendi bağlantı kesme komutunu gönderin
GUI örnekteki yola kuruluysa ve office adlı bir profil varsa, komutun tamamı tek satırdır:
"C:\Program Files\OpenVPN\bin\openvpn-gui.exe" --command disconnect officeBunu gerçek kurulum yolunuzla ve GUI'nin gösterdiği biçimde büyük-küçük harfler dahil tam yapılandırma adıyla değiştirin. Projenin komut belgeleri desteklenen GUI denetimlerini listeler ve bu örnek yalnızca OpenVPN GUI'ye aittir — adında OpenVPN geçen her uygulama için bir komut değildir.
Hizmete ait bir tünel için doğru denetim GUI ikilisi değil hizmetin kendisidir. Bir şeyi durdurmadan önce kurulu hizmeti ve yönettiği profilleri inceleyin, çünkü bir durdurma aynı anda birkaç tüneli düşürebilir ve profil başına sonuç alamazsınız.
Başka hiçbir şeyin düşmediğinden emin olun
GUI ayrıca disconnect_all komutunu belgeler ve kapsamı tam da yalnızca office profilini durdurması gereken bir betik için yanlış araç olmasının nedenidir. Basitlik için onu kullanma isteği duyarsanız, o makinede başka neyin bağlı olduğunu ve kullanıcının bunu nasıl fark edeceğini sorun.
taskkill /F /IM openvpn.exe iki açıdan daha kötüdür. Süreçleri çalıştırılabilir dosya adına göre seçer ve sonlandırmayı zorlar, bu yüzden ne bir profil adı ne de sahibin normal bağlantı kesme sırasını ifade eder. Buna düzgün kapatma demek, iki sorunu da tek bir çıkış durumunun arkasına saklar.
Hangi yolu seçerseniz seçin, değişiklikten önce etkinin kapsamını doğrulayın: bağlı profilleri listeleyin, hangilerinin ayakta kalması gerektiğini not edin ve sonra tekrar denetleyin.
Çıkış kodunu değil durumu doğrulayın
Bağlantı kesmeyi istedikten sonra, komutun dönüş değerine güvenmek yerine adı geçen bağlantının durumunu sahibi üzerinden okuyun. Sonraki adım sökümden sonra ağa ihtiyaç duyuyorsa, süreç döndüğünde temizliğin bittiğini varsaymak yerine açık bir zaman aşımıyla o durum değişikliğini bekleyin. Sökümle yarışan bir betik ara sıra başarısız olur ve suç VPN'e yüklenir.
Durum hiç değişmiyorsa sahip muhtemelen seslendiğiniz kişi değildir. Daha güçlü bir komuta geçmeden önce oturumu ve hesabı yeniden denetleyin.
Günlüğe ne konmalı
Profil adını, seslendiğiniz sahibi ve başlatma bağlamını, ayrıca ortaya çıkan durumu kaydedin. Tam yapılandırmayı veya kimlik bilgilerini görev günlüğüne boşaltmayın ve komut satırı gizli bilgiler içeren bir dosyanın yolunu içeriyorsa kaydetmeyin.
Profili ve bağlamı adlandıran bir hata iletisi, sonraki kişinin sorunu yeniden üretmesi için yeterlidir. Yalnızca genel bir çıkış kodu kaydeden bir günlük onları başa geri gönderir ve tahmin tam orada yeniden başlar.