Skriptoj, kiuj bezonas la VPN antaŭ sekurkopio, ofte lanĉas openvpn rekte. Tio forlasas la profilon, DNS kaj traktadon de itineroj, kiujn Tunnelblick jam administras. La subtenata vojo estas la propra AppleScript-interfaco de Tunnelblick, kiu akceptas petojn connect, state kaj disconnect por nomita agordo. Uzu ĝin, kaj lasu la aplikaĵon respondeca.

Parolu al la aplikaĵo, ne al openvpn

Tunnelblick posedas la OpenVPN-profilon, la elekton de motoro, la skriptojn kaj la integriĝon de DNS kaj itineroj. Aparta openvpn-binaraĵo estas alia lanĉa aranĝo, ne mallongigo al la sama konekto.

Voki la skriptan interfacon de la aplikaĵo konservas tiun posedon sendifekta kaj faras ĉiun peton revidebla.

La ekzemploj ĉi tie supozas, ke Tunnelblick loĝas en Applications, ke funkcianta agordo nomiĝas HQ, kaj ke la komandoj ruliĝas en la sesio de la ensalutinta Mac-uzanto. Ŝanĝu la nomon al la ĝusta agordo, kiun vi havas.

Startu precize unu nomitan profilon

Peto connect nomas la agordon. Ĝi ne estas peto konekti al tio, kio estis laste elektita.

Rulu ĝin en la uzanta sesio, kiu posedas la agordon:

osascript -e 'tell application "/Applications/Tunnelblick.app" to connect "HQ"'

Trapasu la kutimajn ensalutajn invitojn. macOS eble demandos, ĉu la vokanta aplikaĵo rajtas regi Tunnelblick; kontrolu kiun aplikaĵon kaj kiun celon antaŭ ol aprobi. Aŭtomatigo, kiu klakas tra tiu dialogo, senkempigas la dialogon.

Peto connect revenas antaŭ ol la tunelo estas supre

La skripta gvidilo de Tunnelblick estas eksplicita: connect revenas antaŭ ol la konekto finiĝas. Elirstatuso nulo signifas, ke la peto estis akceptita, ne ke trafiko fluas.

Legu la staton aparte:

osascript -e 'tell application "/Applications/Tunnelblick.app" to get state of first configuration where name = "HQ"'

CONNECTED estas rezulto de konekta stato. Ĝi ankoraŭ ne pruvas, ke la privata rimedo, kiun via laboro bezonas, estas atingebla, do kontrolu tion aparte antaŭ ol komenci dependan laboron.

Aliaj regiloj en la skripta interfaco kovras pli larĝajn agojn kaj ne necesas, kiam ŝanĝiĝas nur unu profilo.

Atendu kun limdato, poste malsukcesu

Senfina enketado estas kiel skripto pendas dum la tuta nokto kaj blokas la sekvan rulon. Donu al la atendo limdaton, mallongan intervalon kaj klaran malsukcesan rezulton. Konsideru ĉiun staton krom CONNECTED kiel nepretan, inkluzive la transirajn. Protokolu la lastan viditan staton, por ke la malsukceso klarigu sin mem.

Limigita buklo aspektas tiel:

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 1

Tridek sekundoj estas ekzemplo, ne universala limtempo. Elektu limdaton laŭ la aŭtentiga vojo, kiun la profilo efektive uzas, kaj konservu ĝin en la registro de la laborfluo.

Kontrolu la staton kaj malkonektu laŭ nomo

Por haltigi la saman profilon, voku disconnect kun la sama nomo. Tio tenas la peton mallarĝa kaj lasas aliajn agordojn trankvilaj.

osascript -e 'tell application "/Applications/Tunnelblick.app" to disconnect "HQ"'

Tenu la profilnomon kaj la regilon kune en la registro de la laborfluo, kune kun la atendataj aŭtentigaj kaj kompletigaj kontroloj. Tiu registro estas tio, kio igas la komandon revidebla post ses monatoj.

Konduto ĉe komputila starto estas alia reĝimo. Uzu la dokumentitan startan opcion de Tunnelblick kaj la akreditilaĵan agordon, kiun ĝi atendas. Komando ruligita en ensalutinta labortabla sesio kaj servo, kiu startas kun la maŝino, ne kunhavas kuntekston. Ne supozu, ke skripto, kiu funkcias dum vi estas ensalutinta, ruliĝos ĉe la starto. Testu la startan vojon aparte, kun la sama limdato kaj protokolado.

Rilataj artikoloj