SOCKS5 और SOCKS5h: DNS नाम कहाँ हल होता है?
curl में स्थानीय और प्रॉक्सी की ओर से होने वाले DNS रिज़ॉल्यूशन की तुलना करें, नाम हल न होने की वजह पहचानें और socks5h की सुरक्षा का दायरा समझें।
curl में socks5h:// चुनें, जब गंतव्य का नाम प्रॉक्सी को हल करना हो। socks5:// चुनें, जब curl को नाम स्थानीय रूप से हल करके पता प्रॉक्सी को भेजना हो। दोनों SOCKS5 इस्तेमाल करते हैं; अंत का h क्लाइंट के URL की एक परिपाटी है।
स्थानीय लिसनर की जगह अपना SOCKS5 एंडपॉइंट डालकर दोनों मोड की तुलना करें:
curl --noproxy '' --proxy socks5://127.0.0.1:1080 --connect-timeout 5 --max-time 15 --verbose https://example.com/
curl --noproxy '' --proxy socks5h://127.0.0.1:1080 --connect-timeout 5 --max-time 15 --verbose https://example.com/सिर्फ़ नाम हल करने का मोड बदलता है। --noproxy '' इन कॉल के लिए प्रॉक्सी बायपास नियम हटाता है और समय-सीमाएँ तुलना की अवधि सीमित करती हैं। समान काम करने वाले अलग विकल्प --socks5 और --socks5-hostname हैं। लक्ष्य में होस्ट नाम दें: सीधे लिखे IP पते के लिए गंतव्य नाम खोजना ज़रूरी नहीं होता, इसलिए वह यह अंतर नहीं दिखा सकता।
कोई नाम सिर्फ़ एक तरफ़ ज्ञात हो सकता है
मान लें कि प्रॉक्सी किसी डेवलपमेंट नेटवर्क में चलता है, जिसका DNS किसी आंतरिक सेवा का नाम जानता है। आपका लैपटॉप socks5 मोड में वह नाम हल न कर पाए, जबकि socks5h प्रॉक्सी को ऐसा करने देता है। स्थिति उलट दें—नाम सिर्फ़ लैपटॉप की hosts फ़ाइल में हो—तो दूर की ओर होने वाली खोज विफल हो सकती है।
सार्वजनिक DNS भी अलग-अलग नेटवर्क से अलग पते लौटा सकता है। नतीजे अलग हों, तो तुरंत प्रॉक्सी बदलने के बजाय चुने गए पतों और उन तक पहुँच की तुलना करें।
- प्रॉक्सी का होस्ट नाम हल नहीं हो रहा: कोई भी मोड शुरू नहीं हो सकता। क्लाइंट अब भी
proxy.exampleको हल करता है,socks5h://proxy.example:1080में भी। - गंतव्य की स्थानीय खोज विफल: क्लाइंट के रिज़ॉल्वर की जाँच करें या होस्ट नाम प्रॉक्सी को देने वाले मोड से तुलना करें।
- SOCKS सर्वर गंतव्य को अस्वीकार करता है: उसका उत्तर और नीति देखें। स्थानीय खोज सफल होना, दूर की ओर से पहुँच संभव होने का प्रमाण नहीं है।
- टनल चलती है, लेकिन प्रमाणपत्र सत्यापन विफल है: गंतव्य के TLS की जाँच करें; DNS मोड बदलना भरोसे से जुड़ी हर समस्या का हल नहीं है।
अपने नियंत्रण वाले परीक्षण नाम और सर्वर के लॉग से पता चल सकता है कि आपके प्रबंधित प्रॉक्सी तक किस प्रकार का पता पहुँचा। बाहर दिखने वाला IP बताने वाला पेज यह नहीं कर सकता: वह बाहर जाने वाले कनेक्शन की जानकारी देता है, यह नहीं कि DNS कहाँ हल हुआ।
निजता के लाभ का एक तय दायरा है
प्रॉक्सी पर नाम खोजने से इस अनुरोध के गंतव्य की स्थानीय खोज टल जाती है। इससे SOCKS एन्क्रिप्ट नहीं होता, न यह साबित होता है कि प्रॉक्सी एन्क्रिप्टेड DNS इस्तेमाल करता है, और न दूसरे ऐप या ब्राउज़र की प्रीफ़ेच ट्रैफ़िक का रास्ता बदलता है। SOCKS समर्थन वाला Requests भी स्थानीय और प्रॉक्सी पर खोज का यही अंतर इस्तेमाल करता है; दूसरे क्लाइंट curl के URL लेखन के बजाय सेटिंग दे सकते हैं। SOCKS5 प्रॉक्सी सूची से एंडपॉइंट कॉपी करने से पहले अपने ऐप में समर्थित प्रोटोकॉल चुनें।