დასახელებული Tunnelblick პროფილის მართვა ტერმინალიდან
Tunnelblick გვაძლევს connect, state და disconnect-ს AppleScript-ის მეშვეობით. გამოიძახეთ ეს ინტერფეისი, დატოვეთ პროგრამა პასუხისმგებლად და ყოველ ლოდინს მიეცით ვადა.
სკრიპტები, რომლებსაც სარეზერვო ასლამდე VPN სჭირდებათ, ხშირად openvpn-ს პირდაპირ უშვებენ. ეს ტოვებს პროფილს, DNS-ს და მარშრუტების დამუშავებას, რომელსაც Tunnelblick უკვე მართავს. მხარდაჭერილი გზაა Tunnelblick-ის საკუთარი AppleScript ინტერფეისი, რომელიც იღებს connect, state და disconnect მოთხოვნებს დასახელებული კონფიგურაციისთვის. გამოიყენეთ ის და დატოვეთ პროგრამა პასუხისმგებლად.
ესაუბრეთ პროგრამას, არა openvpn-ს
Tunnelblick-ს ეკუთვნის OpenVPN პროფილი, ძრავის არჩევანი, სკრიპტები და DNS-ისა და მარშრუტების ინტეგრაცია. ცალკე 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-ის დოკუმენტირებული გაშვების პარამეტრი და ის სერტიფიკატების კონფიგურაცია, რომელსაც ის ელის. შესულ სამუშაო მაგიდის სესიაში გაშვებული ბრძანება და მანქანასთან ერთად დაწყებული სერვისი კონტექსტს არ იზიარებენ. ნუ ჩათვლით, რომ შესვლის დროს მომუშავე სკრიპტი ჩატვირთვისასაც იმუშავებს. გამოსცადეთ გაშვების გზა ცალკე, იმავე ვადით და ჟურნალით.