
NAT Tunnel: NAT के पीछे से आसानी से सेवा प्रदान करने के लिए
यदि आपके पास सार्वजनिक IP और अनफ़िल्टर्ड पोर्ट वाले सर्वर तक पहुँच है, तो आप सर्वर पर NAT Tunnel (NT) सर्वर चला सकते हैं, और अपने NAT के पीछे वाले बॉक्स पर NT क्लाइंट चला सकते हैं। सर्वर को 2 खुले पोर्ट की आवश्यकता होती है: एक NT क्लाइंट के साथ संचार के लिए (--admin), दूसरा सामान्य क्लाइंट्स के कनेक्ट होने के लिए (--public: यह वह पोर्ट है जिसका उपयोग आप अपने उपयोगकर्ताओं से करवाना चाहते हैं)।
NT क्लाइंट सर्वर के admin ip/port पर एक कनेक्शन खोलता है। जैसे ही सर्वर को एक नया कनेक्शन प्राप्त होता है, यह NT क्लाइंट को संकेत देता है, जो तब सर्वर के लिए एक नया टनल कनेक्शन बनाता है, जो NT क्लाइंट की ओर वांछित सेवा (--local) से जुड़ा होता है।
NT क्लाइंट और NT सर्वर के बीच admin इंटरफ़ेस पर कनेक्शन अनधिकृत उपयोग के विरुद्ध एक साझा रहस्य (shared secret) द्वारा सुरक्षित होता है। एक प्रतिद्वंद्वी जो पैकेट को इंटरसेप्ट कर सकता है, यदि रहस्य पर्याप्त जटिल नहीं है तो उसे क्रैक कर सकता है। कम से कम 10 यादृच्छिक अक्षरों और संख्याओं की अनुशंसा की जाती है।
उदाहरण: आपके पास अपनी स्थानीय मशीन पर पोर्ट 80 पर एक HTTP सर्वर चल रहा है। आप इसे अपने क्लाउड सर्वर/VPS/आदि के सार्वजनिक IP पर पोर्ट 7000 पर उपलब्ध कराना चाहते हैं। हम क्लाउड सर्वर पर नियंत्रण चैनल के लिए पोर्ट 8000 का उपयोग करते हैं।
सर्वर:
natsrv.py --mode server --secret s3cretP4ss --public 0.0.0.0:7000 --admin 0.0.0.0:8000
क्लाइंट:
natsrv.py --mode client --secret s3cretP4ss --local localhost:80 --admin example.com:8000