ٹرمینل سے نام دیے گئے Tunnelblick پروفائل کو کنٹرول کریں
Tunnelblick AppleScript کے ذریعے connect، state اور disconnect فراہم کرتا ہے۔ اسی انٹرفیس کو بلائیں، کنٹرول ایپ کے پاس رکھیں اور ہر انتظار کو مدت دیں۔
جو اسکرپٹس بیک اپ سے پہلے VPN فعال ہونا چاہتے ہیں وہ اکثر openvpn کو براہ راست چلاتے ہیں۔ اس سے وہ پروفائل، DNS اور روٹ ہینڈلنگ چھوٹ جاتی ہے جو Tunnelblick پہلے ہی سنبھالتا ہے۔ معاون راستہ 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 کا دستاویزی اسٹارٹ اپ آپشن اور وہ اسناد کی ترتیب استعمال کریں جس کی وہ توقع کرتا ہے۔ لاگ اِن ڈیسک ٹاپ سیشن میں چلنے والی کمانڈ اور مشین کے ساتھ شروع ہونے والی سروس ایک ہی سیاق شریک نہیں کرتیں۔ یہ مت سمجھیں کہ لاگ اِن رہتے ہوئے چلنے والی اسکرپٹ بوٹ پر بھی چلے گی۔ اسٹارٹ اپ راستے کو الگ سے، اسی مدت اور لاگنگ کے ساتھ جانچیں۔