SSH कनेक्शन त्रुटि: होस्ट करने का कोई मार्ग नहीं


34

इस परिदृश्य में तीन मशीनें हैं:

  • डेस्कटॉप A: user@1.23.xx
  • लैपटॉप A: user@1.23.yy
  • मशीन बी: ​​user@192.168.zz

सभी मशीनों में उबंटू 11.04 (डेस्कटॉप ए 64 बिट वाला है) और इसमें ओपनश-सर्वर और ओपनश-क्लाइंट दोनों हैं।

अब जब मैं डेस्कटॉप ए को लैपटॉप ए से जोड़ने की कोशिश करता हूं या इसके द्वारा ssh user@1.23.y.yमुझे कोई त्रुटि मिलती है

port 22: No route to host

दोनों मामलों में।

मेरे पास दोनों मशीनें हैं, अब यदि मैं अपने मित्र की मशीन से एक ही कमांड की कोशिश करता हूं, अर्थात डेस्कटॉप बी के माध्यम से, मैं अपने लैपटॉप और डेस्कटॉप दोनों का उपयोग कर सकता हूं। लेकिन अगर मैं अपने लैपटॉप से ​​या मेरे द्वारा प्राप्त डेस्कटॉप बी को एक्सेस करने की कोशिश करता हूं

port 22: Connection timed out

मैं भी बदल ssh पोर्ट नहीं की कोशिश की। में ssh_configफ़ाइल लेकिन कोई सफलता।

नोट : कि 'लैपटॉप ए' वाईफाई कनेक्शन का उपयोग करता है जबकि 'मशीन ए' ईथरनेट कनेक्शन का उपयोग करता है और 'मशीन बी' पूरी तरह से अलग नेटवर्क पर है।

@Lekensteyn यहाँ है ->

लैपटॉप A && डेस्कटॉप A -> राउटर / नैनो_क्रक ISP द्वारा मुझे प्रदान किया गया। तो एक राउटर के लिए दो मशीनें जुड़ी हुई हैं और एक ही समय में एक्सेस की जा सकती हैं। यहाँ दोनों मशीनों के लिए मेरा ifconfig आउटपुट है: - लैपटॉप

wlan0

      Link encap:Ethernet  HWaddr X:X:X:X:00:bc  
      inet addr:1.23.73.111  Bcast:1.23.95.255  Mask:255.255.224.0
      inet6 addr: fe80::219:e3ff:fe04:bc/64 Scope:Link
      UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
      RX packets:108409 errors:0 dropped:0 overruns:0 frame:0
      TX packets:82523 errors:0 dropped:0 overruns:0 carrier:0
      collisions:0 txqueuelen:1000 
      RX bytes:44974080 (44.9 MB)  TX bytes:22973031 (22.9 MB)

डेस्कटॉप

eth0

      Link encap:Ethernet  HWaddr X:X:X:X:c5:78  
      inet addr:1.23.68.209  Bcast:1.23.95.255  Mask:255.255.224.0
      inet6 addr: fe80::227:eff:fe04:c578/64 Scope:Link
      UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
      RX packets:10380 errors:0 dropped:0 overruns:0 frame:0
      TX packets:4509 errors:0 dropped:0 overruns:0 carrier:0
      collisions:0 txqueuelen:1000 
      RX bytes:1790366 (1.7 MB)  TX bytes:852877 (852.8 KB)
      Interrupt:43 Base address:0x2000 

का आउटपुट ip route show

      1.23.64.0/19 dev wlan0  proto kernel  scope link  src 1.23.73.111  metric 2 

      169.254.0.0/16 dev wlan0  scope link  metric 1000 

का आउटपुट traceroute -n 1.23.73.111

       traceroute to 1.23.73.111 (1.23.73.111), 30 hops max, 60 byte packets
       1  1.23.68.209  3008.787 ms !H  3008.786 ms !H  3008.784 ms !H

कृपया उन IP पतों को ठीक करें। क्या 1.23.xx एक सार्वजनिक आईपी पता है? यदि नहीं, तो कृपया 10.xxx, 192.168.xx या 172.16.xx का उपयोग करें क्या आप अन्य मशीनों को पिंग कर सकते हैं? ping 192.168.x.x
लेकेनस्टीन

अजीब लगता है, लेकिन इसकी एक सार्वजनिक आईपी Addr अगर आप चाहते हैं कि मैं आपको 'ifconfig' आउटपुट दे सकता हूं। नहीं, मैं अपनी दोनों मशीनों को पिंग नहीं कर सकता क्योंकि यह 'डेस्टिनेशन होस्ट अनरेचेबल' कहती है, हालाँकि मैं अपने दोस्त की मशीन को पिंग कर सकता हूँ
निहार सावंत

1
क्या आप अपना नेटवर्क सेटअप बना सकते हैं? ASCII कला ठीक रहेगी। आपको मशीनों, "इंटरनेट" और शामिल (घर) राउटर / मोडेम को शामिल करने की आवश्यकता है।
लेकेनस्टीन

2
मैं @Lekensteyn से सहमत हूं। ये समस्याएँ आमतौर पर NAT / अग्रेषण मुद्दे हैं। अपने नेटवर्क संरचना की व्याख्या करें और हम शायद मदद कर सकते हैं।
ओली

@Lekensteyn ने मेरी अपडेट की गई पोस्ट
निहार सावंत

जवाबों:


18

मार्ग ठीक दिखते हैं। मुझे लगता है कि उन आईपी पते निजी हैं (लैन) और सार्वजनिक सुलभ नहीं है।

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

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

आपका राउटर संभवतः सभी अनचाहे पैकेट को गिरा रहा है, इसीलिए आपके मित्र को आपके सार्वजनिक आईपी पते पर "कनेक्शन टाइम आउट" संदेश मिल जाता है। NAT पोर्ट अग्रेषण कॉन्फ़िगर करें ताकि सार्वजनिक IP पता + पोर्ट संयोजन आपके LAN पते के लिए आगे बढ़े।

उदाहरण नेटवर्क:

YOUR NETWORK (A)
    Router A (public address: 198.51.100.1)
    Desktop A - 10.0.0.2
    Laptop  A - 10.0.0.3

YOUR FRIENDS NETWORK (B)
    Router B (public address: 203.0.113.1)
    Machine B - 192.168.0.2

पर रूटर एक , सेटअप नेट अग्रेषण:

To make your desktop accessible:
  forward the public port 22 to 10.0.0.2
To make your laptop accessible:
  forward the public port 2222 to 10.0.0.3

यदि आपने मशीनों के सेट पर एक फ़ायरवॉल ( ufw, iptables... ...) है, तो आने वाले ट्रैफ़िक को पोर्ट 22 (डेस्कटॉप ए) और पोर्ट 2222 (लैपटॉप ए) की अनुमति दें।

अब SSH के साथ डेस्कटॉप का उपयोग किया जा सकता है:

ssh user@198.51.100.1 -p 22

अब SSH के साथ लैपटॉप का उपयोग किया जा सकता है:

ssh user@198.51.100.1 -p 2222

यदि आप अपने दोस्तों की मशीन का उपयोग करना चाहते हैं, तो इन निर्देशों को उसकी मशीन + राउटर पर लागू करें।


3

मुझे भी ऐसी ही समस्या का समाधान करना पड़ा था। वायर वन वायरलेस पर एक मशीन। मैंने अपने राउटर में एक टिकबॉक्स पाया इसके अलावा "लैन और वलन के लिए अलग ips" और इसे बंद कर दिया। अब मैं वायरल्स कंप्यूटर में लॉगिन कर सकता हूं। इससे पहले मुझे त्रुटि संदेश मिला "होस्ट करने का कोई मार्ग नहीं"।


1

RHEL स्थापित करते समय ssh चेक बॉक्स की जाँच करें। मैंने इसकी जांच नहीं की और उसी मुद्दे को जन्म दिया। कृपया वह पैरामीटर जांचें


1

मैं एक ही मुद्दा अब खुद vps पर मिला, और इसकी पूरी तरह से अजीब, ऐसा कुछ भी कभी नहीं देखा।

मैं एक अनुभवी सर्वर व्यवस्थापक हूं और इस प्रकार की त्रुटि सामान्य रूप से कट जाती है और सूख जाती है।

होस्ट करने के लिए कोई भी मार्ग का मतलब सर्वर को पता नहीं है कि पैकेट को कैसे रूट किया जाए (राउटिंग टेबल, हालांकि मैंने कभी नहीं देखा कि यह केवल एक प्रोटोकॉल पर होता है और दूसरा नहीं)।

मेरे मामले में।

कोई NAT इंटरनेट कनेक्शन। कोई IPTABLES पिंग काम नहीं करता है मैं टूटी हुई आईपी के दोनों तरफ से कनेक्ट कर सकता हूं। टूटी आईपी किसी भी tcp पोर्ट पर "होस्ट करने का कोई मार्ग नहीं" कहती है।

यह सुझाव देता है कि या तो बीच में कुछ राउटिंग टेबल के साथ ओएस में त्रुटि कोड या एक बग वापस आ रहा है।

ध्यान दें कि त्रुटि तत्काल है, देरी का अर्थ यह नहीं है कि अस्वीकृति स्थानीय है। लेकिन सभी मैं निदान कर सकते हैं।

root@vps1 network # telnet 83.149.xx.xx 23
Trying 83.149.xx.xx...
telnet: Unable to connect to remote host: No route to host
root@vps1 network # telnet 83.149.xx.xx 80
Trying 83.149.xx.xx...
telnet: Unable to connect to remote host: No route to host
root@vps1 network # ping 83.149.xx.xx
PING 83.149.xx.xx (83.149.xx.xx) 56(84) bytes of data.
64 bytes from 83.149.xx.xx: icmp_seq=1 ttl=56 time=8.89 ms
64 bytes from 83.149.xx.xx: icmp_seq=2 ttl=56 time=7.93 ms

0

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


0

मेरे मामले में मेरे वीपीएन के समान ही सीआईडीआर पर एक डॉकर नेटवर्क था।

मैंने किस नेटवर्क का पता लगाने के लिए निम्न कमांड का उपयोग किया, और फिर मैंने इसे हटा दिया:

docker inspect $(docker network ls -q) | jq '.[] | {name: .Name, cidr: .IPAM.Config[0].Subnet}'

उसके पश्चात इसने ठीक से काम किया।


-3

यदि आपने अपना सिस्टम हार्ड ड्राइव इनसे बदल लिया है / बदल दिया है तो होस्ट को .ssh / ज्ञात_होस्ट फ़ाइल से हटाने का प्रयास करें और फिर कनेक्ट करने का प्रयास करें।


1
-1। यह दोनों कनेक्शन त्रुटियों के साथ करने के लिए बिल्कुल कुछ भी नहीं है जैसा कि प्रश्न में दिया गया है ('होस्ट करने के लिए कोई मार्ग नहीं है,' कनेक्शन का समय समाप्त हो गया है ')।
gertvdijk

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