Skrifte wat die VPN moet hê voordat ’n rugsteun begin, stel dikwels openvpn direk in werking. Dit laat vaar die profiel, DNS en roetehantering wat Tunnelblick reeds bestuur. Die ondersteunde weg is Tunnelblick se eie AppleScript-koppelvlak, wat connect-, state- en disconnect-versoeke vir ’n genoemde konfigurasie aanvaar. Gebruik dit, en laat die program in beheer bly.

Praat met die program, nie met openvpn nie

Tunnelblick besit die OpenVPN-profiel, die keuse van die enjin, die skrifte en die DNS- en roete-integrasie. ’n Aparte openvpn-binêre lêer is ’n ander bekendstelling, nie ’n kortpad na dieselfde verbinding nie.

Om die program se skripkoppelvlak te roep, hou daardie eienaarskap ongeskonde en maak elke versoek hersienbaar.

Die voorbeelde hier aanvaar dat Tunnelblick in Applications woon, dat ’n werkende konfigurasie HQ heet en dat die opdragte in die aangemelde Mac-gebruiker se sessie loop. Verander die naam na die presiese konfigurasie wat jy het.

Begin presies een genoemde profiel

’n Connect-versoek noem die konfigurasie. Dit is nie ’n versoek om te koppel aan wat ook al laas gekies is nie.

Voer dit uit in die gebruiker-sessie wat die konfigurasie besit:

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

Volg die gewone aanmeldprompte. macOS kan vra of die program wat die oproep doen, toegelaat word om Tunnelblick te beheer; kyk watter program en watter teiken voordat jy goedkeur. Outomatisering wat daardie dialoog deurkliek, verydel die doel van die dialoog.

’n Connect-versoek keer terug voordat die tonnel op is

Tunnelblick se skripgids is duidelik: connect keer terug voordat die verbinding klaar is. ’n Uittree-status van nul beteken die versoek is aanvaar, nie dat verkeer vloei nie.

Lees die toestand afsonderlik:

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

CONNECTED is ’n verbindingstoestand-uitslag. Dit bewys steeds nie dat die private hulpbron wat jou taak nodig het, bereikbaar is nie, so kontroleer dit afsonderlik voordat jy afhanklike werk begin.

Ander kontroles in die skripkoppelvlak dek breër aksies en is nie nodig wanneer slegs een profiel verander nie.

Wag met ’n tydsbeperking en faal dan

Om vir ewig te pols is hoe ’n skrip oornag hang en die volgende lopie blokkeer. Gee die wag ’n tydsbeperking, ’n kort interval en ’n duidelike mislukkingsuitkoms. Behandel elke toestand anders as CONNECTED as nie gereed nie, insluitend die oorgangstoestande. Teken die laaste toestand aan wat jy gesien het, sodat die mislukking homself verduidelik.

’n Begrensde lus lyk so:

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

Dertig sekondes is ’n voorbeeld, nie ’n universele tydsbeperking nie. Kies ’n tydsbeperking op grond van die verifikasiepad wat die profiel werklik gebruik, en hou dit in die werkvloei-rekord.

Kontroleer toestand en ontkoppel op naam

Om dieselfde profiel te stop, roep disconnect met dieselfde naam. Dit hou die versoek nou en laat ander konfigurasies ongemoeid.

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

Hou die profielnaam en die beheerder saam in die werkvloei se rekord, saam met die verwagte verifikasie en voltooiingstoetse. Daardie rekord is wat die opdrag ses maande later hersienbaar maak.

Rekenaarbegin-gedrag is ’n ander modus. Gebruik Tunnelblick se gedokumenteerde beginopsie en die geloofsbrief-opstelling wat dit verwag. ’n Opdrag wat in ’n aangemelde lessenaarsessie loop en ’n diens wat saam met die masjien begin, deel nie ’n konteks nie. Moenie aanvaar dat ’n skrip wat werk terwyl jy aangemeld is, by die boot sal loop nie. Toets die beginpad op sy eie, met dieselfde tydsbeperking en aantekening.

Verwante artikels