मैंने एक Mac mini पर qBittorrent खोला, Network Interface को utun4 पर सेट किया, फिर से शुरू किया और उसके बाद पूरी दोपहर यह देखते हुए बिताई कि एक टोरेंट मेटाडेटा लाने पर अटका रहा, जबकि VPN अभी भी स्वस्थ कनेक्शन दिखा रहा था। सेटिंग सिद्धांत रूप में गलत नहीं थी; नाम पुराना हो गया था। macOS सेवाएँ शुरू होने पर utun नंबर देता है, इसलिए जो utun4 पिछले हफ़्ते सही था वह अब ऐसी टनल की ओर इशारा कर रहा था जो मौजूद नहीं थी, और क्लाइंट अपने सॉकेट को बिना रूट वाले डिवाइस से बांध रहा था। नीचे दिया क्रम अब मैं इस्तेमाल करता हूँ: चल रही टनल से इंटरफ़ेस पढ़ें, क्लाइंट में उसे चुनें, सत्र फिर से शुरू करें और फिर ट्रांसफ़र तथा जानबूझकर किए गए डिस्कनेक्ट से बाइंडिंग साबित करें।

Advanced खोलें और इंटरफ़ेस फ़ील्ड खोजें

qBittorrent विंडो में Cmd+, से Preferences खोलें और Advanced पृष्ठ पर जाएँ। Network Interface ही वह फ़ील्ड है जो मायने रखता है: यह सिस्टम के इंटरफ़ेस नामों की सूची देता है और डिफ़ॉल्ट रूप से Any Interface पर रहता है, यानी ऑपरेटिंग सिस्टम क्लाइंट द्वारा खोले गए हर सॉकेट के लिए रूट चुनता है। परियोजना का विकल्प संदर्भ इस फ़ील्ड और उस डिफ़ॉल्ट का दस्तावेज़ीकरण करता है, और भीतर के नाम अलग होने पर भी यह हर प्लेटफ़ॉर्म पर वही सेटिंग है।

यहाँ दो बातें लोगों को उलझा देती हैं। सूची en0, en1 और utun0 से utun9 जैसे डिवाइस नाम दिखाती है, कभी VPN प्रदाता का उत्पाद नाम नहीं, इसलिए कुछ समझदारी से चुनने से पहले आपको मैपिंग चाहिए। और चयन तब लागू होता है जब BitTorrent सत्र शुरू होता है, उस पल नहीं जब आप OK दबाते हैं, इसलिए सहेजा हुआ दिखने वाला बदलाव अभी भी पुरानी बाइंडिंग पर चल सकता है।

एप्लिकेशन को Cmd+Q से ठीक से बंद करें और दोबारा खोलने से पहले पुष्टि करें कि प्रक्रिया गई है। विंडो बंद करना केवल उसे छिपाता है, और छिपा हुआ क्लाइंट अपना सत्र, अपना सुनने का पोर्ट और अपना पुराना इंटरफ़ेस रखता है।

pgrep -fl qbittorrent

वह इंटरफ़ेस खोजें जो आपका VPN वास्तव में रखता है

पहले प्रदाता के अपने क्लाइंट से VPN कनेक्ट करें और फिर क्लाइंट के मेन्यू के बजाय सिस्टम का दृश्य पढ़ें। नीचे दिए आदेश हर इंटरफ़ेस को उसके पतों के साथ सूचीबद्ध करते हैं, दिखाते हैं कि सिस्टम किन्हें सक्रिय मानता है और रूटिंग तालिका छापते हैं; आप वह utun डिवाइस खोज रहे हैं जो आपके प्रदाता द्वारा दी गई निजी श्रेणी ले जाता है।

ifconfig -a | grep -A4 '^utun'
scutil --nwi
netstat -rn -f inet | head -n 5

तीन पठन बताते हैं कि कौन-सा डिवाइस टनल है। utun प्रविष्टि को VPN के पूल का inet पता चाहिए। scutil --nwi दिखाता है कि सिस्टम किन इंटरफ़ेस को सक्रिय मानता है और कौन प्राथमिक है। netstat -rn दिखाता है कि डिफ़ॉल्ट रूट कहाँ इशारा करता है, और अगर वह रूट अभी भी en0 की ओर इशारा करता है जबकि किसी utun का पता है, तो टनल सारा ट्रैफ़िक नहीं ले जा रही, जो बदल देता है कि बाइंडिंग बाद में क्या करेगी।

जब एक साथ दो टनल हो सकती हैं, जैसे कार्य प्रोफ़ाइल और निजी, तो दोनों utun डिवाइस मौजूद रहते हैं और उनमें से केवल एक उपयोगी होता है। बाइट काउंटर प्रश्न का फ़ैसला करते हैं: काउंटर नोट करें, कोई पृष्ठ लोड करें या छोटा ट्रांसफ़र शुरू करें और देखें कौन हिला।

netstat -ib | grep utun

नंबर को स्थिर भी न मानें। पुनः कनेक्शन उसी टनल को दूसरा utun नाम दे सकता है, और iCloud या Continuity सेवा आपके VPN के जुड़ने से बहुत पहले utun0 रख सकती है।

बाइंडिंग को टनल के दायरे से मिलाएँ

फ़ील्ड एक डिवाइस बांधता है, और बस इतना ही करता है। अगर VPN पूरी टनल है जो 0.0.0.0/0 को utun में रूट करती है, तो उस डिवाइस से बांधने पर हर पीयर कनेक्शन और हर ट्रैकर अनुरोध VPN से होकर जाता है। अगर VPN विभाजित टनल है जो केवल कुछ सबनेट रूट करती है, तो utun से बांधने पर पीयर ट्रैफ़िक ऐसे डिवाइस पर जाता है जिसके पास उन पीयर के लिए रूट नहीं है, और ट्रांसफ़र लीक होने के बजाय रुक जाते हैं। दोनों परिणाम Any Interface से अधिक सुरक्षित हैं, लेकिन उनमें से केवल एक क्लाइंट को काम करता रखता है। क्लाइंट के बाहर कुछ नहीं बदलता: ब्राउज़र और अन्य ऐप अपने रूट रखते हैं, इसलिए हर एप्लिकेशन को कवर करने वाली आवश्यकता VPN की ओर से लागू करनी पड़ती है।

कुछ चुनने से पहले स्थिति पढ़ें:

What you seeWhat it means for the bind
A utun with a provider address and the default route pointing at itFull tunnel; the bind covers peer and tracker traffic
A utun with a provider address but the default route still on en0Split tunnel; the bind will stall transfers unless the provider routes 0.0.0.0/0
No utun carrying a provider addressThe VPN is down or connects on demand; bring it up before selecting
A utun number that changed since the last sessionThe saved name is stale; reselect and restart

पता परिवार भी मायने रखता है। जो प्रदाता केवल IPv4 देता है वह बंधे इंटरफ़ेस को IPv6 पते के बिना छोड़ देता है, इसलिए IPv6 पीयर Wi-Fi से बाहर खिसकने के बजाय विफल होते हैं। अलग से, सॉकेट बांधना नाम समाधान तय नहीं करता: ट्रैकर होस्टनाम macOS रिज़ॉल्वर से हल होते हैं, जो चुने गए डिवाइस के बजाय सिस्टम के DNS कॉन्फ़िगरेशन का पालन करता है।

सही दिखने वाला चयन विफल होने के तीन तरीके

पहली विफलता फिर से शुरू न करना है। फ़ील्ड utun4 दिखाता है, प्राथमिकताएँ कॉन्फ़िगर दिखती हैं, और परीक्षण ट्रांसफ़र फिर भी Wi-Fi से बाहर जाता है क्योंकि चल रहे सत्र ने पुरानी बाइंडिंग रखी थी। पूरी तरह बंद करें, pgrep से पुष्टि करें, दोबारा खोलें और ट्रांसफ़र फिर शुरू करें।

दूसरी पुनः कनेक्शन के बाद पुराना नाम है। जैसे ही बंधा डिवाइस गायब होता है, पीयर कनेक्शन विफल हो जाते हैं और क्लाइंट साफ़ इंटरफ़ेस-चला-गया संदेश के बजाय ट्रैकर त्रुटियाँ बताने लगता है, जो मृत टोरेंट जैसा लगता है। ifconfig फिर पढ़ें, नया नाम चुनें और फिर से शुरू करें।

तीसरी यह मान लेना है कि बाइंडिंग बंद रूप में विफल होती है। इंटरफ़ेस चुनना सिस्टम से सॉकेट को डिवाइस नाम से जोड़ने को कहता है; जब वह नाम न हो या पुनः उपयोग हो जाए तो क्या होता है, इसकी गारंटी सेटिंग्स स्क्रीन नहीं देती। अगले भाग का डिस्कनेक्ट परीक्षण ही एकमात्र सबूत है जो मायने रखता है।

वास्तविक ट्रांसफ़र और डिस्कनेक्ट से सत्यापित करें

ऐसा ट्रांसफ़र इस्तेमाल करें जिसे चलाने की आपको अनुमति है, जैसे Linux वितरण की इमेज, और VPN जुड़ा होने पर उसे शुरू करें। पहले और बाद में प्रति-इंटरफ़ेस काउंटर देखें और उन्हें VPN क्लाइंट के अपने डेटा काउंटर से तुलना करें; पीयर सूची भरते समय दोनों साथ बढ़ने चाहिए।

netstat -ib | grep utun
pgrep -fl qbittorrent

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

फिर से कनेक्ट करें और चुना हुआ नाम दोबारा जाँचें, क्योंकि टनल किसी दूसरे utun के रूप में लौट सकती है। टनल का प्रकार, इंटरफ़ेस का नाम और VPN गिरने पर अपेक्षित व्यवहार दर्ज करने वाला छोटा नोट अगला सत्र बचाता है: यह सेटिंग प्रति मशीन और प्रति प्रदाता है, और यह न क्लाइंट अपग्रेड सहती है न VPN ऐप बदलने को।

संबंधित लेख