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 office

Bunu 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.

İlgili makaleler