«डिस्कनेक्ट हो रहा है» वह स्थिति है जो क्लाइंट टनल तोड़ते समय बताता है, यह फैसला नहीं कि ट्रैफ़िक रुक गया है। Mac पर वह टूटना एक छोटे क्रम में चलता है, और लेबल तभी बदलता है जब कनेक्शन का मालिक घटक वापस रिपोर्ट करता है। जब कोई चरण किसी हेल्पर, प्लगइन या नीति-निर्णय की प्रतीक्षा करता है, तो इंटरफ़ेस जाने के बाद भी लेबल वहीं रह सकता है, या मेन्यू के अभी दिखाते रहने पर भी टनल पैकेट भेजता रह सकता है। पाठ को «टूटना जारी, परिणाम अज्ञात» मानें और तय करें कि कौन-सा आधा सच है।

दो विफलताएँ मेन्यू बार से एक जैसी दिखती हैं और उलटी प्रतिक्रिया माँगती हैं। एक में टनल अब भी पैकेट ढोता है और केवल प्रदर्शन पुराना है। दूसरे में टनल जा चुका है पर अलग नीति ट्रैफ़िक को अवरुद्ध रखती है, जो अक्सर जानबूझकर होता है। रूट और DNS स्थिति किसी भी मेन्यू क्रिया से तेज़ी से इन्हें अलग करती है।

लेबल किस चीज़ पर नज़र रखता है

VPN क्लाइंट एक छोटी स्थिति-मशीन रखता है, और मेन्यू बार उसका प्रक्षेपण है। जिस कनेक्शन को macOS खुद संभालता है, उसमें वह मशीन सिस्टम के VPN ढाँचे में बैठती है। ऐप-संभाले टनल में वह ऐप और उसके विशेषाधिकार-प्राप्त हेल्पर में बैठती है। किसी स्टॉप का आख़िरी चरण सॉकेट बंद करना नहीं है। वह टनल को काम करने वाली चीज़ों को छोड़ना है: utun इंटरफ़ेस, उसकी ओर इशारा करने वाले रूट, क्लाइंट द्वारा डाले गए रिज़ॉल्वर प्रविष्टियाँ, और जुड़े रहते समय ट्रैफ़िक रोकने वाला कोई भी फ़ायरवॉल नियम या नीति।

ये चरण अलग-अलग हैं, इसलिए स्टॉप इनमें से किसी पर भी अटक सकता है। जवाब देना बंद करता हेल्पर, दूसरा इंटरफ़ेस भी दावा करता रूट, या दूसरी प्रोफ़ाइल की रिज़ॉल्वर प्रविष्टि क्लाइंट को इंतज़ार में छोड़ सकते हैं। लेबल क्लाइंट की अपनी प्रगति की रिपोर्ट है, जो उसे मंशा के बारे में आधिकारिक और नेटवर्क के बारे में अविश्वसनीय बनाती है।

कनेक्शन का मालिक घटक खोजें

मूल कॉन्फ़िगरेशन में scutil --nc list उन सेवाओं को छापता है जिन्हें सिस्टम जानता है और उनकी स्थिति, तथा scutil --nc status "Work VPN" एक सेवा का विवरण देता है। किसी तीसरे पक्ष के ऐप की टनल उस सूची में बिलकुल न दिखे, इसलिए खाली परिणाम यह सबूत नहीं है कि कुछ भी जुड़ा नहीं है।

जब प्रोफ़ाइल किसी ऐप की हो, उसके स्थिति-दृश्य और उसके प्रलेखित «डिस्कनेक्ट करें» नियंत्रण पर भरोसा करें। खिड़की बंद करना स्टॉप अनुरोध नहीं है अगर पृष्ठभूमि हेल्पर टनल का मालिक हो; आइकन गायब हो जाता है और हेल्पर इंटरफ़ेस को जीवित रखता है। Apple का VPN सेटिंग्स संदर्भ मूल नियंत्रण और प्रबंधित सेटिंग्स कहाँ से आती हैं, यह कवर करता है।

इंटरफ़ेस, रूट और DNS पढ़ें

तीन जाँचें कनेक्शन को छुए बिना प्रश्न का अधिकांश उत्तर देती हैं। इन्हें साथ पढ़ना ज़रूरी है, क्योंकि अकेली हर एक भ्रामक है।

scutil --nc list
netstat -rn -f inet | head -20
ifconfig | grep -A 3 '^utun'
scutil --dns | head -30
  • utun इंटरफ़ेस मौजूद, उससे डिफ़ॉल्ट या विभाजित रूट जाता है, रिज़ॉल्वर प्रदाता की ओर: टनल अब भी चालू है और लेबल पुराना।
  • utun नहीं, सामान्य डिफ़ॉल्ट रूट, DNS DHCP से, इंटरनेट नहीं: डिस्कनेक्ट होने पर रोकने वाली नीति अपना काम कर रही है।
  • utun नहीं, रूट नहीं, रिज़ॉल्वर अब भी प्रदाता की ओर: टूटना आधे रास्ते रुका, और DNS वह बची हुई चीज़ है जिसे साफ़ करना है।

फिर एक अनुरोध आंतरिक होस्ट को भेजें जिसे केवल टनल से उत्तर देना चाहिए और एक सार्वजनिक होस्ट को। पहुँच-क्षमता नीति को बची हुई स्थिति से अलग करती है, बिना जाँच को मापन-अभ्यास बनाए। अगर मार्ग अब भी जवाब दे रहा है तो पहले दूरस्थ काम सहेजें, और दूर से प्रबंधित मशीन पर नेटवर्क बदलने से पहले प्रवेश का दूसरा रास्ता तैयार करें।

व्यापक हत्या और प्रोफ़ाइल मिटाना क्यों भ्रमित करते हैं

pppd, racoon और configd जैसे प्रोसेस नाम कुछ ख़ास कार्यान्वयनों के हैं। इन्हें मारना दूसरे कनेक्शनों को प्रभावित कर सकता है, रूट और utun इंटरफ़ेस पीछे छोड़ देता है, और यह कोई रिकॉर्ड नहीं देता कि कौन-सा चरण अटका। पुराना प्रोसेस नाम भी यह सबूत नहीं है कि वह मौजूदा प्रोफ़ाइल का मालिक है।

प्रोफ़ाइल मिटाकर फिर बनाना अटके संक्रमण को साफ़ करने से बड़ा बदलाव है। यह क्या विफल हुआ यह बताए बिना प्रबंधित सेटिंग्स और स्थानीय पहचान-सामग्री फेंक सकता है, और निगरानी वाले Mac पर इसे बस बहाल भी किया जा सकता है। हटाना वास्तव में अप्रचलित कॉन्फ़िगरेशन के लिए रखें और इसके बजाय संक्रमण का निदान करें।

निशान छोड़ने वाला स्टॉप क्रम

नीचे का क्रम कनेक्शन के अपने नियंत्रणों को ज़िम्मेदार रखता है और अटकाव लौटने पर रिकॉर्ड बनाता है। यह आपको प्रदर्शन-समस्या को नेटवर्क बदलाव में बदलने से भी रोकता है।

  1. दूरस्थ काम सहेजें, और अगर Mac दूरस्थ है तो पक्का करें कि आप किसी और तरीके से उस तक पहुँच सकते हैं।
  2. क्लाइंट का नाम, संस्करण और प्रोफ़ाइल नोट करें। log show --last 5m --predicate 'subsystem == "com.apple.networkextension"' के साथ एक छोटी विंडो कैप्चर करें; पुराने संस्करण कम इतिहास रखते हैं, इसलिए अटकाव के तुरंत बाद इसे चलाएँ।
  3. प्रलेखित «डिस्कनेक्ट करें» नियंत्रण इस्तेमाल करें, प्रतीक्षा करें, फिर इंटरफ़ेस और रूट जाँचें दोहराएँ।
  4. अगर लेबल पुराना है पर टनल बंद है, तो उसे रहने दें और प्रोसेस ज़बरदस्ती बंद करने के बजाय क्लाइंट को ताज़ा होने दें।
  5. अगर टूटना सचमुच अटक गया, तो क्लाइंट फिर शुरू करें, फिर काम सहेजे जाने पर Mac को फिर शुरू करने की योजना बनाएँ। प्रबंधित मशीनों को प्रशासक की प्रक्रिया चाहिए।

रिकवरी के बाद पक्का करें कि सामान्य डिफ़ॉल्ट रूट और DHCP रिज़ॉल्वर लौट आए हैं, और अवरुद्ध ट्रैफ़िक या तो बहाल है या जानबूझकर अब भी अवरुद्ध है। प्रोफ़ाइल और क्लाइंट संस्करण को लक्षण के साथ नोट करें, ताकि अगली घटना मेन्यू बार के अनुमान के बजाय सबूत से शुरू हो।

संबंधित लेख