यह शायद बहुत आसान है, लेकिन मैं अभी इसके चारों ओर अपना सिर नहीं लपेट सकता।
मैंने एक उपडोमेन स्थापित किया है, चलो इसे कहते हैं nc.example.com। मेरा DNS और सबडोमेन को रिमोट सर्वर पर इंगित करने के लिए सेट करें, जो Nginx चलाता है जो पोर्ट को अनुरोध को उल्टा करता है 3123।
फिर, मैं नेटकट का उपयोग करने के अनुरोधों के लिए सुनता हूं रीमोट सर्वर , इस तरह:
nc -l 3123
ताकि मैं HTTP अनुरोध प्राप्त कर सकूं nc.example.com।
अगला, मेरे पर स्थानीय मशीन , मैं इस तरह से एक असंबंधित सर्वर (Google के सार्वजनिक DNS) से कनेक्ट करने के लिए netcat का उपयोग करता हूं:
$ nc 8.8.8.8 80
GET / HTTP/1.1
Host: nc.example.com
(अतिरिक्त 2 newlines के साथ ताकि यह HTTP अनुरोध को पूरा करे, लेकिन यहां प्रदर्शित नहीं किया जा सकता)
मैं अपने पर कनेक्शन प्राप्त करता हूं रीमोट सर्वर निम्नलिखित नुसार:
$ nc -l 3123
GET / HTTP/1.1
Connection: upgrade
Host: nc.example.com
X-Real-IP: <redacted_1>
X-Forwarded-Host: nc.example.com
X-Forwarded-Server: nc.example.com
X-Forwarded-For: <redacted_2>, <redacted_1>
अब, मुझे यकीन नहीं है कि ऐसा क्यों होता है, क्योंकि मैंने सोचा था कि nc से जुड़ेंगे 8.8.8.8मेरे सर्वर के आईपी पते के बजाय। है 8.8.8.8 मेरी ओर से मेरे सर्वर से अनुरोध को अग्रेषित करना? क्या इसके परिणामस्वरूप कोई सुरक्षा निहितार्थ हैं?
संपादित करें :
मुझे बस एहसास हुआ <redacted_2> एक निजी आईपी पता है ( 172.24.199.96 ) मेरे "होम" नेटवर्क को सौंपा गया (इसे एक्सेस करके मुझे मेरे राउटर के होमपेज पर लाया गया)। मैं अपने कॉलेज के नेटवर्क के भीतर ऐसा कर रहा हूं।
क्या इसका मतलब यह है कि अपस्ट्रीम राउटर मेरे लिए अनुरोध पर आधारित है, जिसके आधार पर Host शीर्षक? यह समझ में आता है क्योंकि मेरे कॉलेज ने हाल ही में कुछ प्रकार के नेटवर्क फ़िल्टरिंग को लागू किया है, हालांकि इसके बारे में अधिक विवरण नहीं है। हालांकि मुझे समझ नहीं आ रहा है कि यह इस तरह से व्यवहार क्यों करता है?
redacted_2एक निजी आईपी पता है। मेरा अपस्ट्रीम राउटर शायद समीपता कर रहा है, लेकिन यह आगे के अनुरोधों पर आधारित क्यों होगाHostशीर्षक?