ऐप्लिकेशन के पास SOCKS विकल्प नहीं है, लेकिन वह चुने गए TCP पते से जुड़ सकता है। स्थिर-लक्ष्य एडाप्टर एक गंतव्य के लिए SOCKS बातचीत प्रदान कर सकता है। उसे दूसरा सामान्य फ़ॉरवर्ड प्रॉक्सी बनने की ज़रूरत नहीं है।

SOCKS4A प्रदान करने वाले socat बिल्ड के लिए एक उदाहरण व्यवस्था यह है:

socat TCP4-LISTEN:9443,bind=127.0.0.1,reuseaddr,fork \
  SOCKS4A:127.0.0.1:service.example.net:443,socksport=1080

SOCKS एंडपॉइंट स्थानीय पोर्ट 1080 है। एडाप्टर स्थानीय पोर्ट 9443 पर सुनता है और उस एंडपॉइंट से service.example.net:443 माँगता है। ये उदाहरण मान हैं, पूर्ण सेवा परिनियोजन नहीं।

एडाप्टर का एक स्थिर लक्ष्य है

हर स्वीकृत TCP कनेक्शन वही सेवा माँगता है। 9443 से जुड़ने वाला ऐप्लिकेशन अपने सामान्य प्रोटोकॉल बाइट देता है; socat SOCKS4A बातचीत देता है। 9443 पर नया HTTP CONNECT अनुरोध भेजना कोई दूसरा गंतव्य नहीं चुनेगा—वह उन बाइट को स्थिर सेवा की ओर भेज देगा।

SOCKS4A दूरस्थ हल के लिए SOCKS एंडपॉइंट को होस्टनाम देता है। यह क्लाइंट-चयनित पते वाले SOCKS4 रूप से भिन्न है। चुने गए अपस्ट्रीम—SOCKS4 प्रॉक्सी सूची से सार्वजनिक उम्मीदवार सहित—को SOCKS4A होस्टनाम प्रबंधन और आवश्यक प्रमाणीकरण का समर्थन करना चाहिए; यह उदाहरण SOCKS5 पासवर्ड-लॉगिन रेसिपी नहीं है।

स्थानीय रूप से जुड़ें, असली सेवा पहचानें

HTTPS URL को https://127.0.0.1:9443/ में बदलने से वह होस्टनाम बदल जाता है जो क्लाइंट TLS और HTTP के लिए उपयोग कर सकता है। service.example.net के लिए प्रमाणपत्र loopback के लिए वैध प्रमाणपत्र नहीं बनेगा।

जहाँ क्लाइंट अलग कनेक्शन राउटिंग का समर्थन करता है, वहाँ मूल URL पहचान बनाए रखें। Curl वह अंतर दिखा सकता है:

curl --noproxy '*' \
  --connect-to service.example.net:443:127.0.0.1:9443 \
  https://service.example.net/

सॉकेट स्थानीय एडाप्टर की ओर जाता है जबकि TLS सत्यापन और HTTP गंतव्य service.example.net रहते हैं। दूसरे ऐप्लिकेशन को अपना समतुल्य समर्थित नियंत्रण चाहिए; हर क्लाइंट वह नहीं देता।

loopback बाइंड नेटवर्क जोखिम सीमित करता है, लेकिन दूसरी योग्य स्थानीय प्रक्रियाएँ अब भी उस तक पहुँच सकती हैं। सेवा का जीवनकाल और उपयोगकर्ता उपयुक्त रखें। loopback URL के कारण होने वाली पहचान त्रुटि को दबाने के बजाय TLS सत्यापन रखें।

संबंधित लेख