Adlandırılmış bir Tunnelblick profilini terminalden yönetin
Tunnelblick, connect, state ve disconnect işlevlerini AppleScript üzerinden sunar. Bu arayüzü çağırın, denetimi uygulamada bırakın ve her beklemeye bir son tarih verin.
Yedeklemeden önce VPN'in açık olmasını gerektiren betikler genellikle openvpn'i doğrudan başlatır. Bu, Tunnelblick'in zaten yönettiği profili, DNS'i ve rota işlemeyi terk eder. Desteklenen yol, Tunnelblick'in kendi AppleScript arayüzüdür; adlandırılmış bir yapılandırma için connect, state ve disconnect isteklerini kabul eder. Onu kullanın ve denetimi uygulamada bırakın.
Uygulamayla konuşun, openvpn ile değil
OpenVPN profilini, motor seçimini, betikleri ve DNS ile rota entegrasyonunu Tunnelblick yönetir. Ayrı bir openvpn ikili dosyası başka bir başlatma düzenidir, aynı bağlantıya kestirme değildir.
Uygulamanın betik arayüzünü çağırmak bu sahipliği korur ve her isteği denetlenebilir kılar.
Buradaki örnekler Tunnelblick'in Applications içinde olduğunu, çalışan yapılandırmanın adının HQ olduğunu ve komutların oturum açmış Mac kullanıcısının oturumunda çalıştığını varsayar. Adı, sahip olduğunuz tam yapılandırmayla değiştirin.
Tam olarak bir adlandırılmış profil başlatın
connect isteği yapılandırmayı adlandırır. En son seçilen şeye bağlanma isteği değildir.
Yapılandırmanın sahibi olan kullanıcı oturumunda çalıştırın:
osascript -e 'tell application "/Applications/Tunnelblick.app" to connect "HQ"'Olağan oturum açma istemlerinden geçin. macOS, çağıran uygulamanın Tunnelblick'i denetlemesine izin verilip verilmediğini sorabilir; onaylamadan önce hangi uygulama ve hangi hedef olduğunu kontrol edin. O iletişim kutusunu tıklayıp geçen otomasyon, iletişim kutusunun amacını ortadan kaldırır.
connect isteği tünel açılmadan önce döner
Tunnelblick'in betik kılavuzu açıktır: connect, bağlantı tamamlanmadan önce döner. Sıfır çıkış durumu, isteğin kabul edildiği anlamına gelir, trafiğin aktığı değil.
Durumu ayrı okuyun:
osascript -e 'tell application "/Applications/Tunnelblick.app" to get state of first configuration where name = "HQ"'CONNECTED bir bağlantı durumu sonucudur. İşinizin ihtiyaç duyduğu özel kaynağa erişilebildiğini henüz kanıtlamaz, bu yüzden bağımlı işe başlamadan önce bunu ayrıca kontrol edin.
Betik arayüzündeki diğer denetimler daha geniş eylemleri kapsar ve yalnızca bir profil değiştiğinde gerekli değildir.
Son tarihle bekleyin, sonra başarısız olun
Sonsuz yoklama, bir betiğin gece boyunca asılı kalmasının ve sonraki çalışmayı engellemesinin yoludur. Beklemeye bir son tarih, kısa bir aralık ve açık bir başarısızlık sonucu verin. CONNECTED dışındaki her durumu, geçiş durumları dahil, hazır değil sayın. Gördüğünüz son durumu günlüğe yazın ki başarısızlık kendini açıklasın.
Sınırlı bir döngü şöyle görünür:
for i in $(seq 1 30); do
state=$(osascript -e 'tell application "/Applications/Tunnelblick.app" to get state of first configuration where name = "HQ"')
if [ "$state" = "CONNECTED" ]; then exit 0; fi
sleep 1
done
echo "tunnel did not reach CONNECTED" >&2
exit 1Otuz saniye bir örnektir, evrensel bir zaman aşımı değildir. Son tarihi profilin gerçekte kullandığı kimlik doğrulama yolundan seçin ve iş akışının kaydında tutun.
Durumu denetleyin ve ada göre bağlantıyı kesin
Aynı profili durdurmak için aynı adla disconnect çağırın. Bu, isteği dar tutar ve diğer yapılandırmaları rahat bırakır.
osascript -e 'tell application "/Applications/Tunnelblick.app" to disconnect "HQ"'Profil adını ve denetleyiciyi iş akışının kaydında birlikte tutun, beklenen kimlik doğrulama ve tamamlanma denetimleriyle birlikte. Komutu altı ay sonra denetlenebilir kılan şey o kayıttır.
Bilgisayarla başlama davranışı başka bir kiptir. Tunnelblick'in belgelenmiş başlangıç seçeneğini ve beklediği kimlik bilgisi kurulumunu kullanın. Oturum açmış bir masaüstü oturumunda çalıştırılan komut ile makineyle birlikte başlayan hizmet bağlam paylaşmaz. Oturum açıkken çalışan bir betiğin açılışta da çalışacağını varsaymayın. Başlangıç yolunu ayrı ayrı, aynı son tarih ve günlükle test edin.