"कनेक्शन से इनकार कर दिया" बनाम "मेजबान के लिए कोई रास्ता नहीं"


20

मेरे पास एक Apache सर्वर है जो एक सर्वर पर चल रहा है:

[root@te-srv2 ~]# ps -ecf|grep httpd
root       698 32047 TS   19 10:45 pts/24   00:00:00 grep httpd
root     32081     1 TS   19 10:16 ?        00:00:00 /usr/sbin/httpd
apache   32083 32081 TS   19 10:16 ?        00:00:00 /usr/sbin/httpd
apache   32084 32081 TS   19 10:16 ?        00:00:00 /usr/sbin/httpd
....

हालाँकि, जब मैं स्थानीय होस्ट से जुड़ने की कोशिश करता हूँ तो मुझे "कनेक्शन मना कर दिया जाता है":

[root@te-srv2 ~]# wget http://127.0.0.1
--2014-02-24 10:46:16--  http://127.0.0.1/
Connecting to 127.0.0.1:80... failed: Connection refused.

जब मैं स्थानीय IP पते से कनेक्ट करने का प्रयास करता हूं, तो वही होता है:

[root@te-srv2 ~]# wget http://132.70.6.157
--2014-02-24 10:46:40--  http://132.70.6.157/
Connecting to 132.70.6.157:80... failed: Connection refused.

दूसरी ओर, जब मैं एक ही नेटवर्क में दूसरे कंप्यूटर से समान कोशिश करता हूं, तो मुझे एक अलग त्रुटि मिलती है "होस्ट करने के लिए कोई रास्ता नहीं":

[erelsgl@erel-biu ~]$ wget http://132.70.6.157
--2014-02-24 10:49:11--  http://132.70.6.157/
Connecting to 132.70.6.157:80... failed: No route to host.

मुझे ये त्रुटियां क्यों हो रही हैं? और नेटवर्क में एक ही कंप्यूटर और अन्य कंप्यूटरों से http सर्वर से कनेक्ट करने में सक्षम होने के लिए मुझे क्या करना चाहिए?

अद्यतन: टिप्पणियों और उत्तरों के आधार पर, यहाँ कुछ और जानकारी दी गई है:

[root@te-srv2 ~]# traceroute 132.70.6.157
traceroute to 132.70.6.157 (132.70.6.157), 30 hops max, 60 byte packets
 1  te-srv2 (132.70.6.157)  0.082 ms  0.007 ms  0.005 ms

[erelsgl@erel-biu ~]$ traceroute 132.70.6.157
traceroute to 132.70.6.157 (132.70.6.157), 30 hops max, 60 byte packets
 1  te-srv2 (132.70.6.157)  0.446 ms !X  0.431 ms !X  0.420 ms !X

[root@te-srv2 ~]# netstat -lnp|grep http
tcp        0      0 :::443                      :::*                        LISTEN      5756/httpd          

क्या आप traceroute 132.70.6.157दोनों सर्वरों से और आउटपुट की तुलना कर सकते हैं?
वर्नर हेन्ज

1
443 एसएसएल-पोर्ट्स (https) है। Http पोर्ट 80 सुनने के लिए अपने कॉन्फ़िगरेशन की जाँच करें।
मिकपा

जवाबों:


13

का आउटपुट दिखाएं netstat -lnp, इसलिए हम देख सकते हैं कि कौन सी प्रक्रियाएं वास्तव में सर्वर पर किन पोर्ट्स को सुन रही हैं, और वे किस आईपी पते से बंधे हैं।

दूसरे कंप्यूटर के बारे में, इसकी नेटवर्क कनेक्टिविटी टूटी हुई दिखती है। netstat -rnवहाँ समस्या पर कुछ अंतर्दृष्टि देंगे।

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

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

आपको अपना अपाचे कॉन्फ़िगरेशन बदलना होगा ताकि यह एक HTTP सर्वर हो, न कि एसएसएल सर्वर। कॉन्फ़िगरेशन फ़ाइलें अधिकांश समय के तहत / etc / apache2 में स्थित होती हैं।

IP कॉन्फ़िगरेशन और नेटवर्क कॉन्फ़िगरेशन जानकारी को अभी भी अन्य समस्या का विश्लेषण करने की आवश्यकता है। ट्रेसरआउट की जानकारी से कुछ भी पता नहीं चला।


दरअसल, पोर्ट 80 को सुनने की कोई प्रक्रिया नहीं है! अपाचे सर्वर पोर्ट 443 पर सुनता है। लेकिन यह क्यों है?
एरेल सहगल-हलेवी

@ErelSegalHalevi: आमतौर पर, 80 HTTP, 443 HTTPS है (जब तक कि आप उन डिफ़ॉल्ट पोर्ट को नहीं बदलते)। तो शायद आवेदन केवल HTTPS की उम्मीद है?
ओलिवियर दुलक

नेटस्टैट के लिए धन्यवाद, हमें पता चला कि यह वास्तव में अपाचे में एक कॉन्फ़िगरेशन समस्या थी।
ईगल सहगल-हलेवी

26

"कनेक्शन मना कर दिया" का अर्थ है कि लक्ष्य मशीन ने कनेक्शन को सक्रिय रूप से अस्वीकार कर दिया। संदर्भ के रूप में पोर्ट 80 के साथ, निम्नलिखित चीजों में से एक कारण होने की संभावना है:

  • 127.0.0.1:80 और 132.70.6.157:80 पर कुछ भी नहीं सुन रहा है
  • कुछ भी नहीं सुन रहा है *: 80 पर
  • फ़ायरवॉल कनेक्शन के साथ संपर्क को अवरुद्ध कर रहा है

तो अपने अपाचे और iptables विन्यास की जाँच करें।

"होस्ट करने के लिए कोई मार्ग नहीं" एक नेटवर्क समस्या को संदर्भित करता है। यह लक्ष्य मशीन से उत्तर नहीं है।


एक नेटवर्क समस्या? इसलिए एक ही डोमेन पर एक ही डोमेन के लिए "कनेक्शन के लिए मना कर दिया" और दूसरे पोर्ट के लिए "होस्ट करने के लिए कोई रास्ता नहीं" कैसे लौट सकता है?
phil294

हो सकता है कि आपका फ़ायरवॉल या प्रॉक्सी दूसरे पोर्ट को ब्लॉक कर रहा हो ताकि नेटवर्क प्रॉब्लम हो?
croraf

3

मैंने इस पोस्ट को उस मुद्दे का वर्णन करते हुए पाया जिसका मैं सामना कर रहा था, जब एक पब्लिक क्लाउड कम्प्यूट नोड पर नोडज का उपयोग करके एक साधारण http पृष्ठ को सेटअप करने की कोशिश की जा रही थी।

इस कमांड ने मेरे लिए किया ट्रिक:

iptables -F

यह कमांड फ्लश करता है अर्थात लिनक्स सिस्टम के अंदर सेटअप किए गए फ़ायरवॉल नियम को साफ़ करता है।

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


1

Https://networkengineering.stackexchange.com/questions/33397/debugging-no-route-to-host-over-ethernet से रॉन मौपिन के उत्तर का हवाला देते हुए :

ICMP संदेश, "होस्ट करने के लिए कोई मार्ग नहीं है," इसका मतलब है कि एआरपी गंतव्य होस्ट के लिए लेयर -2 पता नहीं ढूंढ सकता है। आमतौर पर, इसका मतलब है कि उस आईपी पते के साथ होस्ट ऑनलाइन या प्रतिक्रिया नहीं है।

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