'Bağlantı Reddedildi' mesajının nedeni nedir?


110

Bu, Reddedilen Bağlantı hakkında Kanonik bir Soru

Etki için bir sürü soru görüyoruz

Bir sisteme bağlanmaya çalıştığımda mesaj alıyorum

Bağlantı reddedildi

Bu neden ?


2
Bunu, istemcideki yapılandırma hatalarının neden olduğu Apache Hadoop'ta çok şey alıyoruz: konuşulacak olan ana bilgisayar, DNS veya / etc / host tablolarının ne ayarlandığı veya bir bilgisayar tarafından kullanılan portlar arasındaki uyumsuzluk servis ve müşterilerin kullanması gerektiğini düşünüyor. Dolayısıyla konuyla ilgili özel bir wiki girişimiz var. Sorunların birçoğunun, başka yerlerde (muhtemelen) daha küçük bir ölçekte olmasına rağmen, muhtemeldir. 1000 düğüm kümesinde bağlantı sorunlarını ayıklamak eğlenceli değil.
Steve Loughran

Özel wiki giriş bağlantınız bu soruya işaret ediyor;)
user9517

1
İyi yakalama. İşte resmi link: wiki.apache.org/hadoop/ConnectionRefused . Yine de tam döngü için oradan buraya bir çapraz referans ekleyeceğim.
Steve Loughran

@SteveLoughran Harika makale - bir yorum - geri bağlantı Yığın Taşması diyor ve biz Sunucu
Arızasıyız

yapılır. FWIW, bu wiki bağlantısı Hadoop yığınında geçen ConnectionRefused istisnalarına eklenirken, neyin yanlış gittiğini araştırmak için gereken ekstra bilgilerle (ana bilgisayarlar, bağlantı noktaları) eklenir. Yığın izini izleyen ve wiki ile olan bağlantıyı takip etmeyen insanlardan hala birçok hata raporu alıyoruz
Steve Loughran

Yanıtlar:


118

Not : Bu mesaj, çözmeye çalıştığınız sorunun bir belirtisidir. Mesajın nedenini anlamak nihayetinde probleminizi çözmenize yol açacaktır.

'Bağlantı Reddedildi' mesajının iki ana nedeni vardır:

  1. IP'de hiçbir şey dinlemiyor: Bağlanmaya çalıştığınız Bağlantı Noktası.
  2. Bağlantı noktası bir güvenlik duvarı tarafından engelleniyor.

Hiçbir işlem dinlemiyor.

Bu, mesajın en yaygın sebebidir. Öncelikle doğru sisteme bağlanmaya çalıştığınızdan emin olun. Sorunun bu olup olmadığını belirlemek istiyorsanız, uzaktaki sistemde netstat veya ss 1 komutunu çalıştırın, örneğin 22222 numaralı bağlantı noktasını dinlemek için bir işlem bekliyorsanız

sudo netstat -tnlp | grep :22222

veya

ss -tnlp | grep :22222

OSX için uygun bir komut

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

Eğer hiçbir şey dinlemiyorsa, yukarıdaki çıktı verilmez. Bazı çıktılar görürseniz beklediğinizin ne olduğunu onaylayın, ardından aşağıdaki güvenlik duvarı bölümüne bakın.

Uzak sisteme erişiminiz yoksa ve sorunu ilgili yöneticilere bildirmeden önce onaylamak istiyorsanız, tcpdump (wireshark veya benzeri) kullanabilirsiniz.

Hiçbir şeyin dinlemediği bir IP: portuna bir bağlantı yapılmaya çalışıldığında, uzak sistemden ilk SYN paketine verilen yanıt RST, ACK işaretli bir pakettir. Bu, bağlantıyı kapatır ve örneğin Bağlantı Reddedildi mesajına neden olur.

$ sudo tcpdump -n ana bilgisayar 192.0.2.1 ve port 22222
tcpdump: ayrıntılı çıktı bastırılmış, tam protokol kod çözme
için env14s0 dinlerken -v veya -vv kullanın , bağlantı tipi EN10MB (Ethernet), yakalama boyutu 262144 bayt

12: 31: 27.013976 IP 192.0.2.2.34390> 192.0.2.1.22222: Bayraklar [S] , seq 1207858804, 29200 kazandı, seçenekler [mss 1460, sackOK, TS val 15306344 ecr 0, no, wscale 7], uzunluk 0

12: 31: 27.020162 IP 192.0.2.1.22222> 192.0.2.2.34390: Bayraklar [R.] , sıra 0, ack 1207858805, galibiyet 0, uzunluk 0

Tcpdump a kullanır . için ACK temsil bayrağı.

Bağlantı noktası güvenlik duvarı tarafından engellendi

Bağlantı noktası bir güvenlik duvarı tarafından engellenmişse ve güvenlik duvarı buna yanıt verecek şekilde yapılandırılmışsa, icmp-port-unreachablebağlantı reddedilmiş bir mesaja da neden olur. Yine tcpdump (veya benzeri) ile bunu görebilirsiniz

$ sudo tcpdump -n icmp
tcpdump: giriş çıkışını bastırılmış,

enp14s0'ı dinleyen tam protokol kod çözme için -v veya -vv'yi kullanın, en104s0 bağlantı türünü dinleyen EN10MB (Ethernet), yakalama boyutu 262144 bayt 13: 03: 24.149897 IP 192.0.2.1> 192.0. 2.2: ICMP 192.0.2.1 tcp port 22222 erişilemez, uzunluk 68

Bunun bize engelleyici güvenlik duvarının nerede olduğunu da söylediğini unutmayın.


Artık Bağlantı reddetme mesajına neyin neden olduğunu biliyorsunuz, uygun önlemi almalısınız; örneğin, güvenlik duvarı yöneticisine başvurun veya işlemin dinlememe nedenini araştırın.

1 Başka araçlar da mevcut olabilir.


2
ELI5 sürümü: bağlantı isteğinin diğer bilgisayara ulaştığı ve diğer bilgisayarın neden bahsettiğiniz hakkında hiçbir fikri olmadığı anlamına gelir.
immibis

"Hiçbir işlem dinlemiyor." Asıl sebep ..!
Samitha Chathuranga

Benim durumumda, bir şey dinliyordu… ama bağlanmaya çalıştığım farklı bir düğümde. Hata.
ijoseph

1
@ijoseph Böylece hiçbir şey dinlemiyordu.
user9517 30:18

5

Benim için Debian 6’da sıkmak SSH servisini kontrol etmek kadar kolaydı :

sudo service ssh status

Ve hiçbir şey mevcut değildi (mesajla birlikte ssh: unrecognized service) sadece hizmeti kurmak :

sudo apt-get install openssh-server

Bu ayrıca, SFTP'nin SSH'nin bir alt kümesi (FTPS bir FTP'nin alt kümesi olduğu için) SFTP bağlantısı alamıyorsanız da geçerlidir.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.