Ssh -L से -D के बीच अंतर


52

मैं ssh -L से -D के बीच के अंतर को समझने की कोशिश कर रहा हूं। क्या इसके अलावा कुछ और है -D केवल SOCKS है?

धन्यवाद!

जवाबों:


53

ssh -Lएक स्थानीय बंदरगाह खोलता है। सब कुछ जो आप उस पोर्ट को भेजते हैं वह ssh कनेक्शन के माध्यम से डाला जाता है और सर्वर के माध्यम से निकलता है। यदि आप करते हैं, उदाहरण के लिए ssh -L 4444:google.com:80, यदि आप http://localhost:4444अपने ब्राउज़र पर खोलते हैं, तो आप वास्तव में Google का पृष्ठ देखेंगे।

ssh -Dएक स्थानीय पोर्ट खोलता है, लेकिन इसके साथ एक विशिष्ट समापन बिंदु नहीं है -L। इसके बजाय, यह SOCKS प्रॉक्सी होने का दिखावा करता है। यदि आप खोलते हैं, उदाहरण के लिए ssh -D 7777, जब आप अपने ब्राउज़र को localhost:7777अपने SOCKS प्रॉक्सी के रूप में उपयोग करने के लिए कहते हैं , तो आपका ब्राउज़र अनुरोध सब कुछ ssh सुरंग के माध्यम से जाता है। सार्वजनिक इंटरनेट पर, ऐसा लगता है जैसे आप अपने कंप्यूटर से अपने ssh सर्वर से ब्राउज़ कर रहे थे।


6
-L के बारे में एक महत्वपूर्ण विवरण यह है कि आप केवल स्थानीय उपयोग के लिए एक स्थानीय पोर्ट को बांध सकते हैं, जैसे कि लोकलहोस्ट: :०: रिमोटहॉस्ट: can०L०, लेकिन आप उस पोर्ट को किसी और के लिए भी बांध सकते हैं। तो आप अपने स्थानीय नेटवर्क में एक मशीन को सुरंग के द्वारा एक दूरस्थ मशीन तक पहुंच प्रदान कर सकते हैं, इसके बारे में किसी भी स्थानीय मशीन को पता नहीं है।
डिवाइडबीज़रो सेप

@dividebyzero मुझे यह बताने में परेशानी हो रही है कि आप क्या बता रहे हैं
माइकल डोरस्ट

@ The bind_address of “localhost” indicates that the listening port be bound for local use only, while an empty address or ‘*’ indicates that the port should be available from all interfaces.
मिचेलडॉर्स्ट का

ssh -L 4444:google.com:80मेरे लिए काम नहीं करता है, इसे लॉग इन करने के लिए एक और पैरामीटर की आवश्यकता होती है, जैसे user@example.com
समन मोहम्मदी

6

SSH में, -Dएक स्थानीय "डायनामिक" एप्लिकेशन-लेवल पोर्ट को अग्रेषित करता है।

SSH -D [bind_address:]port

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

IPv6 पतों को एक वैकल्पिक वाक्यविन्यास के साथ निर्दिष्ट किया जा सकता है: [bind_address /] पोर्ट या वर्गाकार कोष्ठक में पता संलग्न करके।

केवल सुपरसुसर विशेषाधिकार प्राप्त बंदरगाहों को आगे बढ़ा सकते हैं। डिफ़ॉल्ट रूप से, स्थानीय पोर्ट गेटवेपोर्ट्स सेटिंग के अनुसार बाध्य है। हालाँकि, एक स्पष्ट bind_address का उपयोग किसी विशिष्ट पते से कनेक्शन को बांधने के लिए किया जा सकता है। "लोकलहोस्ट" का bind_address इंगित करता है कि श्रवण पोर्ट केवल स्थानीय उपयोग के लिए बाध्य है, जबकि एक खाली पता या '*' इंगित करता है कि पोर्ट सभी इंटरफेस से उपलब्ध होना चाहिए।

इसके अतिरिक्त, ssh -Lनिर्दिष्ट करता है कि स्थानीय (क्लाइंट) होस्ट पर दिए गए पोर्ट को दिए गए होस्ट और पोर्ट की तरफ पोर्ट पर भेजा जाना है।

SSH -L [bind_address:]port:host:hostport

निर्दिष्ट करता है कि स्थानीय (क्लाइंट) होस्ट पर दिए गए पोर्ट को दिए गए होस्ट और रिमोट साइड पर पोर्ट को अग्रेषित किया जाना है। यह स्थानीय साइड पर पोर्ट को सुनने के लिए एक सॉकेट आवंटित करके काम करता है, वैकल्पिक रूप से निर्दिष्ट bind_address के लिए बाध्य है। जब भी इस पोर्ट से कनेक्शन बनाया जाता है, तो कनेक्शन को सुरक्षित चैनल पर भेज दिया जाता है, और रिमोट मशीन से पोर्ट होस्टपोर्ट होस्ट करने के लिए कनेक्शन बनाया जाता है। पोर्ट फ़ॉरवर्डिंग को कॉन्फ़िगरेशन फ़ाइल में भी निर्दिष्ट किया जा सकता है। IPv6 पते को एक वैकल्पिक वाक्यविन्यास के साथ निर्दिष्ट किया जा सकता है: [bind_address /] पोर्ट / होस्ट / होस्टपोर्ट या वर्ग कोष्ठक में पता संलग्न करके।

केवल सुपरसुसर विशेषाधिकार प्राप्त बंदरगाहों को आगे बढ़ा सकते हैं। डिफ़ॉल्ट रूप से, स्थानीय पोर्ट गेटवेपोर्ट्स सेटिंग के अनुसार बाध्य है। हालाँकि, एक स्पष्ट bind_address का उपयोग किसी विशिष्ट पते से कनेक्शन को बांधने के लिए किया जा सकता है। "लोकलहोस्ट" का bind_address इंगित करता है कि श्रवण पोर्ट केवल स्थानीय उपयोग के लिए बाध्य है, जबकि एक खाली पता या '*' इंगित करता है कि पोर्ट सभी इंटरफेस से उपलब्ध होना चाहिए।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.