'कनेक्शन अस्वीकृत' संदेश क्या कारण है?


110

यह कनेक्शन अस्वीकृत के बारे में एक कैनोनिकल प्रश्न है

हम प्रभाव के लिए बहुत सारे प्रश्न देखते हैं

जब मैं एक सिस्टम से जुड़ने की कोशिश करता हूं तो मुझे एक संदेश मिलता है

कनेक्शन नहीं हो सका

ऐसा क्यों है ?


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

आपका समर्पित विकी प्रवेश लिंक इस प्रश्न की ओर
इशारा करता है

1
अच्छी पकड़। यहाँ आधिकारिक लिंक है: wiki.apache.org/hadoop/ConnectionRefused । मैं उस पूर्ण लूप के लिए यहाँ से वापस एक क्रॉस संदर्भ जोड़ दूँगा।
स्टीव लैफरान

@SteveLoughran कूल लेख - एक टिप्पणी - लिंक बैक का कहना है कि स्टैक ओवरफ्लो और हम सर्वर फॉल्ट हैं;)
user9517

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

जवाबों:


118

नोट : यह संदेश उस समस्या का एक लक्षण है जिसे आप हल करने का प्रयास कर रहे हैं। संदेश के कारण को समझना अंततः आपको अपनी समस्या को हल करने के लिए प्रेरित करेगा।

संदेश 'कनेक्शन अस्वीकृत' के दो मुख्य कारण हैं:

  1. IP पर कुछ भी नहीं सुना जा रहा है: जिस पोर्ट से आप कनेक्ट करने का प्रयास कर रहे हैं।
  2. पोर्ट एक फ़ायरवॉल द्वारा अवरुद्ध है।

कोई प्रक्रिया नहीं सुन रहा है।

यह अब तक संदेश के लिए सबसे आम कारण है। पहले यह सुनिश्चित करें कि आप सही प्रणाली से जुड़ने की कोशिश कर रहे हैं। यदि आप यह निर्धारित करने के लिए हैं कि क्या यह समस्या है, तो दूरस्थ सिस्टम पर netstat या ss 1 उदा। यदि आप पोर्ट 22222 पर सुनने की प्रक्रिया की अपेक्षा कर रहे हैं

sudo netstat -tnlp | grep :22222

या

ss -tnlp | grep :22222

OSX के लिए एक उपयुक्त कमांड है

sudo netstat -tnlp tcp | grep '\.80 '

अगर कुछ भी नहीं सुन रहा है तो ऊपर कोई आउटपुट नहीं देगा। यदि आप कुछ आउटपुट देखते हैं, तो पुष्टि करें कि यह वही है जो आप उम्मीद करते हैं तो नीचे फ़ायरवॉल अनुभाग देखें।

यदि आपके पास दूरस्थ सिस्टम तक पहुंच नहीं है और आप संबंधित व्यवस्थापकों को रिपोर्ट करने से पहले समस्या की पुष्टि करना चाहते हैं तो आप tcpdump (वायरशार्क या समान) का उपयोग कर सकते हैं।

जब एक कनेक्शन को आईपी: पोर्ट के लिए प्रयास किया जाता है, जहां कुछ भी नहीं सुन रहा है, तो रिमोट सिस्टम से प्रारंभिक SYN पैकेट पर प्रतिक्रिया झंडे RST, ACK सेट के साथ एक पैकेट है। यह कनेक्शन बंद कर देता है और कनेक्शन अस्वीकृत संदेश उदा

$ sudo tcpdump -n host 192.0.2.1 और पोर्ट 22222
tcpdump: verbose आउटपुट को दबाया गया,
env14s0, लिंक-टाइप EN10MB (ईथरनेट) पर सुनने वाले फुल प्रोटोकॉल डिकोड के लिए -v या -vv , कैप्चर साइज 262144 बाइट्स

12: 31: 27.013976 IP 192.0.2.2.3.39090> 192.0.2.1.22222: झंडे [S] , 1207858804 seq, 29200 जीतें, विकल्प [mss 1460, sackOK, TS val 15306344 ecr 0, nop, wscale 7], लंबाई 0

12: 31: 27.020162 IP 192.0.2.1.22222> 192.0.2.2.34390: झंडे [आर।] , Seq 0, ack 1207858805, जीत 0, लंबाई 0

ध्यान दें कि tcpdump एक का उपयोग करता है ACK ध्वज का प्रतिनिधित्व करने के लिए ।

पोर्ट एक फ़ायरवॉल द्वारा अवरुद्ध है

यदि पोर्ट को फ़ायरवॉल द्वारा ब्लॉक किया गया है और इसके साथ प्रतिक्रिया करने के लिए फ़ायरवॉल को कॉन्फ़िगर किया गया है, तो icmp-port-unreachableयह कनेक्शन अस्वीकृत संदेश का भी कारण होगा। फिर से आप इसे tcpdump (या समान) के साथ देख सकते हैं

$ sudo tcpdump -n icmp
tcpdump: वर्बोज़ आउटपुट को दबाया गया,

env14s0, लिंक-टाइप EN10MB (ईथरनेट) पर सुनने वाले फुल प्रोटोकॉल डिकोड के लिए -v या -vv , कैप्चर 262144 बाइट्स 13: 03: 24.149897 IP 192.0.2.1> 192.0। 2.2: ICMP 192.0.2.1 tcp पोर्ट 22222 अगम्य, लंबाई 68

ध्यान दें कि यह हमें यह भी बताता है कि अवरुद्ध फ़ायरवॉल कहाँ है।


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

1 अन्य उपकरण उपलब्ध होने की संभावना है।


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

"कोई प्रक्रिया नहीं सुन रहा है।" प्रमुख कारण ..!
समिथा चतुरंग

मेरे मामले में, कुछ सुन रहा था ... लेकिन एक अलग नोड पर जिसे मैं कनेक्ट करने का प्रयास कर रहा था। उफ़।
जोजफ

1
@ijoseph तो कुछ भी नहीं सुन रहा था।
user9517

5

मेरे लिए डेबियन 6 निचोड़ पर यह SSH सेवा की जाँच के रूप में सरल था :

sudo service ssh status

और कुछ भी मौजूद नहीं है (संदेश के साथ ssh: unrecognized service) बस सेवा को स्थापित करना :

sudo apt-get install openssh-server

यह तब भी काम करता है जब आपको SFTP कनेक्शन नहीं मिल रहा है, क्योंकि SFTP SSH का सबसेट है (जबकि FTPS FTP का सबसेट है)।

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