VPN सेवाओं की पोर्ट सूचियाँ तुलना पृष्ठों के बीच उस ब्यौरे के बिना कॉपी की जाती हैं जो तय करता है कि वे मायने रखती हैं या नहीं: कनेक्शन कौन शुरू करता है। बाहर जाते TCP 443 की अनुमति देने वाला नियम इस बारे में कुछ नहीं कहता कि कोई दूसरा मेज़बान आपकी मशीन पर किसी श्रोता तक पहुँच सकता है या नहीं। एक भी योजना की तुलना करने से पहले तीन अलग आवश्यकताएँ लिखें, और चिह्नित करें कि आपके काम को वास्तव में कौन-सी चाहिए। वह पत्रक होने पर अधिकांश तुलनाएँ एक ही छोटे प्रश्न में सिमट जाती हैं।

कोई भी पोर्ट सूची पढ़ने से पहले आवश्यकता को अलग करें

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

LineWho starts itWhat can block itQuestion for the provider
Outbound destinationYour applicationEgress filter on the exit nodeIs this protocol and port allowed to that destination?
Inbound publishingA remote peerNo mapping, no public address, short lifetimeWhich protocol, which external port, and how long does the mapping last?
Tunnel transportYour client to the gatewayThe access network drops that protocolDoes the client offer a fallback the local network permits?

विपणन के दावे तीनों पंक्तियों को जानबूझकर धुँधला करते हैं। P2P अनुमति गंतव्य नीति बताती है, समर्पित पता किसी पते का वर्णन करता है, और पोर्ट पर कोई प्रतिबंध न होने का दावा आमतौर पर यह कहता है कि योजना उन्हें सूचीबद्ध नहीं करती। इनमें से कोई भी वाक्यांश बाकी का उत्तर नहीं देता।

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

बाहर जाती पहुँच सुरंग पर नहीं, गंतव्य नीति पर विफल होती है

अनुवाद करने वाले गेटवे से बाहर जाता ट्रैफ़िक स्थिति बनाता है। आंतरिक पते और पोर्ट से पहला पैकेट एक अनुवाद प्रविष्टि बनाता है, और उत्तर उससे मेल खाते हैं, जो RFC 3022 में वर्णित मैपिंग व्यवहार है। इसी कारण ब्राउज़र का टैब सामान्यतः बिना किसी पोर्ट अनुरोध के काम करता है।

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

बहस करने से पहले मापें। ये उस मशीन पर चलाएँ जो सुरंग के पीछे रहेगी, एक बार सुरंग बंद रखकर और एक बार चालू रखकर:

ss -lntup | sort
nc -vz -w 3 203.0.113.10 443
curl -sS -o /dev/null -w '%{http_code}\n' --max-time 5 https://example.com

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

भीतर प्रकाशन के लिए मैपिंग, पता और आयु चाहिए

बाहर से कोई भी आपके श्रोता से कनेक्शन शुरू नहीं कर सकता जब तक सार्वजनिक पक्ष पर कुछ जानता न हो कि इसे कहाँ पहुँचाना है। संचालक के पास रखा स्थिर पोर्ट आरक्षण, UPnP, NAT-PMP या PCP के ज़रिए क्लाइंट द्वारा माँगी गई मैपिंग, और रूट किया गया सार्वजनिक पता — ये तीन अलग उत्पाद हैं, तीन अलग सीमाओं के साथ।

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

पहले स्थानीय आधा हिस्सा पुष्ट करें, क्योंकि मृत श्रोता और अवरुद्ध भीतर आने वाला मार्ग बाहर से एक जैसे दिखते हैं:

ss -lntup | grep -E ':(8080|51820)\b'
python3 -m http.server 8080 --bind 0.0.0.0
curl -sS -o /dev/null -w '%{http_code}\n' http://127.0.0.1:8080

जब स्थानीय अनुरोध 200 लौटाता है और ऐसे नेटवर्क से अनुरोध जिसे आप नियंत्रित नहीं करते, अब भी समय समाप्त होता है, तो अंतराल सार्वजनिक पक्ष पर है। यही वह क्षण है जब अनुप्रयोग को नाम से बताने के बजाय संचालक को प्रोटोकॉल और बाहरी पोर्ट बताना चाहिए।

सुरंग का अपना परिवहन अलग प्रश्न है

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

ClientOuter transportDefault portWhen it helps
OpenVPNUDP1194Default mode; needs outbound UDP to pass
OpenVPNTCP443UDP is dropped and TCP 443 is not
WireGuardUDP51820Short handshake; there is no TCP mode
IKEv2/IPsecUDP500 and 4500Mobile clients; 4500 carries NAT traversal

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

वहाँ रहते हुए विखंडन की एक जाँच उचित है, क्योंकि जुड़कर फिर बड़े स्थानांतरणों पर अटकने वाली सुरंग में आमतौर पर बंद पोर्ट नहीं बल्कि गलत MTU होता है:

ping -M do -s 1400 203.0.113.10
ping -M do -s 1372 203.0.113.10

Windows पर वही जाँच ping -f -l 1400 203.0.113.10 है। जो सबसे बड़ा आकार पार होता है उससे नीचे सुरंग का MTU सेट करें, फिर विफल हुए स्थानांतरण को दोबारा जाँचें।

योजना के लिए भुगतान करने से पहले तीनों पंक्तियाँ जाँचें

तीनों पंक्तियाँ एक पृष्ठ पर रखें और हर खाने को वादे के बजाय मापे गए परिणाम से भरें। ये कमांड उस पृष्ठ का स्थानीय आधा हिस्सा लगभग एक मिनट में बनाते हैं:

ss -lntup | sort
nc -vz -w 3 203.0.113.10 443
python3 -m http.server 8080 --bind 0.0.0.0
curl -sS -o /dev/null -w '%{http_code}\n' http://127.0.0.1:8080
ping -M do -s 1400 203.0.113.10

आउटपुट को जाँच-सूची की तरह पढ़ें। सुरंग चालू होने पर गंतव्य उत्तर दे तो बाहर जाता काम करता है। भीतर आना तभी काम करता है जब आपके नेटवर्क के बाहर का मेज़बान बाहरी पोर्ट पर श्रोता तक पहुँचे। वाहक तब काम करता है जब आपका प्रवेश नेटवर्क जिस प्रोटोकॉल की अनुमति देता है उस पर हैंडशेक पूरा हो।

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

संबंधित लेख