SSH से फ़ॉरवर्ड किया गया पोर्ट हमेशा SOCKS प्रॉक्सी नहीं होता
किसी ऐप्लिकेशन को कॉन्फ़िगर करने से पहले SSH के स्थिर लोकल फ़ॉरवर्ड और गतिशील SOCKS श्रोता में अंतर करें।
आप एक SSH टनल बनाते हैं, 127.0.0.1 और उसका पोर्ट ब्राउज़र की प्रॉक्सी सेटिंग में डालते हैं, और कुछ भी लोड नहीं होता। श्रोता पूरी तरह ठीक काम कर रहा हो सकता है। हो सकता है वह बस गलत तरह के ट्रैफ़िक का इंतज़ार कर रहा हो।
| फ़ॉरवर्ड | लोकल ऐप्लिकेशन क्या भेजता है | गंतव्य का चयन |
|---|---|---|
-L | लक्ष्य सेवा का सामान्य प्रोटोकॉल | SSH कमांड में स्थिर |
-D | SOCKS बातचीत, फिर ऐप्लिकेशन ट्रैफ़िक | SOCKS क्लाइंट द्वारा अनुरोधित |
एक ही वेब सर्वर के लिए यह स्थिर फ़ॉरवर्ड है:
ssh -N -L 127.0.0.1:9080:web.example.com:80 [email protected]
http://127.0.0.1:9080/ को वेबसाइट के रूप में खोलें। पोर्ट 9080 को SOCKS न कहें: यह कमांड में नामित उस एक वेब सर्वर तक बाइट भेजता है। किसी साइट को अलग होस्टनाम के अंतर्गत खोलना उसकी वर्चुअल होस्टिंग, रीडायरेक्ट या कुकीज़ को भी प्रभावित कर सकता है।
SOCKS श्रोता के लिए आकार बदल जाता है:
ssh -N -D 127.0.0.1:1080 [email protected]
ऐप्लिकेशन को 127.0.0.1:1080 पर SOCKS इस्तेमाल करने के लिए कॉन्फ़िगर करें। उस पते को सीधे ब्राउज़र की एड्रेस बार में डालने से एक वेब अनुरोध SOCKS श्रोता को चला जाता है, यह एक और प्रोटोकॉल बेमेल है।
OpenSSH मैनुअल दोनों रूपों का दस्तावेज़ीकरण करता है। एक उपयोगी अपवाद है: किसी मौजूदा HTTP प्रॉक्सी को -L से फ़ॉरवर्ड करने पर ऐसा लोकल पोर्ट बनता है जो HTTP प्रॉक्सी प्रोटोकॉल बोलता है, क्योंकि उसका स्थिर गंतव्य स्वयं एक HTTP प्रॉक्सी है। दूर के सिरे की सेवा ही तय करती है कि स्थिर फ़ॉरवर्ड में क्या आता है। मौजूदा प्रॉक्सी को SSH के ज़रिए फ़ॉरवर्ड करना उस प्रॉक्सी का प्रोटोकॉल और खाता बनाए रखता है।