Nosauktā Tunnelblick profila pārvaldība no termināļa
Tunnelblick nodrošina connect, state un disconnect ar AppleScript starpniecību. Izsauciet šo saskarni, ļaujiet lietotnei palikt atbildīgajai un piešķiriet katrai gaidīšanai termiņu.
Skripti, kuriem pirms dublējuma vajag aktīvu VPN, bieži palaiž openvpn tieši. Tas atstāj novārtā profilu, DNS un maršrutu apstrādi, ko Tunnelblick jau pārvalda. Atbalstītais ceļš ir Tunnelblick paša AppleScript saskarne, kas pieņem connect, state un disconnect pieprasījumus nosauktai konfigurācijai. Izmantojiet to un ļaujiet lietotnei palikt atbildīgajai.
Runājiet ar lietotni, nevis ar openvpn
Tunnelblick pieder OpenVPN profils, dzinēja izvēle, skripti un DNS un maršrutu integrācija. Atsevišķs openvpn binārais fails ir cita palaišanas kārtība, nevis īsceļš uz to pašu savienojumu.
Lietotnes skriptu saskarnes izsaukšana saglabā šo īpašumtiesību neskartu un padara katru pieprasījumu pārskatāmu.
Šeit minētie piemēri pieņem, ka Tunnelblick atrodas Applications, ka strādājoša konfigurācija saucas HQ un ka komandas tiek izpildītas pieteikušā Mac lietotāja sesijā. Nomainiet nosaukumu uz precīzo konfigurāciju, kas jums ir.
Palaidiet tieši vienu nosauktu profilu
connect pieprasījums nosauc konfigurāciju. Tas nav pieprasījums pieslēgties tam, kas tika izvēlēts pēdējais.
Izpildiet to lietotāja sesijā, kurai pieder konfigurācija:
osascript -e 'tell application "/Applications/Tunnelblick.app" to connect "HQ"'Izejiet cauri ierastajiem pierakstīšanās vaicājumiem. macOS var jautāt, vai izsaucošajai lietotnei ir atļauts pārvaldīt Tunnelblick; pirms apstiprināšanas pārbaudiet, kura lietotne un kāds mērķis. Automatizācija, kas pārslēdz šo dialogu, atņem dialogam jēgu.
connect pieprasījums atgriežas pirms tuneļa pacelšanas
Tunnelblick skriptu rokasgrāmata ir viennozīmīga: connect atgriežas pirms savienojuma pabeigšanas. Nulle iziešanas statuss nozīmē, ka pieprasījums ir pieņemts, nevis ka plūst trafiks.
Lasiet stāvokli atsevišķi:
osascript -e 'tell application "/Applications/Tunnelblick.app" to get state of first configuration where name = "HQ"'CONNECTED ir savienojuma stāvokļa rezultāts. Tas vēl nepierāda, ka privātais resurss, kas vajadzīgs jūsu darbam, ir sasniedzams, tāpēc pārbaudiet to atsevišķi pirms atkarīgā darba sākšanas.
Citi skriptu saskarnes vadības elementi aptver plašākas darbības un nav vajadzīgi, ja mainās tikai viens profils.
Gaidiet ar termiņu, pēc tam neizdodieties
Bezgalīga aptauja ir tas, kāpēc skripts karājas visu nakti un bloķē nākamo palaišanu. Dodiet gaidīšanai termiņu, īsu intervālu un skaidru neveiksmes iznākumu. Uzskatiet katru stāvokli, izņemot CONNECTED, par nesagatavotu, tostarp pārejas stāvokļus. Reģistrējiet pēdējo redzēto stāvokli, lai neveiksme pati sevi izskaidrotu.
Ierobežota cilpa izskatās šādi:
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 1Trīsdesmit sekundes ir piemērs, nevis universāls noildze. Izvēlieties termiņu no autentifikācijas ceļa, ko profils faktiski izmanto, un glabājiet to darbplūsmas ierakstā.
Pārbaudiet stāvokli un atvienojiet pēc nosaukuma
Lai apturētu to pašu profilu, izsauciet disconnect ar to pašu nosaukumu. Tas notur pieprasījumu šauru un atstāj citas konfigurācijas mierā.
osascript -e 'tell application "/Applications/Tunnelblick.app" to disconnect "HQ"'Glabājiet profila nosaukumu un kontrolieri kopā darbplūsmas ierakstā, kopā ar sagaidāmajām autentifikācijas un pabeigšanas pārbaudēm. Tieši šis ieraksts padara komandu pārskatāmu pēc pusgada.
Uzvedība, startējot kopā ar datoru, ir cits režīms. Izmantojiet Tunnelblick dokumentēto startēšanas opciju un tās gaidīto akreditācijas datu iestatījumu. Komanda, kas izpildīta pieteikušā darbvirsmas sesijā, un pakalpojums, kas startē kopā ar mašīnu, nedala kontekstu. Nepieņemiet, ka skripts, kas darbojas jums pieteiktam, darbosies arī ielādes laikā. Pārbaudiet startēšanas ceļu atsevišķi, ar to pašu termiņu un reģistrēšanu.