मैं SOCKS 5 प्रॉक्सी के साथ SSH का उपयोग कैसे कर सकता हूं?


35

मेरे पास एक SOCKS5 प्रॉक्सी है, जिसे पोर्ट 7777 के साथ एक गतिशील पोर्ट के रूप में कॉन्फ़िगर किया गया है। मैं फ़ायरफ़ॉक्स / फाइलज़िला / आदि का उपयोग करके उन्हें localhostपोर्ट और पोर्ट के साथ सॉक्स प्रॉक्सी का उपयोग करके कॉन्फ़िगर कर सकता हूं 7777। लेकिन मैं यह पता नहीं लगा सकता कि डायनेमिक पोर्ट का उपयोग करके किसी दूरस्थ सर्वर पर ssh (Cygwin के माध्यम से) कैसे किया जाए। क्या यह संभव है?

मैंने ProxyCommandनिम्नलिखित विधि के माध्यम से उपयोग करने की कोशिश की है ।

  1. ~/.ssh/configनिम्नलिखित लाइन के साथ बनाएँ :

    ProxyCommand /usr/bin/nc -X connect -x 127.0.0.1:7777 %h %p
    
  2. Ssh -p22 उपयोगकर्ता @ रिमोटहोस्ट चलाएं

मुझे जो संदेश मिला है ssh_exchange_identification: Connection closed by remote host


1
एक कार्यक्रम बनाने के लिए जो SOCKS को SOCKS के माध्यम से जाने का समर्थन नहीं करता है, आप एक तथाकथित प्रॉक्सी का उपयोग कर सकते हैं; en.wikipedia.org/wiki/Comparison_of_proxifiers देखें । विशेष रूप से, मैं अपने ओपन सोर्स ट्यून्डॉक्स प्रोक्सिफ़र ( code.google.com/p/badvpn/wiki/tun2socks ) की सिफारिश करता हूं ।
अंबोज़ बिज्जक

टिप्पणी के लिए धन्यवाद Ambroz। मुझे इसके लिए साइबरविन में काम करने की आवश्यकता है, और मैं प्रॉक्सिफायर्स पर विकिपीडिया पृष्ठ से देखता हूं कि जिन लोगों का उल्लेख है उनमें से सभी या तो साइबरविन में लागू नहीं हैं या लागू नहीं हैं। क्या कोई तरीका है जो प्रोगिफ़र को साइबरविन में काम करने के लिए मिलता है?

आपको विशेष रूप से Cygwin का समर्थन करने की आवश्यकता नहीं है। सिग्विन कार्यक्रम अंत में सिर्फ विंडोज प्रोग्राम हैं, लेकिन एक पुस्तकालय के रूप में लागू POSIX इंटरफ़ेस के साथ। यदि कोई प्रॉक्सी विंडोज पर काम करता है, तो यह सिगविन प्रोग्राम को ठीक करने में सक्षम होना चाहिए।
अम्ब्रोज़ बिज्जक

जवाबों:


31

आप अपने प्रॉक्सी संस्करण के रूप में HTTPS के लिए 'कनेक्ट' का उपयोग कर रहे हैं, यह मैन nc से है:

-Xxy_version अनुरोध करें कि nc प्रॉक्सी सर्वर से बात करते समय निर्दिष्ट प्रोटोकॉल का उपयोग करें। समर्थित प्रोटोकॉल '' 4 '' (SOCKS v.4), '' 5 '' (SOCKS v.5) और 'कनेक्ट' (HTTPS प्रॉक्सी) हैं। यदि प्रोटोकॉल निर्दिष्ट नहीं है, तो SOCKS संस्करण 5 का उपयोग किया जाता है।

तो आपको SOCKS 5 का उपयोग करने के लिए निम्नलिखित का उपयोग करना चाहिए:

ProxyCommand /usr/bin/nc -X 5 -x 127.0.0.1:7777 %h %p

या केवल:

ProxyCommand /usr/bin/nc -x 127.0.0.1:7777 %h %p

मुझे उम्मीद है यह मदद करेगा।


धन्यवाद समन, यह काम किया! इसके अलावा, स्पष्टीकरण के लिए धन्यवाद, यह मदद करता है।

ProxyCommandअपने की पहली पंक्ति में होना चाहिए ~/.ssh/config', or else nested inside a specify Host` अनुभाग। सच में यकीन नहीं क्यों। यह काम नहीं करता है अगर यह अंतिम पंक्ति में है~/.ssh/config
हारून मैकडैड

@AaronMcDaid: से man ssh_config: "प्रत्येक पैरामीटर के लिए, पहले प्राप्त मूल्य का उपयोग किया जाएगा।" इसलिए ... वैश्विक सेटिंग्स को किसी भी अनुभाग से पहले होना चाहिए Host। की अंतिम पंक्ति ~/.ssh/configअंतिम का हिस्सा है Hostअनुभाग।
एमपीबी

उल्लेख के लायक है कि netcat /bin/ncडेबियन और उबंटू में है।
प्रति लुंडबर्ग

11
ssh -o ProxyCommand='nc --proxy-type socks4 --proxy 127.0.0.1:9050 %h %p' user@host

fc19 x86_64, Ncat: संस्करण 6.25


बस जिज्ञासु - क्यों proxy-type socks4?
सस्पेंस

2
आप कहते हैं कि करने के लिए यह करने के लिए थोड़ा और अधिक विवरण जोड़ सकते हैं क्यों यह समाधान है।
क्रिसएफ

1
@ क्रिस यह स्वीकृत समाधान के समान है, लेकिन यह एक-लाइनर है! किसी भी कॉन्फ़िगर फ़ाइल को संशोधित करने की आवश्यकता नहीं है।
j123b567

1
यह नैम्प ncat कार्यक्रम है ( apt install nmapउबंटू और डेबियन जैसे एपीटी सिस्टम पर आता है ), जो कि नेटकैट (यह नेटकैट-ओपनबेड्स या हॉबिट्स नेटकैट-ट्रेडिशनल है) से अलग है।
एडम काट्ज

1
@ अडसट काट्ज़ टिप्पणी से संबंधित @suspectus, proxy-typeऐसा socks4इसलिए है क्योंकि nmap ncatकार्यक्रम ने हाल ही में sock5 का समर्थन नहीं किया। वास्तव में, यह अभी भी एक मुद्दा है (नवंबर 2017), आरएचईएल 7 / सेंटोस 7 के रूप में नैंप पैकेज पर स्विच किया गया था, लेकिन एक पुराने बिल्ड का इस्तेमाल किया जो मोज़े का समर्थन नहीं करता है
रान्डेल

3

tsocks ( http://tsocks.sourceforge.net/ ) एक अच्छा आवरण है जो LD_PRELOAD का उपयोग किसी भी प्रोग्राम को SOCKS प्रॉक्सी का पारदर्शी तरीके से उपयोग करने के लिए करता है:

tsocks ssh example.com

बस काम करता है, याद रखें SOCKS प्रॉक्सी IP को /etc/tsocks.conf में कॉन्फ़िगर करना


कॉन्फ़िगरेशन फ़ाइल के लिए बहुत जटिल है
जियांग वाईडी

1

यह निम्नलिखित कमांड सिर्फ एनसी का उपयोग करने के लिए करेगा:

ssh examplehost.com -o "ProxyCommand=nc --proxy localhost:7000 %h %p"

डिफ़ॉल्ट HTTP प्रॉक्सी है, पोर्ट 7000 पर एक HTTP प्रॉक्सी चल रही है।

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