Skriptet që kanë nevojë për VPN aktiv përpara një kopje rezervë shpesh nisin openvpn drejtpërdrejt. Kjo braktis profilin, DNS-në dhe trajtimin e rrugëve që Tunnelblick tashmë i administron. Rruga e mbështetur është ndërfaqja vetjake AppleScript e Tunnelblick, e cila pranon kërkesa connect, state dhe disconnect për një konfigurim me emër. Përdore atë dhe lëre aplikacionin përgjegjës.

Flit me aplikacionin, jo me openvpn

Tunnelblick zotëron profilin OpenVPN, zgjedhjen e motorit, skriptet dhe integrimin e DNS-së dhe rrugëve. Një binar i veçantë openvpn është një skemë tjetër nisjeje, jo një shkurtore drejt të njëjtës lidhje.

Thirrja e ndërfaqes së skripteve të aplikacionit e ruan atë pronësi të paprekur dhe e bën çdo kërkesë të verifikueshme.

Shembujt këtu supozojnë se Tunnelblick ndodhet në Applications, se një konfigurim funksional quhet HQ dhe se komandat ekzekutohen në sesionin e përdoruesit Mac të kyçur. Ndrysho emrin në konfigurimin e saktë që ke.

Nis saktësisht një profil me emër

Një kërkesë connect emërton konfigurimin. Nuk është një kërkesë për t'u lidhur me atë që u zgjodh i fundit.

Ekzekutoje në sesionin e përdoruesit që zotëron konfigurimin:

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

Kalo nëpër kërkesat e zakonshme të hyrjes. macOS mund të pyesë nëse aplikacionit thirrës i lejohet të kontrollojë Tunnelblick; kontrollo cili aplikacion dhe cili objektiv përpara se të miratosh. Automatizimi që klikon përmes atij dialogu ia heq dialogut kuptimin.

Kërkesa connect kthehet para se tuneli të ngrihet

Udhëzuesi i skripteve i Tunnelblick është i qartë: connect kthehet para se lidhja të përfundojë. Një status daljeje zero do të thotë se kërkesa u pranua, jo se trafiku rrjedh.

Lexo statusin veçmas:

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

CONNECTED është rezultat i statusit të lidhjes. Nuk provon ende se burimi privat që i nevojitet punës tënde është i arritshëm, prandaj verifikoje atë veçmas përpara se të nisësh punë të varur.

Kontrollet e tjera në ndërfaqen e skripteve mbulojnë veprime më të gjera dhe nuk nevojiten kur ndryshon vetëm një profil.

Prit me afat, pastaj dështo

Pyetja pa fund është mënyra se si një skript rri varur gjithë natën dhe bllokon ekzekutimin tjetër. Jepi pritjes një afat, një interval të shkurtër dhe një rezultat të qartë dështimi. Trajto çdo status përveç CONNECTED si të pagati, përfshirë ata kalimtarë. Regjistro statusin e fundit që pe, që dështimi të shpjegohet vetë.

Një cikël i kufizuar duket kështu:

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

Tridhjetë sekonda janë një shembull, jo një afat universal. Zgjidh një afat nga rruga e vërtetimit që konfigurimi përdor vërtet, dhe mbaje në regjistrin e rrjedhës së punës.

Kontrollo statusin dhe shkëput me emër

Për të ndaluar të njëjtin profil, thirr disconnect me të njëjtin emër. Kjo e mban kërkesën të ngushtë dhe i lë konfigurimet e tjera në paqe.

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

Mbaj emrin e profilit dhe kontrolluesin bashkë në regjistrin e rrjedhës së punës, bashkë me kontrollet e pritura të vërtetimit dhe përfundimit. Ai regjistër është ai që e bën komandën të verifikueshme edhe pas gjashtë muajsh.

Sjellja në nisje me kompjuterin është një mënyrë tjetër. Përdor opsionin e dokumentuar të nisjes së Tunnelblick dhe konfigurimin e kredencialeve që ai pret. Një komandë e ekzekutuar në një sesion desktop të kyçur dhe një shërbim që niset me makinën nuk ndajnë kontekst. Mos supozoni se një skript që funksionon sa kohë je i kyçur do të ekzekutohet në nisje. Testo rrugën e nisjes veçmas, me të njëjtin afat dhe regjistrim.

Artikuj të ngjashëm