Upravljanje imenovanim Tunnelblick profilom iz terminala
Tunnelblick izlaže connect, state i disconnect preko AppleScripta. Pozovite taj interfejs, pustite aplikaciju da ostane zadužena i dajte svakom čekanju rok.
Skripte koje trebaju VPN prije sigurnosne kopije često pokreću openvpn direktno. Time se napuštaju profil, DNS i obrada ruta koje Tunnelblick već upravlja. Podržan put je Tunnelblickov vlastiti AppleScript interfejs, koji prihvata connect, state i disconnect zahtjeve za imenovanu konfiguraciju. Koristite ga i pustite aplikaciju da ostane zadužena.
Razgovarajte s aplikacijom, ne s openvpn-om
Tunnelblick posjeduje OpenVPN profil, izbor motora, skripte te DNS i integraciju ruta. Zasebni openvpn binarni fajl je drugačiji način pokretanja, a ne prečica do iste veze.
Pozivanje aplikacijskog skriptnog interfejsa čuva to vlasništvo netaknutim i čini svaki zahtjev preglednim.
Primjeri ovdje pretpostavljaju da Tunnelblick živi u Applications, da se radna konfiguracija zove HQ i da se naredbe izvršavaju u sesiji prijavljenog Mac korisnika. Promijenite ime u tačnu konfiguraciju koju imate.
Pokrenite tačno jedan imenovani profil
Connect zahtjev imenuje konfiguraciju. To nije zahtjev da se poveže s onim što je posljednje odabrano.
Pokrenite ga u korisničkoj sesiji koja posjeduje konfiguraciju:
osascript -e 'tell application "/Applications/Tunnelblick.app" to connect "HQ"'Prođite kroz uobičajene upite za prijavu. macOS može pitati je li aplikaciji koja poziva dopušteno kontrolirati Tunnelblick; provjerite koja aplikacija i koja meta prije odobravanja. Automatizacija koja preskače taj dijalog obesmišljava dijalog.
Connect zahtjev se vraća prije nego je tunel podignut
Tunnelblickov vodič za skripte je izričit: connect se vraća prije završetka veze. Nulti izlazni status znači da je zahtjev prihvaćen, a ne da promet teče.
Pročitajte stanje odvojeno:
osascript -e 'tell application "/Applications/Tunnelblick.app" to get state of first configuration where name = "HQ"'CONNECTED je rezultat stanja veze. On još ne dokazuje da je privatni resurs koji vaš posao treba dostupan, pa to provjerite odvojeno prije početka zavisnog rada.
Ostale kontrole u skriptnom interfejsu pokrivaju šire akcije i nisu potrebne kada se mijenja samo jedan profil.
Čekajte s rokom, pa neuspješno završite
Beskonačno anketiranje je način na koji skripta visi cijelu noć i blokira sljedeće pokretanje. Dajte čekanju rok, kratak interval i izričit ishod neuspjeha. Tretirajte svako stanje osim CONNECTED kao nespremno, uključujući prijelazna. Zabilježite posljednje viđeno stanje da se neuspjeh sam objasni.
Ograničena petlja izgleda ovako:
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 1Trideset sekundi je primjer, a ne univerzalni tajmaut. Odaberite rok prema putu autentifikacije koji profil stvarno koristi i držite ga u zapisu radnog toka.
Provjerite stanje i prekinite po imenu
Da zaustavite isti profil, pozovite disconnect s istim imenom. To drži zahtjev uskim i ostavlja druge konfiguracije na miru.
osascript -e 'tell application "/Applications/Tunnelblick.app" to disconnect "HQ"'Držite ime profila i kontroler zajedno u zapisu radnog toka, uz očekivane provjere autentifikacije i završetka. Taj zapis je ono što naredbu čini preglednom šest mjeseci kasnije.
Ponašanje pri pokretanju s računarom je drugi režim. Koristite dokumentovanu Tunnelblick opciju pokretanja i podešavanje vjerodajnica koje ona očekuje. Naredba pokrenuta u prijavljenoj desktop sesiji i servis koji se pokreće s mašinom ne dijele kontekst. Ne pretpostavljajte da će skripta koja radi dok ste prijavljeni raditi i pri podizanju. Testirajte put pokretanja zasebno, s istim rokom i zapisivanjem.