Skripts dy’t de VPN omheech hawwe moatte foar in reservekopy starte faak openvpn direkt. Dat lit it profyl, DNS en de rûtbehanneling farre dy’t Tunnelblick al beheart. It stipe paad is Tunnelblick syn eigen AppleScript-interface, dy’t connect-, state- en disconnect-oanfragen foar in neamde konfiguraasje akseptearret. Brûk dy, en lit de applikaasje de baas bliuwe.

Prate mei de app, net mei openvpn

Tunnelblick besit it OpenVPN-profyl, de kar fan de motor, de skripts en de DNS- en rût-yntegraasje. In aparte openvpn-binêre is in oare startopstelling, net in flugge wei nei deselde ferbining.

It oanroppen fan de skriptinterface fan de applikaasje hâldt dat eigendom yntakt en makket elk fersyk neisjochber.

De foarbylden hjir geane derfan út dat Tunnelblick yn Applications wennet, dat in wurkjende konfiguraasje HQ hjit en dat de opdrachten yn ’e sesje fan de oanmelde Mac-brûker rinne. Feroarje de namme yn de krekte konfiguraasje dy’t jo hawwe.

Start krekt ien neamd profyl

In connect-oanfraach neamt de konfiguraasje. It is gjin oanfraach om te ferbinen mei wat it lêst keazen waard.

Rop it yn ’e brûkerssesje dy’t de konfiguraasje besit:

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

Gean troch de gewoane oanmeldprompts. macOS kin freegje oft de oanropjende app Tunnelblick betsjinje mei; kontrolearje hokker app en hokker doel foardat jo goedkarre. Automatisaasje dy’t troch dat dialoochfinster klikt, docht it doel fan it finster te niet.

In connect-oanfraach komt werom foardat de tunnel omheech is

Tunnelblick syn skriptgids is dúdlik: connect komt werom foardat de ferbining klear is. In útgongstatus fan nul betsjut dat it fersyk akseptearre is, net dat ferkear streamt.

Lês de tastân apart:

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

CONNECTED is in resultaat fan ’e ferbiningstastân. It bewiist noch net dat de partikuliere boarne dy’t jo taak nedich hat berikber is, dus kontrolearje dat apart foardat jo ôfhinklik wurk starte.

Oare bedieningseleminten yn ’e skriptinterface dekke bredere aksjes en binne net nedich as mar ien profyl feroaret.

Wacht mei in deadline, en fallyt dan

Ivich pollje is hoe’t in skript de hiele nacht hinget en de folgjende run blokkearret. Jou it wachten in deadline, in koart ynterval en in dúdlike mislearringsútkomst. Behannelje elke tastân oars as CONNECTED as net klear, ek de oergongstastannen. Registrearje de lêste tastân dy’t jo seagen, sadat de mislearring himsels ferklearret.

In beheinde lus sjocht der sa út:

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

Tritich sekonden is in foarbyld, gjin universele timeout. Kies in deadline op grûn fan it autentikaasjepaad dat it profyl eins brûkt, en hâld dy yn it registro fan ’e wurkstream.

Kontrolearje tastân en ferbrek by namme

Om itselde profyl te stopjen, rop disconnect oan mei deselde namme. Dat hâldt it fersyk smal en lit oare konfiguraasjes gewurde.

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

Hâld de profilnamme en de controller byinoar yn it registro fan ’e wurkstream, tegearre mei de ferwachte autentikaasje- en foltôgingstsjeks. Dat registro is wat it kommando seis moanne letter neisjochber makket.

Gedrach by start mei de kompjûter is in oare modus. Brûk de dokumintearre startopsje fan Tunnelblick en de oanmeldgegevens-opset dy’t dy ferwachtet. In kommando dat yn in oanmelde buroblêdsesje rint en in tsjinst dy’t mei de masine start diele gjin kontekst. Nim net oan dat in skript dat wurket wylst jo oanmeld binne by it opstarten rint. Test it startpaad apart, mei deselde deadline en logging.

Relatearre artikelen