आईपी ​​को नियमित रूप से बदलने वाली लाइनक्स मशीन से कैसे जुड़ें?


12

मेरी समस्या SSH को एक लिनक्स सर्वर (उबंटू 18.04) में मिल रही है, जिसका आईपी पता रोज बदलता है।

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

मैं SSH सेटअप करने में सक्षम हूं, और यह आईपी पते के बदलने तक स्थानीय और दूरस्थ रूप से ... दोनों काम करता है। एक बार ऐसा होने के बाद, मैं अब नए IP पते का उपयोग करके दूरस्थ रूप से कनेक्ट करने में सक्षम नहीं हूं।

  • क्या मुझे हर बार IP पता बदलने पर SSH सेवा को पुनरारंभ करने की आवश्यकता है?
  • यदि हां, तो क्यों?
  • क्या एसएसएच पहुंच की अनुमति देने के लिए आईपी पते में परिवर्तन होने पर मुझे कोई अन्य कार्रवाई करने की आवश्यकता है?

अपडेट करें

स्पष्ट होने के लिए, मेरी समस्या नया आईपी पता नहीं ढूंढ रही है। मेरे पास पहले से ही ऐसा करने के लिए एक स्क्रिप्ट है। समस्या यह है कि सर्वर एक बार आईपी परिवर्तन का जवाब देना बंद कर देता है, भले ही मैं नए आईपी पते का उपयोग करके कनेक्ट करने का प्रयास करता हूं।

यदि मैं लक्ष्य मशीन पर SSH सेवा को पुनरारंभ करता हूं, तो मेरे पास फिर से रिमोट एक्सेस है। लेकिन मुझे समझ नहीं आ रहा है कि मुझे ऐसा क्यों करना चाहिए। मैं एक बेहतर समाधान खोजने की उम्मीद में मूल कारण जानना चाहूंगा।

ज्यादातर लोगों को लगता है कि एसएसएच को तब तक काम करना चाहिए जब तक हम नए आईपी को जानते हैं, इसलिए यह 18.04 के लिए अद्वितीय है? मैंने हाल ही में क्लाइंट के लिए यह सर्वर स्थापित किया है, इसलिए सभी कॉन्फ़िगरेशन सेटिंग्स अभी भी डिफ़ॉल्ट हैं। (यह कैसे बदलना है पता नहीं होगा।)



12
उनके आईएसपी पर चिल्लाओ। दिन में एक बार आईपी एड्रेस बदलना व्यावसायिक कनेक्शन के लिए बेतुका है, और यह आवासीय कनेक्शन के लिए अपेक्षाकृत अनसुना है।
माइकल हैम्पटन

2
आप कहते हैं कि IP पता बदलते ही ssh एक्सेस काम करना बंद कर देती है। लेकिन आपने यह नहीं कहा है कि यह फिर से कब काम करना शुरू करता है। मुझे लगता है कि इसे किसी तरह फिर से काम करना शुरू करना होगा, अन्यथा आप इसे हर दिन काम करना बंद नहीं कर सकते। और कुछ भी नहीं है जिसे आप तब करते हैं जब आईपी पता बदल जाता है। Ssh सर्वर तुरंत नए IP पते पर पहुंच जाएगा।
कास्परड

1
डीडीएनएस चलाने की तरह कुछ अजीब हो सकता है, और ListenAddress <dynamic host name>sshd config फाइल में ऐसा कुछ हो सकता है, क्योंकि कोई व्यक्ति आंतरिक उपयोगकर्ताओं को सर्वर में ssh करने में सक्षम नहीं होना चाहता था। यह वास्तव में आईपी परिवर्तन हर बार ssh सर्वर को पुनरारंभ करने की आवश्यकता होगी।
गुंतराम ब्लोह

1
@ मिचेल हैम्पटन: येलिंग शायद मदद नहीं करेगा, वसीयत करना। IPv4 पतों की वर्तमान कमी के साथ, अधिकांश प्रदाता स्थैतिक IPv4 पते के लिए अतिरिक्त शुल्क लेते हैं (कुछ तो गैर-स्थैतिक सार्वजनिक IP पते के लिए अतिरिक्त शुल्क लेते हैं, अन्यथा आपको ड्यूल स्टैक लाइट मिलती है )। बेशक, अगर ओपी IPv6 पर है, तो चीजें बदल जाती हैं ...
Sleske

जवाबों:


21

अन्य उत्तरों से लगता है कि आपके प्रश्न में एक बात की अनदेखी की गई है:

एक बार ऐसा होने के बाद, मैं अब नए IP पते का उपयोग करके दूरस्थ रूप से कनेक्ट करने में सक्षम नहीं हूं

डीडीएनएस आपको नए आईपी पते का पता लगाने में मदद करेगा, लेकिन यह यहां समस्या नहीं है।

दुर्भाग्य से, एक नया आईपी प्राप्त करने वाले सर्वर को मानक सेटअप में कोई समस्या नहीं होनी चाहिए जहां आईएसपी राउटर प्रदान करता है, राउटर के पीछे सर्वर का आंतरिक पता होता है, और राउटर पोर्ट अग्रेषण करता है। एक अच्छा जवाब पाने के लिए आपको नेटवर्क टोपोलॉजी के बारे में अधिक जानकारी प्रदान करने की आवश्यकता हो सकती है।

मैं कल्पना कर सकता हूँ कि सर्वर एक राउटर के पीछे नहीं है और अपना PPPoE कनेक्शन कर रहा है, और क) सर्वर पुनः आरंभ के बिंदु पर विशिष्ट इंटरफ़ेस पते पर बाइंड करने वाला ssh सर्वर, b) मशीन पर एक फ़ायरवॉल जो आने वाले ssh को अनुमति देता है फ़ायरवॉल के साथ बस सर्वर का आईपी अद्यतन नहीं करता है जब आईपी बदल जाता है।

पहले मामले की जांच करने के लिए, ए netstat -nta | grep -w 22 | grep LISTEN। अगर यह 0.0.0.0:22 कहता है, यह ठीक है; यदि यह एक विशिष्ट आईपी को सूचीबद्ध करता है, तो sshd config फाइल ( /etc/sshd.conf) की जांच करें ListenAddress

दूसरे मामले की जाँच करने के लिए, जाँच करें iptables -L -nऔर जाँच करें कि INCOMINGश्रृंखला में कोई एक नियम आपके सर्वर के आईपी और पोर्ट 22 से मेल खाता है या नहीं।

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

संपादित करें

जैसा कि सर्वर एक राउटर के पीछे है, उपरोक्त विचार शायद (*) लागू नहीं होते हैं। इस सेटअप में, राउटर में एक बाहरी आईपी (जो दैनिक बदलता है), और आपके आंतरिक उपकरणों में कुछ 10.xyz या 192.168.xy पते होने चाहिए, जिन्हें बदलना नहीं चाहिए। आप बाहरी पते से कनेक्ट होते हैं, और राउटर को आंतरिक पते पर पोर्ट-फॉरवर्डिंग नियम होना चाहिए।

बाहरी IP परिवर्तन (मौजूदा ssh कनेक्शन हालांकि गिरा दिया जाएगा) पर यह पोर्ट अग्रेषण नहीं टूटना चाहिए, लेकिन शायद यह एक नियम है जो आपके द्वारा सेटअप नहीं किया गया था, लेकिन कुछ यूपीएनपी मैजिक द्वारा, रूटर को यूपीएनपी को आगे बढ़ने के साथ छोड़ दिया जाता है। एक नया पता, और sshd केवल नियम को शुरू करने पर पुनः आरंभ करता है। क्या आपने राउटर के भीतर एक पोर्ट फारवर्डर की स्थापना की थी।

या, यह सर्वर का आंतरिक आईपी ​​है जो बदलता है - उस स्थिति में, आपके डीएचसीपी के साथ कुछ गंभीर रूप से टूट गया है। अपने सर्वर को एक निश्चित आंतरिक पता दें।

या, क्या आप IPV6 का उपयोग कर रहे हैं? कुछ कॉन्फ़िगरेशन हैं जहां एक डिवाइस अपने आईपी को ट्रैक करना आसान बनाता है ताकि इसे ट्रैक करना आसान हो सके। उदाहरण के लिए देखें, https://www.internetsociety.org/blog/2014/12/ipv6-privacy-addresses-provide-protection-against-surve सर्विलांस-and - tracking/ - लेकिन उस मामले में, आपके लिए शर्म की बात है अपने मूल पोस्ट में इसका उल्लेख करना। इसका मतलब यह हो सकता है कि आपका राउटर NAT नहीं कर रहा है, और मेरे मूल विचार अभी भी एक राउटर के पीछे वैध हैं।


2
+1 वास्तव में पूछे गए सवाल का जवाब देने के लिए पहला उत्तर होने के लिए।
कास्परड

@Guntram Blohm उत्तर के लिए धन्यवाद! राउटर के पीछे सर्वर होता है। क्या ये दोनों संभावनाएँ उस परिदृश्य में अभी भी सही हैं? यदि ऐसा है, तो मैं अगले दिन या जब मैं स्थानीय रूप से लक्ष्य मशीन का उपयोग कर सकता हूँ, तब दोनों की जाँच करूँगा।
रिचर्ड

11

डायनेमिक DNS एक विकल्प है, दूसरे में सर्वर मेल है या अन्यथा आपको आईपी भेजना है। एक साधारण HTTP कॉल (एक समापन बिंदु जिसे आप नियंत्रित करते हैं और अनुरोधों को लॉग ऑन करते हैं) करते हैं।

पूरे सार्वजनिक नेटवर्किंग को दूसरे तरीके से हल करना और साथ ही संभव है; आपके पास सर्वर सेटअप एक रिवर्स सुरंग, या एक वीपीएन कनेक्शन हो सकता है, जो आईपी परिवर्तन से प्रभावित नहीं होगा।

नए पते पर जवाब नहीं देने वाली सेवाओं के बारे में: यह पूरी तरह से आपके नेटवर्क सेटअप पर निर्भर करता है। उदाहरण के लिए: DHCP के माध्यम से एक आंतरिक इंटरफ़ेस पर WAN IP और स्टार्टअप पर ज्ञात अपने इंटरफ़ेस पर केवल IP को सुनने के लिए सेट SSH सर्वर का अर्थ होगा sshd को इंटरफ़ेस परिवर्तनों पर पुनः आरंभ करना होगा।


1
जैसा कि प्रश्न में वर्णित है, नए आईपी पते को खोजने के लिए पहले से ही एक समाधान है। इस प्रकार डायनेमिक DNS जोड़ने से वास्तव में कोई समस्या हल नहीं होगी। वर्णित समस्या यह है कि IP पता बदलने पर ssh सर्वर प्रतिक्रिया देना बंद कर देता है। आपने उस समस्या का समाधान नहीं किया है। आईपी ​​कनेक्शन बदलने पर वीपीएन कनेक्शन और रिवर्स सुरंग ओटीओएच काम करना बंद करने की उम्मीद करते हैं, इसलिए आपको स्वचालित रूप से पुनरारंभ करने के लिए कुछ जगह चाहिए।
कास्परड

7

आपको वास्तव में ddns सेवाओं पर ध्यान देना चाहिए। जहां तक ​​दूरस्थ रूप से गतिशील आईपी पते के साथ एक निश्चित मशीन से जुड़ने में सक्षम होने की बात है; ddns सबसे अधिक इस्तेमाल किया जाने वाला घोल है।

https://noip.com पर साइन अप करें और एक खाते के लिए साइन अप करें (यह, इरर ... माना जाता है..कॉफ..कोफ .. एक ही नेटवर्क पर चलने वाली 1-3 मशीनों के लिए नि: शुल्क (यदि गलत नहीं है, तो उद्धरण नहीं) मुझे यहाँ: इसकी थोड़ी देर के बाद से ive ने इन 'मुफ्त' सेवाओं में से किसी पर भरोसा किया ...)। अन्य विकल्प भी हैं जैसे Afraid DNS ( https://freedns.afraid.org/) और यहां तक ​​कि सिस्को, ओपन डीएनएस: का भी उपयोग किया जा सकता है (बशर्ते कि यह आप केवल ग्राहक नहीं हैं, मैं आपको एक छाता खाता परीक्षण के लिए साइन अप करने का सुझाव दूंगा, इसे स्पिन के लिए ले जाऊंगा और बाद में असली के लिए साइन-अप करूंगा। सौदा >>> वे यहां तक ​​कि उनमें से एक जीयूआई-जैसे डाउनलोड करने योग्य एक्सटेंशन भी प्राप्त कर चुके हैं जो अपने क्लाइंट के आईपी परिवर्तन को स्वचालित रूप से ddns होस्टनाम को नवीनीकृत करेंगे। यह वास्तव में सबसे आसान, गैर-तकनीकी प्रेमी तरीका है जो मुझे पता है [बस यदि आप अपने ग्राहकों में से किसी एक को कॉल करते हैं और GUI डाउनलोड करने के लिए पूछते हैं ....])


3
हालांकि यह निश्चित रूप से आईपी पते को बदलने के लिए एक मेजबान तक पहुंचने के लिए सहायक है, यही वह सवाल नहीं है जिसके बारे में पूछ रहा है। सवाल यह है कि आईपी एड्रेस में बदलाव होने और उसे ठीक करने के लिए ssh सर्वर जवाब देना बंद कर देता है। एक गतिशील डीएनएस सेवा वह पता नहीं लगाती है।
कैस्परल्ड

4

मैं SSH सेटअप करने में सक्षम हूं, और यह आईपी पते के बदलने तक स्थानीय और दूरस्थ रूप से ... दोनों काम करता है। एक बार ऐसा होने के बाद, मैं अब नए IP पते का उपयोग करके दूरस्थ रूप से कनेक्ट करने में सक्षम नहीं हूं।

कभी-कभी, DHCP परिवर्तनों को प्रभावी होने में कुछ समय लगता है। लक्ष्य मशीन पर DHCP क्लाइंट को रीसायकल करने का प्रयास करें

$> sudo dhclient -r
$> sudo dhclient
Do I need to restart the service every time the IP address changes?
If so, why?

नहीं। कॉन्फ़िगरेशन बदलते समय ( /etc/ssh/sshd_conf) में आपको केवल अपनी ssh सेवा को पुन: चक्रित करना होगा ।

क्या एसएसएच पहुंच की अनुमति देने के लिए आईपी पते में परिवर्तन होने पर मुझे कोई अन्य कार्रवाई करने की आवश्यकता है?

नहीं।

मेरे पास एक उपाय है कि आप अपने टारगेट मशीन पर सेटेलमेल को भेजते हैं।

यह स्क्रिप्ट एक ईमेल भेजती है जो आईपी पते को दिखाती है कि दुनिया को लगता है कि हमारे पास है (धन्यवाद ipify.org)। ईमेल में हमेशा सबसे वर्तमान आईपी पता होगा।

  1. Dhcp-अधिसूचित बैश स्क्रिप्ट बनाएं (बिना .sh एक्सटेंशन के)
  2. में स्क्रिप्ट रखो /etc/dhcp/dhclient-exit-hooks.d

    #!/bin/sh
    case "$reason" in (BOUND|RENEW|REBIND|REBOOT)
    (
       echo To: me@my.email
       echo From: me@my.email
       echo "Content-Type: text/html; "
       echo Subject: DHCP reason: $reason
       echo
       echo Your IP address is: `curl -s https://api.ipify.org`
    ) | sendmail -t
    ;;
    esac
    

यदि यह काम नहीं करता है, तो आप हमेशा आपको वर्तमान आईपी पता भेजने के लिए एक क्रोन स्थापित कर सकते हैं (केस स्टेटमेंट खो सकते हैं)।

#!/bin/sh
(
   echo To: me@my.email
   echo From: me@my.email
   echo "Content-Type: text/html; "
   echo Subject: IP address change
   echo
   echo Your IP address is: `curl -s https://api.ipify.org`
) | sendmail -t

मैं बस यह सुझाव देने वाला था, यह एक महान विचार है, और पहली बात जो मेरे दिमाग में आई जब मैंने प्रश्न पढ़ा। इसके अलावा, यदि आप api.ipify.org के साथ समस्या कर रहे हैं (यह किसी कारण से मेरे स्कूल नेटवर्क पर अवरुद्ध है), तो आप इस दूसरी साइट का उपयोग कर सकते हैं जिसे मैंने कुछ महीने पहले बनाया था जो समान काम करता है: findip.win
undo

@karlchilders उत्तर के लिए धन्यवाद! मेरे पास पहले से ही एक क्रोन स्क्रिप्ट है जो मुझे आईपी पते की रिपोर्ट कर रही है, लेकिन मुझे dhclient हुक के बारे में कोई पता नहीं था। यह बहुत अच्छा है! मैं बहुत बल्कि आईपी केवल रिपोर्ट की है जब यह वास्तव में बदल जाएगा। प्रश्न: यदि यह स्क्रिप्ट आईपी पते को काम करने और रिपोर्ट करने में सक्षम है, तो रीसाइक्लिंग को dhclient का SSH पहुंच पर प्रभाव क्यों पड़ेगा?
रिचर्ड

@karlchilders या क्या यह स्क्रिप्ट तभी काम करती है जब आप मैन्युअल रूप से dhclient को रीसायकल करते हैं?
रिचर्ड

dhclient -r; dhclient dhcp लीज को नवीनीकृत करेगा ताकि आपका होस्ट चालू हो। हुक किसी भी समय काम करेगा जब कोई dhcp ईवेंट मैन्युअल रूप से या अन्यथा होता है।
कार्लचाइल्डर्स

@ रीचर्ड कृपया किसी एक उत्तर को पसंदीदा उत्तर के रूप में चिह्नित करें। धन्यवाद।
कर्लचाइल्डर्स

3

बॉक्स के बाहर सोच - आप एक निश्चित IPv6 पते की व्यवस्था कर सकते हैं? यह आमतौर पर केवल आईपीवी 4 पते हैं जिन्हें उनकी कमी के कारण बदलने की आवश्यकता है।


जिस IP पते को मैं नीचे खींचता हूं, वह वास्तव में हर बार IPv6 है।
रिचर्ड

1
@ रिचर्ड: यह सुनने के लिए क्षमा करें, यह आपके लिए काम नहीं करता है। मैं उन अन्य लोगों के लिए जवाब छोड़ दूंगा, जिन्हें IPv4 की समस्या है।
एमएसलटर्स

@ रिचर्ड आपको अपने प्रश्न में वास्तव में उल्लेख करना चाहिए कि आप आईपीवी 6 के साथ काम कर रहे हैं। यह समस्या को काफी अलग बनाता है।
डबू

1
@ डब्यू यह वास्तव में समस्या को अलग बनाता है। इस तरह की समस्या अभी IPv6 पर होने वाली नहीं है, यही वजह है कि हर कोई मान सकता है कि यह IPv4 था। लेकिन वास्तव में आप कुछ वर्णित लक्षणों को प्राप्त कर सकते हैं यदि आप गलती से एक स्थैतिक पते के बजाय एक गोपनीयता पते का उपयोग करते हैं। यदि उदाहरण के लिए आप एक वेबसाइट से पूछते हैं कि आपका आईपी पता क्या है, तो यह आपके स्टेटिक पते को आपके स्थिर पते के बजाय दिखाएगा। और ssh कनेक्शन के लिए इसका उपयोग करना एक अच्छा विचार नहीं है। अभी भी यह नहीं समझाता है कि यह तब तक काम क्यों नहीं करता जब तक ssh सर्वर को फिर से शुरू नहीं किया गया।
कास्परड

1
@ डब्यू: यह एक गैर-मानक दृष्टिकोण है। DHCPv6-PD (उपसर्ग प्रतिनिधि) DHCP यूनिक आईडी (DUID) के साथ संयोजन में इसे रोकना चाहिए।
एमएस

1

मैं लगभग एक साल से कर रहा हूं। मैं इस साल जनवरी में आपकी समस्या में भाग गया, जबकि मैंने अपने स्थानीय विश्वविद्यालय में भाषण दिया था।

यह स्क्रिप्ट तब से मेरी मशीन पर चल रही है: // बहुत ज्यादा आत्म-व्याख्यात्मक //

import smtplib
from requests import get
import time

user = 'exampleemail@gmail.com'
psd = 'examplepassword'
msg = 'Hey, your ip has changed! Use this one from now on: '
currip = '0.0.0.0' # It'll send an email the first time you execute this aswell
while True:
    newip = get('https://api.ipify.org').text
    if currip == newip:
        print("nonewip")
        #You can just comment the line above this one if you want to
    else:
        tmpmsg = "\n"+msg + newip +" The old one used to be: "+currip
        currip = newip
        server = smtplib.SMTP('smtp.gmail.com', 587)
        server.connect('smtp.gmail.com')
        server.ehlo()
        server.starttls()
        server.ehlo()
        server.login(user,psd)
        #You can change the second parameter, use ('from','to','message')
        server.sendmail(user, user, tmpmsg)

        server.quit()
        with open('/home/pi/DEV/iphistory.txt', 'a') as f:
            f.write('newip: '+currip+'\n')
            f.close()
        print('New IP Found: '+tmpmsg)
    time.sleep(7200)

पायथन 3.x को त्रुटिपूर्ण रूप से काम करना चाहिए शायद वहां से सबसे अच्छा समाधान न हो, लेकिन यह काम करता है।

मशीन के सार्वजनिक IP परिवर्तन होने पर आपको हर बार अपने इनबॉक्स में एक ईमेल मिलेगा।

अब, आपके प्रश्नों के बारे में:

क्या मुझे हर बार आईपी पता बदलने के बाद सेवा को पुनः आरंभ करने की आवश्यकता है? यदि सेवा को पुनरारंभ करने से आपका मतलब है कि आप ssh कनेक्शन को फिर से स्थापित कर रहे हैं, तो हाँ।

यदि हां, तो क्यों? क्योंकि यदि आप जिस पते पर संपर्क करने का प्रयास कर रहे हैं वह अब वह सेवा प्रदान नहीं करता है जिसकी आपको तलाश है। यह अब आपकी मशीन नहीं है।

क्या एसएसएच पहुंच की अनुमति देने के लिए आईपी पते में परिवर्तन होने पर मुझे कोई अन्य कार्रवाई करने की आवश्यकता है? नए पते पर बस एसएसएच।

चीयर्स! JSR


उत्तर @JSR के लिए धन्यवाद! मैंने वास्तव में मुझे आईपी पते की रिपोर्ट करने के लिए एक समान स्क्रिप्ट लिखी है। लेकिन एक बार जब यह बदल जाता है, यहां तक ​​कि नए आईपी पते को जानते हुए भी, मैं दूरस्थ मशीन में एसएसएच में असमर्थ हूं। क्या आपने उस मुद्दे का सामना किया है?
रिचर्ड

क्या आप वाकई सही पता प्राप्त कर रहे हैं? यदि ऐसा है, तो आईपी मिलते ही इसे पिंग करने की कोशिश करें। मैंने उस मुद्दे को पहले कभी नहीं देखा है। इसके अलावा, यदि आप नहीं जानते हैं, तो आप "python3 scriptname.py" के साथ बैकग्राउंड पर स्क्रिप्ट चला सकते हैं और साथ ही, राउटर के फ़ॉरवर्डिंग पोर्ट को भी चेक कर सकते हैं। 'परिवर्तन नहीं है, लेकिन अभी भी यह जाँच के लायक है।
Jaime Satorres Rey

हां, आईपी सही है। यदि मैं लक्ष्य मशीन पर SSH सेवा को पुनरारंभ करता हूं, तो मैं फिर से कनेक्ट करने में सक्षम हूं। लेकिन मुझे समझ नहीं आता कि ऐसा क्यों होना चाहिए।
रिचर्ड

@ यहां देखें कि समस्या यह है कि जब से आपका IP बदलता है, आपका होस्ट हर कनेक्शन को बंद कर देता है क्योंकि RSA कुंजी जिसे आप प्रमाणित करने के लिए उपयोग कर रहे हैं वह उस अनुरोध के साथ मेल नहीं खाता है। मैं इस विषय पर कोई विशेषज्ञ नहीं हूं, इसलिए मेरे शब्दों को एक तथ्य के रूप में मत लीजिए ... लेकिन आपकी स्थिति उस तरह की है क्योंकि मैंने जो कुछ कहा है, वह केवल इसलिए है।
Jaime Satorres Rey

1

यह एक अलग पक्ष से यह देखने लायक है: आमतौर पर, मशीन से एक आउटवर्ड कनेक्शन बनाने के लिए यह बहुत सरल है जिसे आपके ध्यान की आवश्यकता होती है (DNS, NAT और अन्य फ़ायरवॉल सेटिंग्स बिल्कुल भी मायने नहीं रखती हैं या बहुत सरल हैं)।

रिमोट मशीन में जाने के लिए बुलेट-प्रूफ और सरल समाधान स्थापित करने के लिए आप इसका उपयोग कर सकते हैं R। केवल आवश्यकता यह है कि आप sshअपनी स्वयं की स्थानीय मशीनों में से किसी एक को सार्वजनिक पहुँच प्रदान कर सकते हैं (इसे कॉल करेंS )। फिर निम्नानुसार आगे बढ़ें:

  1. पीछे की ओर एक सुरंग बनाने के लिए , इससे बाहरी sshकनेक्शन बनाएं :RSR

    ssh -L 22:<address-of-S>:22000

  2. पर S, करने के लिए रिवर्स सुरंग का उपयोग sshदूरस्थ मशीन में R:

    ssh -p 22000 127.0.0.1

जब भी आपकी सहायता की आवश्यकता हो, चरण 1 को मैन्युअल रूप से और दूरस्थ पक्ष द्वारा ऑन-डिमांड ट्रिगर किया जा सकता है। वैकल्पिक रूप से, आप Rउस पर एक सेवा बना सकते हैं जो लगातार इस तरह की रिवर्स सुरंग बनाए रखेगा S

मैंने रिमोट (मोबाइल) सिस्टम में लॉग इन करने के लिए ऐसे सेटअप का इस्तेमाल किया, जो फ़ायरवॉल / NAT के पीछे थे और जिनकी DNS प्रविष्टियाँ बिल्कुल नहीं थीं।


1

यदि आपको केवल दूरस्थ लॉगिन की आवश्यकता है, तो mosh का उपयोग करें । आईपी ​​परिवर्तनों के साथ उत्कृष्ट रूप से सामना करने में सक्षम होने के अलावा (स्विच के दौरान कोई विलंबता के साथ) इसमें सादे से अधिक अन्य फायदे भी हैंssh , जैसे स्थानीय भविष्य कहनेवाला गूंज, कम विलंबता, टूटे हुए लिंक से तेजी से वसूली।

यदि आपको विशेष रूप से ssh(कहना चाहिए, आपको X11 अग्रेषण या कुछ और चाहिए), तो मैं सुझाव देता हूं कि वीपीएन (जैसे ओपनवीपीएन) स्थापित किया जाए, अधिमानतः यूडीपी पर, एक छोटे से रखने के साथ। वीपीएन पर टीसीपी कनेक्शन (यानी आपका एसएचएस) आईपी परिवर्तन के बाद ठीक हो जाएगा और जुड़ा रहेगा, इसमें बस अधिक समय (एक या एक मिनट तक) लगेगा, लेकिन आप /proc/sys/net/ipv4/tcp_*इसे अधिक स्वीकार्य बनाने के लिए प्रविष्टियों के साथ खेल सकते हैं ।

संपादित करें:

  • mosh को sshप्रमाणीकरण की आवश्यकता है, लेकिन एक बार प्रमाणित होने के बाद, कनेक्शन तब तक रहता है जब तक आप लॉग आउट (या रिबूट) नहीं करते हैं, और आप sshअपने अवकाश की विफलता की जांच कर सकते हैं (जैसे strace -f -p pid_of_sshd )
  • यहाँ से अनुकूलित उत्तर के moshबिना उपयोग करना संभव है :ssh

सर्वर चलाने पर:

mosh-server new -p $randomport -- $shellprogram

आपको एक परिणाम मिलता है QzdRHbAWzL7eRobi75DCrz

क्लाइंट चलाने पर:

MOSH_KEY=QzdRHbAWzL7eRobi75DCrz mosh-client $serverip $radomport

ध्यान दें कि $serveripएक आईपी होना चाहिए, कोई होस्टनाम रिज़ॉल्यूशन नहीं।

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

  • अगर वास्तव में कोई समस्या है ssh, तो वहां inetdसे ssh को स्थापित करें और चलाएं, न कि एक स्टैंडअलोन डेमॉन के रूप में, उदाहरण के लिए "क्लासिक" inetd.conf के लिए इस कॉन्फ़िगरेशन लाइन द्वारा, यह हर बार लॉग इन करते समय एक नया डेमन चलाएगा (ध्यान दें कि यह सब नहीं है) inetd कांटे ipv6 को संभालते हैं):

ssh stream tcp6 nowait root /usr/sbin/sshd sshd -i


1
उत्तर @Radovan के लिए धन्यवाद! मोश दिलचस्प लगता है, लेकिन ऐसा लगता है कि यह प्रमाणित करने के लिए एसएसएच का उपयोग करता है। तो मेरी समस्या की जड़ अभी भी मौजूद होगी, सही? मुझे बताएं कि क्या मैंने डॉक्स को गलत समझा है।
रिचर्ड

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