जब आप लिनक्स पर किसी सेवा से कनेक्ट करने का प्रयास कर रहे होते हैं, तो "No route to host" सुनना उन आखिरी चीजों में से एक है जो आप सुनना चाहते हैं। यह एक व्यापक संदेश है जिसका मतलब है कि आपका कंप्यूटर लक्ष्य सर्वर तक नहीं पहुंच सकता, चाहे वह आपके सिस्टम पर चल रहा एक स्थानीय सर्वर डेमॉन हो या एक रिमोट सर्वर जिसे आप किसी भी कारण से एक्सेस नहीं कर सकते। यहां हम आपको दिखाते हैं कि लिनक्स में "no route to host" कनेक्शन त्रुटि को कैसे ठीक करें।
मुझे "No Route to Host" त्रुटि क्यों मिल रही है?
इस त्रुटि के कई कारण हो सकते हैं। लिनक्स में नेटवर्किंग एक कुछ जटिल स्टैक है जो काफी जटिल है, और परिणामस्वरूप, यह निर्धारित करना कठिन है कि समस्या वास्तव में कहां है।
होस्ट ऑफ़लाइन है/सेवा नहीं चल रही
यह दर्दनाक रूप से स्पष्ट लग सकता है, लेकिन आपको सबसे पहले यह जांचना चाहिए कि आप जिस सर्वर से कनेक्ट करने का प्रयास कर रहे हैं वह ऑनलाइन भी है या नहीं। इसे रखरखाव के लिए बंद किया गया हो सकता है या समस्याओं का सामना कर रहा हो सकता है।
सेवा स्वयं शुरू नहीं हुई हो सकती। अगर यह आपका सर्वर है, तो आप जांच सकते हैं कि सेवा शुरू हुई है और ठीक से चल रही है। Systemd के साथ ऐसा करने के लिए, निम्न कमांड चलाएं।
sudo systemctl status SERVICENAME
गलत पोर्ट
आप गलत पोर्ट पर कनेक्ट करने का प्रयास कर रहे होंगे। कई सिस्टम एडमिनिस्ट्रेटर SSH जैसी आमतौर पर लक्षित सेवाओं को हमलावरों को विफल करने के लिए अलग पोर्ट पर चलाना चुनते हैं।
अगर सर्वर आपका अपना नहीं है, तो उपलब्ध दस्तावेज़ देखें या उनकी सहायता सेवाओं से संपर्क करें।
अपने सर्वर के लिए, आप NMAP का उपयोग करके यह पता लगाने का प्रयास कर सकते हैं कि आपने अपनी सेवा कहां शुरू की है।
sudo nmap -sS your.server.ip
अगर आपको लगता है कि आपने वास्तव में एक अस्पष्ट पोर्ट का उपयोग किया है, तो उन सभी को स्कैन करने के लिए -p- फ्लैग का उपयोग कर सकते हैं। हालांकि इसमें समय लगेगा।
Iptables कनेक्शन को ब्लॉक कर रहा है
आपने गलती से iptables को उस पोर्ट पर कनेक्शन ब्लॉक करने के लिए कॉन्फ़िगर किया होगा। चाहे आपने सर्वर पर या अपने डेस्कटॉप पर iptables कॉन्फ़िगर किया हो, आपको वही संदेश प्राप्त होगा, इसलिए दोनों की जांच करना उचित है। अपने iptables नियमों को देखने के लिए, निम्न कमांड चलाएं।
sudo iptables -S
आपका DNS गलत तरीके से कॉन्फ़िगर किया गया है
अगर सब विफल हो जाता है, तो आपको उस IP पते को ping करने का प्रयास करना चाहिए जिससे आप कनेक्ट करना चाहते हैं। हो सकता है कि आपका कंप्यूटर DNS सर्वर से ठीक से कनेक्ट न हो रहा हो।
ping -c3 your.server.ip
अगर ping काम करता है लेकिन डोमेन नाम से कनेक्ट करना काम नहीं करता, तो आप DNS समस्या देख रहे हैं।
Systemd उपयोगकर्ता systemd-resolve --status चला सकते हैं ताकि यह जांच सकें कि आपका सिस्टम किन DNS सर्वरों का उपयोग कर रहा है। यह इंटरफ़ेस के अनुसार विभाजित है, इसलिए उस इंटरफ़ेस की जांच करना सुनिश्चित करें जिसके माध्यम से आप वास्तव में कनेक्ट करने का प्रयास कर रहे हैं।
अधिकांश मामलों में आपका कंप्यूटर DHCP पर प्रासंगिक DNS जानकारी खोज लेगा। अगर आप स्टेटिक IP का उपयोग कर रहे हैं या आपके नेटवर्क पर कुछ अलग तरीके से कॉन्फ़िगर किया गया है, तो आपको अपना DNS मैन्युअल रूप से सेट करना पड़ सकता है।
"/etc/systemd/resolved.conf" खोलें। उस फाइल में, DNS लाइन को अनकमेंट करें और अपने राउटर का IP या कोई अन्य ज्ञात DNS सर्वर जोड़ें। Systemd के लिए डिफ़ॉल्ट फॉलबैक DNS FallbackDNS के तहत सूचीबद्ध Google के DNS सर्वर हैं।
DNS=192.168.1.1
अगर आप OpenRC या किसी अन्य Systemd विकल्प का उपयोग कर रहे हैं, तो आप अपनी DNS जानकारी "/etc/resolv.conf" में पा सकते हैं।
nameserver 192.168.1.1
अगर वहां कुछ नहीं है, तो अपने राउटर का IP पता या कोई अन्य ज्ञात DNS सर्वर दर्ज करें जिसे आप उपयोग करना पसंद करेंगे।
इसके बाद, या तो नेटवर्किंग या अपने पूरे कंप्यूटर को पुनरारंभ करें।
GUI तरीका
अगर आप Network Manager के साथ एक ग्राफिकल डेस्कटॉप का उपयोग कर रहे हैं, तो आप अपने कनेक्शन की जानकारी को इस तरह संपादित कर सकते हैं। ऐपलेट खोलें या अपनी सिस्टम सेटिंग्स के माध्यम से जाएं। अपना कनेक्शन चुनें और "IPv4" टैब ढूंढें। कनेक्शन को "Manual" पर स्विच करें और अपने कंप्यूटर का IP पता और अपने राउटर का IP गेटवे के रूप में मैन्युअल रूप से दर्ज करें। फिर, नीचे DNS फ़ील्ड में, अपने राउटर का IP या किसी अन्य DNS सर्वर का IP दर्ज करें।
गलत नेटवर्क या होस्ट कॉन्फ़िगरेशन
कई अन्य कॉन्फ़िगरेशन विकल्प हैं जो गलत हो सकते हैं। उनमें से कोई भी आपके कंप्यूटर के लिए सर्वर से कनेक्ट करना असंभव बना देगा।
सबसे पहले, सुनिश्चित करें कि आपके कंप्यूटर का नेटवर्क कॉन्फ़िगरेशन सही है। कॉन्फ़िगरेशन फाइलों की दोबारा जांच करें और, निश्चित रूप से, देखें कि क्या आप किसी अन्य तरीके से इंटरनेट से कनेक्ट कर सकते हैं।
अगर आप कनेक्ट करने के लिए एक विशिष्ट होस्टनाम का उपयोग कर रहे हैं या आपने सर्वर या क्लाइंट पर विशिष्ट होस्ट सेट किए हैं, तो आपको यह सुनिश्चित करना होगा कि दोनों मशीनें एक-दूसरे से कनेक्ट हो सकती हैं। "/etc/hosts," "/etc/hosts.allow," और "/etc/hosts.deny" के कॉन्फ़िगरेशन की जांच करें।
अंत में, अपने सर्वर कॉन्फ़िगरेशन की जांच करें। सर्वर पर कुछ गलत तरीके से कॉन्फ़िगर किया गया हो सकता है, जो क्लाइंट्स को ठीक से कनेक्ट होने से रोक रहा है।
उम्मीद है, इन युक्तियों का उपयोग करके आप उन मुद्दों को ठीक करने में सक्षम हुए होंगे जिनके कारण "No Route to Host" त्रुटि हुई। इस बीच, आप लिनक्स में अपने वाई-फाई नेटवर्क को नियंत्रित करना सीख सकते हैं या जांच सकते हैं कि क्या आपका फायरवॉल किसी इनकमिंग और आउटगोइंग कनेक्शन को ब्लॉक कर रहा है।