Nimelise Tunnelblicki profiili juhtimine terminalist
Tunnelblick pakub AppleScripti kaudu connect, state ja disconnect. Kutsuge seda liidest, jätke rakendus vastutajaks ja andke igale ootamisele tähtaeg.
Skriptid, mis vajavad VPN-i enne varukoopiat, käivitavad sageli openvpn-i otse. See jätab kõrvale profiili, DNS-i ja marsruutide käsitlemise, mida Tunnelblick juba haldab. Toetatud tee on Tunnelblicki enda AppleScript-liides, mis võtab vastu connect-, state- ja disconnect-päringud nimelise konfiguratsiooni jaoks. Kasutage seda ja laske rakendusel vastutajaks jääda.
Rääkige rakendusega, mitte openvpn-iga
Tunnelblickule kuuluvad OpenVPN-i profiil, mootori valik, skriptid ning DNS-i ja marsruutide lõimimine. Eraldi openvpn-i binaarfail on teine käivitamisviis, mitte sama ühenduse otsetee.
Rakenduse skriptiliidese kutsumine hoiab selle omandi puutumatuna ja teeb iga päringu ülevaatatavaks.
Siinsed näited eeldavad, et Tunnelblick asub kaustas Applications, töötav konfiguratsioon kannab nime HQ ja käsud jooksevad sisselogitud Maci kasutaja sessioonis. Muutke nimi täpseks konfiguratsiooniks, mis teil on.
Käivitage täpselt üks nimeline profiil
Päring connect nimetab konfiguratsiooni. See ei ole päring ühenduda sellega, mis viimati valiti.
Käivitage see kasutajasessioonis, millele konfiguratsioon kuulub:
osascript -e 'tell application "/Applications/Tunnelblick.app" to connect "HQ"'Minge tavapärastest sisselogimisküsimustest läbi. macOS võib küsida, kas kutsuv rakendus tohib Tunnelblickki juhtida; kontrollige, milline rakendus ja milline siht, enne kui kinnitate. Automatiseerimine, mis selle dialoogi läbi klikib, kaotab dialoogi mõtte.
Päring connect naaseb enne, kui tunnel on püsti
Tunnelblicki skriptijuhend on selgesõnaline: connect naaseb enne, kui ühendus lõpeb. Nulliline väljumisolek tähendab, et päring võeti vastu, mitte et liiklus liigub.
Lugege olekut eraldi:
osascript -e 'tell application "/Applications/Tunnelblick.app" to get state of first configuration where name = "HQ"'CONNECTED on ühenduse oleku tulemus. See ei tõesta veel, et teie töö vajalik privaatne ressurss on kättesaadav, nii et kontrollige seda eraldi enne sõltuva töö alustamist.
Skriptiliidese muud juhtimisvahendid katavad laiemaid toiminguid ja neid pole vaja, kui muutub ainult üks profiil.
Oodake tähtajaga ja siis ebaõnnestuge
Lõputu küsitlemine on see, kuidas skript ripub terve öö ja blokeerib järgmise käivituse. Andke ootamisele tähtaeg, lühike intervall ja selge ebaõnnestumise tulemus. Käsitlege iga olekut peale CONNECTED-i mittevalmina, ka üleminekuolekuid. Logige viimane nähtud olek, et ebaõnnestumine ise end ära seletaks.
Piiratud tsükkel näeb välja nii:
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 1Kolmkümmend sekundit on näide, mitte üldine ajalõpp. Valige tähtaeg autentimistee järgi, mida profiil tegelikult kasutab, ja hoidke seda töövoo kirjes.
Kontrollige olekut ja katkestage nime järgi
Sama profiili peatamiseks kutsuge disconnect sama nimega. See hoiab päringu kitsana ja jätab teised konfiguratsioonid puutumata.
osascript -e 'tell application "/Applications/Tunnelblick.app" to disconnect "HQ"'Hoidke profiili nimi ja juhtija koos töövoo kirjes, koos oodatavate autentimis- ja lõpetamiskontrollidega. Just see kirje teeb käsu kuus kuud hiljem ülevaatatavaks.
Arvutiga käivitumise käitumine on teine režiim. Kasutage Tunnelblicki dokumenteeritud käivitusvalikut ja volituste seadistust, mida see eeldab. Sisselogitud töölauasessioonis käivitatud käsk ja masinaga koos käivituv teenus ei jaga konteksti. Ärge eeldage, et sisselogimise ajal töötav skript jookseb ka alglaadimisel. Testige käivitusrada eraldi, sama tähtaja ja logimisega.