टर्मिनलबाट नाम दिइएको Tunnelblick प्रोफाइल नियन्त्रण गर्नुहोस्
Tunnelblick ले AppleScript मार्फत connect, state र disconnect दिन्छ। त्यही इन्टरफेस बोलाउनुहोस्, नियन्त्रण एपकै हातमा राख्नुहोस् र हरेक प्रतीक्षालाई समयसीमा दिनुहोस्।
ब्याकअपअघि 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"'सामान्य साइन-इन सङ्केतहरू पार गर्नुहोस्। macOS ले बोलाउने एपलाई Tunnelblick नियन्त्रण गर्न अनुमति छ कि भनी सोध्न सक्छ; स्वीकृति दिनुअघि कुन एप र कुन लक्ष्य हो हेर्नुहोस्। त्यो संवाद क्लिक गरेर पार गर्ने स्वचालनले संवादको उद्देश्य नै नष्ट गर्छ।
सुरुङ उठ्नुअघि नै 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 को कागजातमा उल्लेखित स्टार्टअप विकल्प र त्यसले अपेक्षा गर्ने प्रमाणपत्र व्यवस्था प्रयोग गर्नुहोस्। लगइन गरिएको डेस्कटप सत्रमा चलाइएको आदेश र मेसिनसँगै सुरु हुने सेवाले एउटै सन्दर्भ साझा गर्दैनन्। लगइन हुँदा चल्ने स्क्रिप्ट बुटमा पनि चल्छ भनी नमान्नुहोस्। स्टार्टअप बाटो अलगै, त्यही समयसीमा र लगिङसहित परीक्षण गर्नुहोस्।