Ssh पर http प्रॉक्सी, मोजे नहीं


30

प्रश्न सरल है, लेकिन इसका उत्तर नहीं है:

ssh -D 8080 user@host

या

ssh -gCNf -D 8080 user@host

या

wathever with -D #

मुझे एक तरह के प्रॉक्सी की जरूरत है जिसका उपयोग मैं http_proxy वैरिएबल के साथ कर सकता हूं, एक एम्बेडेड डिवाइस में जो SOCKS का समर्थन नहीं करता है।

मुझे क्या करना चाहिए?


यह नहीं होना चाहिए ssh -D user@host:8080?
नगीन

मैं इसे ssh के साथ थोड़ी देर पहले किया है .. ssh के माध्यम से vnc। लेकिन आप ssh के माध्यम से स्क्वीड (एक HTTP प्रॉक्सी) का उपयोग कर सकते हैं। याद नहीं कर सकते हैं कि मैं कैसे यह हालांकि इस समय किया था। यह -D 'कॉस नहीं है (जैसा कि आप जानते हैं -और मुझसे बेहतर है) -D मुझे याद है तो SOCKS है।
बार्लोप

@ngen: No. -Dसुरंग को खोलने के लिए एक पोर्ट को निर्दिष्ट करता है, न कि पोर्ट को कनेक्ट करने के लिए। (यहां तक ​​कि कनेक्शन पोर्ट को संगतता कारणों से निर्दिष्ट -p portनहीं किया गया :portहै।)
ग्रेविटी

जवाबों:


33

विधि 1: एक HTTP प्रॉक्सी का उपयोग करें जो SOCKS अपस्ट्रीम, जैसे Polipo या Privoxy का उपयोग करता है।

पहले -Dहमेशा की तरह SSH पर एक सुरंग स्थापित करें , फिर SSH सुरंग का उपयोग करने के लिए HTTP प्रॉक्सी को कॉन्फ़िगर करें - उदाहरण Polipo कॉन्फ़िगरेशन:

proxyAddress = "::1"
proxyPort = 8118
socksParentProxy = "localhost:8080"
socksProxyType = socks5

अंत में, ऐप को पोलीपो का उपयोग करके इंगित करें http_proxy=localhost:8118

विधि 2: अपने प्रोग्राम को torsocksरैपर (या पुराने tsocks) के अंदर चलाएं , जो पारदर्शी रूप से सभी कनेक्शनों को जोड़ता है। यह Tor के साथ उपयोग के लिए था, लेकिन किसी भी SOCKS सर्वर के साथ काम करता है, जिसमें शामिल है ssh -D

विधि 3: अपने सर्वर पर एक HTTP प्रॉक्सी सेट करें , फिर ssh -Lइसे एक्सेस करने के लिए उपयोग करें।


प्रिविक्सी सबसे अच्छा उपाय है। बहुत बहुत धन्यवाद।
सैय्यद मोर्तेजा

18

-Dएक SOCKS सर्वर में हर परिणाम। यदि आपका क्लाइंट SOCKS को नहीं भूल सकता है -D

आपको दूरस्थ होस्ट पर HTTP-प्रॉक्सी चलाना होगा और इसके साथ आगे बढ़ना होगा -L:

ssh -f -N -n -L8080:127.0.0.1:8080 host

2
चलाने के लिए एक प्रॉक्सी के लिए, मुझे "टिनिप्रोक्सी" सुपर सरल मिला और पहले से ही डिफ़ॉल्ट रूप से यथोचित कॉन्फ़िगर किया गया। उबंटू / आदि रिमोट होस्ट पर, बस "सुडोल एप्ट-इंस्टॉल्ड टिनिप्रॉक्सी", और फिर आगे 8888 को पोर्ट के रूप में आगे बढ़ाएं: "ssh -L8888: 127.0.0.1: 8888"
जंबली

7

मेरे पास एक ही मुद्दा है जो एसएसएच के माध्यम से HTTP प्रॉक्सी का उपयोग करना चाहता है। क्योंकि कई एप्लिकेशन केवल HTTP प्रॉक्सी का समर्थन करते हैं, और कमांड लाइन के वातावरण में HTTP प्रॉक्सी का उपयोग करना आसान है।

हालांकि कई पृष्ठों की खोज की गई, लेकिन मुझे ऐसा करने के लिए कोई प्रत्यक्ष (पोलिपो, प्रिविक्सी, या tsocks) तरीके से जंजीर नहीं मिल सकती है ...

एक दिन के काम के बाद, मैंने SSH पर HTTP प्रॉक्सी का एक सरल गोलंग संस्करण समाप्त किया। इसके साथ खेलने के लिए स्वतंत्र महसूस करें: मालोरी

वर्तमान में केवल RSA कुंजी ($ HOME / .sh / id_rsa पर स्थित) और पासवर्ड प्राधिकरण का समर्थन करें।

hostSSH सर्वर पता, है portहै 22, तो अपने व्यवस्थापक द्वारा बदला नहीं गया है। सर्वर साइड sshdजीरो कॉन्फ़िगरेशन वाला हमारा पुराना दोस्त है।

mallory -engine=ssh -remote=ssh://host:port

या उपयोगकर्ता नाम के साथ user

mallory -engine=ssh -remote=ssh://user@host:port

या उपयोगकर्ता नाम userऔर पासवर्ड के साथ1234

mallory -engine=ssh -remote=ssh://user:1234@host:port

कनेक्ट होने के बाद, एक HTTP प्रॉक्सी लोकलहोस्ट: 1315 पर काम करेगा।


4
ssh -L 8080:localhost:12345 user@host

यह स्थानीय मशीन पर पोर्ट 8080 खोलेगा, और रिमोटहोस्ट मशीन से देखा गया कि सभी डेटा को स्थानीय मशीन पर 12345 पोर्ट करने के लिए अग्रेषित करेगा।


2
मत भूलो, आपके पास दूरस्थ होस्ट पर चलने वाला HTTP प्रॉक्सी भी होना चाहिए। पोर्ट फॉरवर्डिंग से कोई मदद नहीं मिलेगी।
जोनाथन

2

दूरस्थ होस्ट पर प्रिविक्सी चलाएँ, फिर -Lविकल्प का उपयोग करके SSH से प्रिविक्सी से कनेक्ट करें :

-L [bind_address:] port: host: hostport
         निर्दिष्ट करता है कि स्थानीय (क्लाइंट) होस्ट पर दिया गया पोर्ट होना है
         दूरस्थ ओर दिए गए होस्ट और पोर्ट को अग्रेषित किया गया। यह
         स्थानीय पक्ष पर पोर्ट को सुनने के लिए एक सॉकेट आवंटित करके काम करता है,
         वैकल्पिक रूप से निर्दिष्ट bind_address के लिए बाध्य है। जब भी कोई चोर-
         इस बंदरगाह के लिए nection बनाया गया है, कनेक्शन को आगे भेज दिया गया है
         सुरक्षित चैनल और एक कनेक्शन पोर्ट होस्ट करने के लिए बनाया गया है
         रिमोट मशीन से होस्टपोर्ट।

( मेनपेज सोर्स )


1

आप कॉर्कस्क्रू (GPL) का भी उपयोग कर सकते हैं

निम्नलिखित को अपने में जोड़ें .ssh/config

Host=RemoteServerIP or Name
User=UserLoginName
Port=PortNumber
ProxCommand=/usr/bin/corkscrew Proxy.Adress PortNumber %h %p

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