मैं एक स्थानीय SOCKS प्रॉक्सी कैसे सेट कर सकता हूं जो SSH के माध्यम से ट्रैफ़िक को सुरंग करता है?


30

मान लें कि मेरे पास एसएसएच सर्वर का उपयोग है, जो टनलिंग का समर्थन करता है, और मैं एक पीसी पर हूं जो * ubuntu चल रहा है, मैं इंटरनेट तक पहुंचने से पहले उस स्थानीय एसओएचकेएस प्रॉक्सी को उस एसएसएच सर्वर के माध्यम से यातायात कैसे स्थापित करूं?

जवाबों:


45

sshजब आप ssh को चलाने वाले सर्वर से कनेक्ट करते हैं, तो आप जिस बाइनरी का उपयोग करते हैं, वह -Dध्वज के साथ बॉक्स से SOCKS प्रॉक्सी को चलाने का समर्थन करता है । उदाहरण:

ssh -D 1337 -f -C -q -N user@remote -p 22
  • -D 1337sshस्थानीय रूप से पोर्ट 1337 पर एक SOCKS सर्वर लॉन्च करने के लिए कहता है।
  • -f पृष्ठभूमि में इस प्रक्रिया को कांटे।
  • -C संपीड़न पर मुड़ता है।
  • -q "चुप मोड" को सक्षम करता है, क्योंकि यहां उद्देश्य केवल सुरंग के लिए है जो हम वास्तव में त्रुटि आउटपुट और इस तरह की परवाह नहीं करते हैं।
  • -Nबताता है sshकि कोई आदेश नहीं भेजा जाएगा ( -fयदि हम इसे निर्दिष्ट नहीं करते हैं तो शिकायत करता है)।
  • -pनिर्दिष्ट करता है कि किस पोर्ट का उपयोग करना है; जाहिर है कि यह 22 को चूक गया है, इसलिए ऊपर दिया गया बयान निरर्थक है, लेकिन स्पष्टता के लिए इसमें शामिल है।

जब आपका SOCKS सर्वर उठ रहा है और चल रहा है, तो आपको बस यह सुनिश्चित करने की आवश्यकता है कि आपका एप्लिकेशन (आमतौर पर एक वेब ब्राउज़र) स्थानीय SOCKS प्रॉक्सी से कनेक्ट करने का प्रयास कर रहा है, न कि नियमित इंटरनेट।

फ़ायरफ़ॉक्स 29 में (उदाहरण के रूप में यहां बताया गया है), यह मेनू (शीर्ष दाईं ओर तीन सॉसेज) में जाकर प्राप्त किया जाता है, इसके बाद वरीयताएँ> उन्नत> नेटवर्क> (कनेक्शन)> सेटिंग्स ... - सुनिश्चित करें कि आप केवल SOCKS फ़ील्ड भरें! चूँकि आपका प्रॉक्सी एक ही सिस्टम पर है, आप उसी सिस्टम पर जो भी पोर्ट सेट करते हैं, उसका उपयोग localhostया 127.0.0.1वापस इंगित कर सकते हैं ।

यदि आपको अपने DNS अनुरोधों को भी सुरंग में रखने की आवश्यकता है (यदि वे नहीं हैं, तो आपके DNS लुकअप से पता चलेगा कि आप किन वेबसाइटों पर जाने की कोशिश कर रहे हैं), आप बस "रिमोट DNS" पर देख सकते हैं या साथ ही इस पूरे कॉन्फ़िगरेशन में भी कर सकते हैं about:config। अंतिम स्थिति में, इसे खोलें और इन मानों को सेट करें:

network.proxy.socks : 127.0.0.1
network.proxy.socks_port : 1337
network.proxy.socks.remote_dns : true
network.proxy.socks_version : 5
network.proxy.type : 1

आपको कुछ डोमेन या साइटों को टनलिंग से बाहर करने के लिए भी इस सेटिंग की आवश्यकता हो सकती है:

network.proxy.no_proxies_on : localhost, 127.0.0.1, 192.168.0.0/24, .yourcompany.com

यह उत्तर फ्रांस से लिखा गया था, लेकिन स्वीडन से होकर आया था :)


यह केवल फ़ायरफ़ॉक्स पर काम करेगा।
ब्रिअम

4
यह किसी भी तरह से फ़ायरफ़ॉक्स-विशिष्ट नहीं है, मैंने फ़ायरफ़ॉक्स अनुभाग को एक सेवा के रूप में शामिल किया है क्योंकि आम तौर पर लोग एसएसएच टनलिंग का उपयोग करते हैं, यह किसी भी एप्लिकेशन में काम करेगा जो सॉक्स प्रॉक्सी का समर्थन करता है (ssh परवाह नहीं करता है)।
pzkpfw

2
प्रॉक्सी का उपयोग करने के लिए ब्राउज़र स्थापित करने की बात कही। यदि आप Google क्रोम का उपयोग करते हैं, तो आपको ubuntu की नेटवर्क-सेटिंग्स में प्रॉक्सी की घोषणा करने की आवश्यकता होगी , क्योंकि यह वही है जो Google क्रोम उपयोग कर रहा है। इसके बिना प्रॉक्सी को घोषित करने के लिए अनधिकृत सीएलआई विकल्प उपलब्ध हैं। लेकिन कुछ सप्ताह पहले तक यह संभव नहीं था।
मैडमाइक

धन्यवाद, आपने मुझे नरक से बाहर निकाला। और मैं केवल वहां गया क्योंकि मैंने लगभग 10 घंटे पहले आपके उत्तर को ठीक से नहीं पढ़ा था। को -Dऔर -pभाग पर ध्यान देना चाहिए था ।
lakesare

यह भी याद रखना आसान है:ssh -D 1337 user@host
अल्कलिन
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.