Mengawal profil Tunnelblick bernama dari terminal
Tunnelblick menyediakan connect, state dan disconnect melalui AppleScript. Panggil antara muka itu, biarkan aplikasi kekal bertanggungjawab dan beri setiap penantian satu tempoh.
Skrip yang memerlukan VPN hidup sebelum sandaran sering melancarkan openvpn secara terus. Itu meninggalkan profil, DNS dan pengendalian laluan yang sudah diuruskan oleh Tunnelblick. Laluan yang disokong ialah antara muka AppleScript Tunnelblick sendiri, yang menerima permintaan connect, state dan disconnect untuk konfigurasi bernama. Gunakannya, dan biarkan aplikasi kekal bertanggungjawab.
Bercakap dengan aplikasi, bukan dengan openvpn
Tunnelblick memiliki profil OpenVPN, pemilihan enjin, skrip serta integrasi DNS dan laluan. Binari openvpn berasingan ialah susunan pelancaran yang lain, bukan jalan pintas ke sambungan yang sama.
Memanggil antara muka skrip aplikasi mengekalkan pemilikan itu utuh dan menjadikan setiap permintaan boleh disemak.
Contoh di sini menganggap Tunnelblick berada dalam Applications, konfigurasi yang berfungsi bernama HQ dan arahan dijalankan dalam sesi pengguna Mac yang sudah log masuk. Tukar nama itu kepada konfigurasi tepat yang anda ada.
Mulakan tepat satu profil bernama
Permintaan connect menamakan konfigurasinya. Ia bukan permintaan untuk menyambung kepada apa yang dipilih terakhir.
Jalankannya dalam sesi pengguna yang memiliki konfigurasi itu:
osascript -e 'tell application "/Applications/Tunnelblick.app" to connect "HQ"'Lalui gesaan log masuk biasa. macOS mungkin bertanya sama ada aplikasi yang memanggil dibenarkan mengawal Tunnelblick; semak aplikasi dan sasaran yang mana sebelum meluluskan. Automasi yang mengklik melalui dialog itu menghapuskan tujuan dialog.
Permintaan connect kembali sebelum terowong naik
Panduan skrip Tunnelblick jelas: connect kembali sebelum sambungan selesai. Status keluar sifar bermaksud permintaan diterima, bukan bahawa trafik mengalir.
Baca keadaan secara berasingan:
osascript -e 'tell application "/Applications/Tunnelblick.app" to get state of first configuration where name = "HQ"'CONNECTED ialah hasil keadaan sambungan. Ia masih belum membuktikan bahawa sumber peribadi yang diperlukan tugas anda boleh dicapai, jadi semak itu secara berasingan sebelum memulakan kerja bersandar.
Kawalan lain dalam antara muka skrip merangkumi tindakan lebih luas dan tidak diperlukan apabila hanya satu profil berubah.
Tunggu dengan tempoh, kemudian gagal
Pengundian tanpa henti ialah cara skrip tergantung sepanjang malam dan menyekat larian seterusnya. Beri penantian satu tempoh, selang pendek dan hasil kegagalan yang jelas. Anggap setiap keadaan selain CONNECTED sebagai belum sedia, termasuk yang peralihan. Log keadaan terakhir yang anda lihat supaya kegagalan menjelaskan dirinya sendiri.
Gelung terbatas kelihatan seperti ini:
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 1Tiga puluh saat ialah contoh, bukan had masa sejagat. Pilih tempoh daripada laluan pengesahan yang benar-benar digunakan profil itu, dan simpan dalam rekod aliran kerja.
Semak keadaan dan putuskan sambungan mengikut nama
Untuk menghentikan profil yang sama, panggil disconnect dengan nama yang sama. Itu mengekalkan permintaan sempit dan membiarkan konfigurasi lain.
osascript -e 'tell application "/Applications/Tunnelblick.app" to disconnect "HQ"'Simpan nama profil dan pengawal bersama dalam rekod aliran kerja, bersama semakan pengesahan dan penyempurnaan yang dijangka. Rekod itulah yang menjadikan arahan boleh disemak enam bulan kemudian.
Tingkah laku mula bersama komputer ialah mod lain. Gunakan pilihan permulaan Tunnelblick yang didokumenkan dan tetapan kelayakan yang dijangka. Arahan yang dijalankan dalam sesi desktop yang log masuk dan perkhidmatan yang mula bersama mesin tidak berkongsi konteks. Jangan andaikan skrip yang berfungsi semasa anda log masuk akan berjalan semasa but. Uji laluan permulaan itu secara berasingan, dengan tempoh dan log yang sama.