बॅकअपपूर्वी VPN सुरू असणे आवश्यक असलेल्या स्क्रिप्ट अनेकदा openvpn थेट सुरू करतात. त्यामुळे Tunnelblick आधीच सांभाळत असलेले प्रोफाइल, DNS आणि मार्ग हाताळणी सोडून दिली जाते. समर्थित मार्ग म्हणजे Tunnelblick चा स्वतःचा AppleScript इंटरफेस, जो नाव दिलेल्या कॉन्फिगरेशनसाठी connect, state आणि disconnect विनंत्या स्वीकारतो. तोच वापरा आणि अ‍ॅपला जबाबदार राहू द्या.

अ‍ॅपशी बोला, openvpn शी नाही

OpenVPN प्रोफाइल, इंजिनची निवड, स्क्रिप्ट आणि DNS व मार्ग एकत्रीकरण Tunnelblick कडे आहे. वेगळी openvpn बायनरी ही सुरू करण्याची दुसरी पद्धत आहे, त्याच कनेक्शनचा शॉर्टकट नाही.

अ‍ॅपच्या स्क्रिप्टिंग इंटरफेसला कॉल केल्याने ते मालकी अभंग राहते आणि प्रत्येक विनंती तपासण्यायोग्य होते.

येथील उदाहरणे असे गृहीत धरतात की Tunnelblick Applications मध्ये आहे, कार्यरत कॉन्फिगरेशनचे नाव HQ आहे आणि कमांड लॉग-इन केलेल्या Mac वापरकर्त्याच्या सत्रात चालतात. नाव तुमच्याकडील नेमक्या कॉन्फिगरेशनने बदला.

नेमके एक नाव दिलेले प्रोफाइल सुरू करा

connect विनंती कॉन्फिगरेशनचे नाव सांगते. ही शेवटी निवडलेल्या गोष्टीशी जोडण्याची विनंती नाही.

कॉन्फिगरेशनच्या मालकीच्या वापरकर्ता सत्रात ती चालवा:

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

नेहमीच्या साइन-इन सूचनांमधून जा. कॉल करणाऱ्या अ‍ॅपला Tunnelblick नियंत्रित करण्याची परवानगी आहे का, असे macOS विचारू शकते; मंजूरी देण्यापूर्वी कोणते अ‍ॅप आणि कोणते लक्ष्य आहे ते तपासा. तो संवाद क्लिक करून ओलांडणारे ऑटोमेशन संवादाचा उद्देशच नष्ट करते.

टनेल उभे राहण्यापूर्वी connect विनंती परत येते

Tunnelblick चा स्क्रिप्टिंग मार्गदर्शक स्पष्ट आहे: कनेक्शन पूर्ण होण्यापूर्वी connect परत येते. शून्य एक्झिट स्थितीचा अर्थ विनंती स्वीकारली गेली, असा आहे; रहदारी वाहत आहे असा नाही.

स्थिती वेगळी वाचा:

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

CONNECTED हा कनेक्शन-स्थितीचा निकाल आहे. तुमच्या कामाला आवश्यक असलेला खाजगी स्रोत पोहोचण्यायोग्य आहे, हे तो अजून सिद्ध करत नाही, म्हणून अवलंबून असलेले काम सुरू करण्यापूर्वी ते वेगळे तपासा.

स्क्रिप्टिंग इंटरफेसचे इतर नियंत्रणे विस्तृत क्रिया सांभाळतात आणि फक्त एकच प्रोफाइल बदलत असेल तेव्हा आवश्यक नसतात.

मुदतीसह थांबा, मग अपयशी व्हा

अंतहीन पोलिंगमुळेच स्क्रिप्ट रात्रभर लटकते आणि पुढील रन अडवते. प्रतीक्षेला मुदत, छोटा मध्यांतर आणि स्पष्ट अपयशाचा निकाल द्या. CONNECTED सोडून प्रत्येक स्थिती, संक्रमण स्थितींसह, तयार नाही असे माना. शेवटी पाहिलेली स्थिती नोंदवा, म्हणजे अपयश स्वतःच स्पष्ट होईल.

मर्यादित लूप अशी दिसते:

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

तीस सेकंद हे उदाहरण आहे, सार्वत्रिक टाइमआउट नाही. प्रोफाइल प्रत्यक्षात वापरत असलेल्या प्रमाणीकरण मार्गावरून मुदत निवडा आणि ती वर्कफ्लोच्या नोंदीत ठेवा.

स्थिती तपासा आणि नावाने डिस्कनेक्ट करा

तेच प्रोफाइल थांबवण्यासाठी त्याच नावाने disconnect कॉल करा. त्यामुळे विनंती मर्यादित राहते आणि इतर कॉन्फिगरेशन्स अभंग राहतात.

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

प्रोफाइलचे नाव आणि नियंत्रक एकत्र वर्कफ्लोच्या नोंदीत ठेवा, अपेक्षित प्रमाणीकरण व पूर्तता तपासण्यांसह. तीच नोंद सहा महिन्यांनंतरही कमांड तपासण्यायोग्य ठेवते.

संगणकासोबत सुरू होण्याचे वर्तन वेगळा मोड आहे. Tunnelblick चा दस्तऐवजीकृत स्टार्टअप पर्याय आणि तो अपेक्षित असलेली क्रेडेन्शियल सेटिंग वापरा. लॉग-इन केलेल्या डेस्कटॉप सत्रात चालणारी कमांड आणि मशीनसोबत सुरू होणारी सेवा एकच संदर्भ सामायिक करत नाहीत. लॉग-इन असताना चालणारी स्क्रिप्ट बूटवरही चालेल असे गृहीत धरू नका. स्टार्टअप मार्ग वेगळा, त्याच मुदत आणि लॉगिंगसह तपासा.

संबंधित लेख