SSH टनल को होस्टनाम कैसे असाइन करें


17

मैं ssh root@my.server.ip -g -L 4321:localhost:28017 अपने होस्टिंग प्रदाता पर अपने समर्पित सर्वर से मैकबुक से एक सुरंग स्थापित करने के लिए उपयोग कर रहा हूं । यह अच्छा काम करता है। अब मैं दूरस्थ सर्वर (एक MongoDB स्थिति पृष्ठ, एक RabbitMQ पृष्ठ आदि, सभी अन्य बंदरगाहों पर) पर कई व्यवस्थापक साइटों का उपयोग करना चाहता हूं। ये सभी रिमोट मशीन पर 127.0.0.1 से बंधे हैं। मैं इस ssh कमांड को कैसे ट्वीक कर सकता हूं

  • सुरंग को एक नाम निर्दिष्ट करें और मेरे ब्राउज़र में "my.tunnel.name" का उपयोग करें
  • मेरे ब्राउज़र में दूरस्थ पोर्ट को परिभाषित करने में सक्षम होना; मैं विभिन्न साइटों को कॉल करने में सक्षम होने के लिए my.tunnel.name:port से कनेक्ट करना चाहूंगा

यह ssh के साथ संभव है? मैंने अब तक दो दिन मैन पेज पढ़े हैं और लगभग दो दिन गुज़रे हैं, लेकिन यह काम नहीं करता।

--edit 2012-06-01 23: 36-- प्रदान किए गए उत्तरों और टिप्पणियों के लिए धन्यवाद पोर्ट अग्रेषण अब काम कर रहा है

ssh user@remote.server -D 4321

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

जवाबों:


12

आप जो वर्णन करते हैं वह संभव नहीं है। लेकिन अभी भी अच्छी खबर है:

हालाँकि यह संभव है कि SSH सर्वर के साथ एक डायनामिक कनेक्शन को एस्टेब्लिस किया जाए। यह आपके स्थानीय कंप्यूटर पर एक पोर्ट खोलेगा जिसमें आप अपने ब्राउज़र की प्रॉक्सी सेटिंग को इंगित कर सकते हैं और आपको प्रॉक्सी सर्वर के रूप में सुरंग का उपयोग करने की अनुमति दे सकते हैं। लेकिन आपको ब्राउज़र में एक होस्टनाम / आईपी और पोर्ट टाइप करना होगा जैसे कि ब्राउज़र मशीन पर चल रहा था एसएसएच सर्वर।

कमांड इस तरह दिखता है: ssh user@server.example.com -D 1234
फिर अपने ब्राउज़र के प्रॉक्सी को इंगित करें localhost:1234

इसलिए यदि आप सर्वर ए में सुरंग करते हैं, और सर्वर बी से कनेक्ट करना चाहते हैं, तो आप अपने ब्राउज़र में जो भी पता टाइप करेंगे, वह सर्वर ए पर चल रहे ब्राउज़र में टाइप होगा। यदि सर्वर ए पर चल रहा ब्राउज़र सर्वर बी से कनेक्ट नहीं हो सकता है (यदि है तो सर्वर बी पर प्रक्रिया केवल 127.0.0.1 पर सुनती है) फिर भी आप कनेक्ट नहीं कर सके। ऐसा लगता है कि आपके पास सिर्फ एक सर्वर है, लेकिन मैं यह सुनिश्चित करना चाहता था कि यह स्पष्ट था।

यदि आपके पास बस एक सर्वर है, तो आप इसे डायनेमिक कनेक्शन के साथ टनल करते हैं, अपना प्रॉक्सी सेट करें। फिर आप ब्राउज़र में "लोकलहोस्ट: 1234" (उदाहरण के लिए) टाइप कर पाएंगे और यह पोर्ट 1234 पर रिमोट सर्वर पर चल रही सेवा से जुड़ जाएगा।

Securit साइड नोट: कभी भी एक सर्वर को सेट न करें जहां रूट SSH में हो! गंभीर सुरक्षा दोष। उस उपयोगकर्ता के रूप में एक सामान्य उपयोगकर्ता खाता (जो su या sudo के लिए अनुमति देता है) और SSH बनाएँ।


2
जब आप -D 1234 (डायनेमिक पोर्ट फ़ॉरवर्ड) का उपयोग कर रहे हों, तो आप -L 1234 (स्थानीय पोर्ट फ़ॉरवर्ड) का उपयोग कर रहे हैं। और शायद -g का उपयोग करने से बचें, -g का अर्थ है कि दूरस्थ होस्ट आपके फ़ॉरवर्ड से जुड़ सकते हैं, जो कि आप नहीं चाहते हैं यदि आप अपने वर्कस्टेशन से ऐसा कर रहे हैं।
मटियास अहेनबर्ग

धन्यवाद, क्रिस। मैंने पहले ही कोशिश की थी। मैं केवल निर्दिष्ट पोर्ट के साथ ssh कमांड का उपयोग नहीं कर सकता। यह एक त्रुटि देता है: "खराब स्थानीय अग्रेषण विनिर्देश '1234'"
brains_at_work

@ माथियास-एहनबर्ग: महान, जिसने चाल चली। डायनामिक फ़ॉरवर्डिंग के साथ, मैं अब पोर्ट को प्रॉक्सी और लोकलहोस्ट के रूप में उपयोग कर सकता हूं: कुछ कॉल को रिमोट सर्वर पर निर्देशित किया जाता है।
दिमाग_ट_वर्क

@MattiasAhnberg वाह, क्या दिमाग है। सुधार के लिए धन्यवाद।
क्रिस एस

मैंने इस प्रक्रिया का पालन किया, लेकिन फ़ायरफ़ॉक्स में "कनेक्शन रीसेट हो गया" त्रुटि मिली।
रिवू

23

आप इस तथ्य का उपयोग करके एक नाम निर्दिष्ट कर सकते हैं कि आपका लूपबैक एडाप्टर मूल रूप से 127.0.0.0/8 नेटवर्क के किसी भी पते पर प्रतिक्रिया देगा।

इसलिए 4321 को पोर्ट करने के लिए आप 127.1.2.3:4321 पर बांध सकते हैं। फिर बस एक होस्ट प्रविष्टि सेट करें जो एक नाम को लूपबैक पते पर मैप करता है जिसे आपने इतने foo.bar मैप्स में उपयोग किया था 127.1.2.3

अपने व्यवस्थापक कार्य केंद्र पर मेरे SSH कॉन्फ़िगरेशन में मेरे पास कई सुरंगें कॉन्फ़िगर की गई हैं ताकि वे लूपबैक रेंज में कुछ पते पर बाँधें, और मेरी होस्ट फ़ाइल में प्रविष्टियाँ हैं इसलिए मैं समान पोर्ट का उपयोग करके समानांतर में कई सुरंगों को खोलता हूं और उनके बीच अंतर करता हूं नाम दें।

तो अगर आप इस तरह से कनेक्ट करते हैं

ssh root@my.server.ip -g -L 127.1.2.3:4321:localhost:28017

और आपकी मेजबानों की फाइल में इस तरह की एक लाइन है।

127.1.2.3 my.tunnel.name

तब आपको अपने स्थानीय मशीन से my.tunnel.name:4321 से कनेक्ट करने में सक्षम होना चाहिए।

यदि आपके नेटवर्क पर अतिरिक्त IP पता स्थान है, तो आपका ssh क्लाइंट आपसे जुड़ा हुआ है, यहां तक ​​कि आप अपने ईथरनेट इंटरफ़ेस के लिए एक द्वितीयक पता भी दे सकते हैं और अपने वास्तविक IP में से किसी एक का उपयोग कर सकते हैं, और यदि आप चाहते हैं कि अन्य प्रणालियाँ सक्षम हों तो अपने DNS में सेटअप प्रविष्टि करें अपने SSH सुरंग का उपयोग करने के लिए।

-L विकल्प -L [bind_address:]port:host:hostportआपको स्थानीय सिस्टम पर बाँधने के लिए किसी भी मान्य IP पते का उपयोग करने देगा। -gयदि आप अन्य मेजबानों को अपने ssh सुरंग के माध्यम से कनेक्ट करने में सक्षम होना चाहते हैं तो आपको विकल्प भी शामिल करने की आवश्यकता है ।


मुझे ऑक्स में अपने लूपबैक में आईपी को जोड़ना था। ifconfig l0 alias 127.0.1.1 255.255.255.0अन्यथा महान टिप!
devians

1
यदि आप एक शेल नहीं बनाना चाहते हैं, -Nतो कमांड के अंत में चलाएं । इस तरह यह याद रखना आसान है कि यह एक सुरंग है, न कि किसी भी SSH कनेक्शन की।
mlissner

उपयोग करते समय 127.1.2.3मुझे अपनी मैकबुक पर यह करना पड़ा: ifconfig lo0 alias 127.1.2.3 255.255.255.0जो 127.1.2.3इंटरफ़ेस पर एक नए पते के रूप में जोड़ता है lo0
डॉन ली

5

अपने SSH टनल के साथ डायनामिक एप्लिकेशन-लेवल पोर्ट फ़ॉरवर्डिंग (सॉक्स प्रॉक्सी मूल रूप से) बनाएं, और फिर इस के माध्यम से अपने एप्लिकेशन को इंगित करें। एक गतिशील सुरंग बनाने के लिए, निम्नानुसार कनेक्ट करें:

ssh user@host.domain.com -D 127.0.0.1:31337

फिर इसे SOCKSv5 प्रॉक्सी के रूप में उपयोग करने के लिए अपने एप्लिकेशन को कॉन्फ़िगर करें।

यदि आप इसके लिए बाध्य एक होस्टनाम चाहते हैं, तो केवल /etc/hostsप्रविष्टियों को जोड़ दें जो 127.0.0.1 को इंगित करता है, लेकिन पहले सुरंग के लिए 127.0.0.2 जोड़ने के लिए एक अधिक सुंदर तरीका हो सकता है, और इस के लिए एक मेजबान प्रविष्टि, 127.0.0.3 दूसरे के लिए सुरंग और इस के लिए एक अलग मेजबान प्रविष्टि, आदि। यदि आप 127.0.0.1 के लिए उपनाम जोड़ते हैं, तो कभी-कभी यह उपनाम स्थानीय कमांडहोस्ट के अन्य लुकअप में दिखाई देगा जो भ्रामक हो सकता है!

वेबब्रोसर में इसे आसानी से उपयोग करने के लिए, आप एक प्रॉक्सी एडऑन का उपयोग कर सकते हैं, उदाहरण के लिए मैं क्रोम वेबब्रोसर के पक्ष में हूं और इसके लिए मैं एक ऐडऑन नामक का उपयोग करता हूं Proxy Switchy!। आप इसे यहाँ डाउनलोड कर सकते हैं:
https://chrome.google.com/webstore/detail/caehdcpeofiiigpdhbbniblemipncjj

इस ऐडऑन के कॉन्फ़िगरेशन में मैं कई अलग-अलग समरूपताओं को परिभाषित कर सकता हूं, और फिर कुछ निश्चित प्रॉक्सी का उपयोग करने के लिए मेजबानों / यूआरएल के नियमित भावों को बांध सकता हूं, इस तरह मैं हमेशा सही सुरंगों के माध्यम से मैन्युअल रूप से स्विच किए बिना पुनर्निर्देशित हो जाऊंगा। कृपया मुझे बताएं कि क्या आपको किसी भी कदम पर आगे स्पष्टीकरण की आवश्यकता है!


ऐड-ऑन टिप के लिए धन्यवाद। चूंकि मैं क्रोम का उपयोग करता हूं इसलिए मुझे फायरफॉक्स को भी खुला नहीं रखना पड़ता है।
दिमाग_ट_वर्क
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.