it-swarm.com.de

Was verursacht die Meldung "Verbindung abgelehnt"?

Dies ist eine kanonische Frage über Verbindung abgelehnt

Wir sehen viele Fragen dazu

Wenn ich versuche, eine Verbindung zu einem System herzustellen, wird eine Nachricht angezeigt

Verbindung abgelehnt

Warum ist das ?

119
user9517

Hinweis : Diese Meldung ist ein Symptom für das Problem, das Sie lösen möchten. Wenn Sie die Ursache der Nachricht verstehen, können Sie Ihr Problem letztendlich lösen.

Die Meldung "Verbindung abgelehnt" hat zwei Hauptursachen:

  1. Auf dem IP: Port, zu dem Sie eine Verbindung herstellen möchten, wird nichts abgehört.
  2. Der Port wird von einer Firewall blockiert.

Kein Prozess hört zu.

Dies ist bei weitem der häufigste Grund für die Nachricht. Stellen Sie zunächst sicher, dass Sie versuchen, eine Verbindung zum richtigen System herzustellen. Wenn Sie dann feststellen möchten, ob dies das Problem ist, führen Sie auf dem Remote-System netstat oder ss aus1 z.B. Wenn Sie erwarten, dass ein Prozess Port 22222 überwacht

Sudo netstat -tnlp | grep :22222

oder

ss -tnlp | grep :22222

Für OSX ist ein geeigneter Befehl

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

Wenn nichts zuhört, erzeugt das oben Gesagte keine Ausgabe. Wenn Sie eine Ausgabe sehen, bestätigen Sie, dass diese Ihren Erwartungen entspricht, und lesen Sie den folgenden Abschnitt zur Firewall.

Wenn Sie keinen Zugriff auf das Remote-System haben und das Problem bestätigen möchten, bevor Sie es den entsprechenden Administratoren melden, können Sie tcpdump (wireshark oder ähnliches) verwenden.

Wenn versucht wird, eine Verbindung zu einem IP: -Port herzustellen, an dem nichts empfangsbereit ist, ist die Antwort des Remote-Systems auf das anfängliche SYN-Paket ein Paket, für das die Flags RST, ACK gesetzt sind. Dies schließt die Verbindung und verursacht die Nachricht "Verbindung abgelehnt", z.

$ Sudo tcpdump -n Host 192.0.2.1 und Port 22222
tcpdump: Ausführliche Ausgabe unterdrückt. Verwenden Sie -v oder -vv für die vollständige Protokolldecodierung
Abhören von enp14s0, Verbindungstyp EN10MB (Ethernet), Erfassungsgröße 262144 Byte

12: 31: 27.013976 IP 192.0.2.2.34390> 192.0.2.1.22222: Flags [S] , seq 1207858804, win 29200, options [mss 1460, sackOK, TS val 15306344 ecr 0, nop, wscale 7], länge 0

12: 31: 27.020162 IP 192.0.2.1.22222> 192.0.2.2.34390: Flags [R.] , seq 0, ack 1207858805, win 0, length 0

Beachten Sie, dass tcpdump ein . bis repräsentiert das ACK Flag verwendet.

Port wird von einer Firewall blockiert

Wenn der Port von einer Firewall blockiert wird und die Firewall so konfiguriert wurde, dass sie mit icmp-port-unreachable Antwortet, führt dies auch zu einer Meldung, dass die Verbindung abgelehnt wurde. Wieder können Sie dies mit tcpdump (oder ähnlichem) sehen

$ Sudo tcpdump -n icmp
tcpdump: Ausführliche Ausgabe unterdrückt. Verwenden Sie -v oder -vv für die vollständige Protokolldecodierung

Abhören von enp14s0, Verbindungstyp EN10MB (Ethernet), Erfassungsgröße 262144 Byte 13: 03: 24.149897 IP 192.0.2.1> 192.0.2.2: ICMP 192.0.2.1 TCP-Port 22222 nicht erreichbar, Länge 68

Beachten Sie, dass dies uns auch sagt, wo sich die blockierende Firewall befindet.


Jetzt wissen Sie also, was die Nachricht "Verbindung abgelehnt" verursacht. Sie sollten geeignete Maßnahmen ergreifen, z. Wenden Sie sich an den Firewall-Administrator oder untersuchen Sie den Grund dafür, dass der Prozess nicht abhört.

1 Andere Tools sind wahrscheinlich verfügbar.

129
user9517

Für mich auf Debian 6 Squeeze war es so einfach wie Überprüfung des SSH-Dienstes :

Sudo service ssh status

Und es gab nichts zu finden (mit der Nachricht ssh: unrecognized service) nur Installation des Dienstes :

Sudo apt-get install openssh-server

Dies funktioniert auch, wenn Sie keine SFTP-Verbindung erhalten, da SFTP eine Teilmenge von SSH ist (während FTPS eine Teilmenge von FTP ist).

5
SharpC

Meiner Centos Shorewall-Firewall war der Speicherplatz ausgegangen. verwirrenderweise funktionierten einige Websites wie Youtube und MS. Andere wie cnn.com sind gescheitert. Durch das Löschen von Speicherplatz und das Neustarten des Servers wurde das Problem für mich behoben.

0
Mike Ross