Dies ist eine kanonische Frage zu " Verbindung abgelehnt"
Wir sehen viele Fragen zu diesem Effekt
Wenn ich versuche, eine Verbindung zu einem System herzustellen, erhalte ich eine Nachricht
Verbindung abgelehnt
Warum ist das ?
Dies ist eine kanonische Frage zu " Verbindung abgelehnt"
Wir sehen viele Fragen zu diesem Effekt
Wenn ich versuche, eine Verbindung zu einem System herzustellen, erhalte ich eine Nachricht
Verbindung abgelehnt
Warum ist das ?
Antworten:
Hinweis : Diese Meldung ist ein Symptom für das Problem, das Sie lösen möchten. Das Verstehen der Ursache der Nachricht führt Sie letztendlich zur Lösung Ihres Problems.
Die Meldung "Verbindung abgelehnt" hat zwei Hauptursachen:
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 fernen System netstat oder ss 1 aus, 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, wird auf diese Weise kein Ausgang erzeugt. Wenn Sie eine Ausgabe sehen, vergewissern Sie sich, dass diese Ihren Erwartungen entspricht, und lesen Sie den Abschnitt über die Firewall weiter unten.
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 fernen Systems auf das anfängliche SYN-Paket ein Paket mit den Flags RST, ACK. Dies schließt die Verbindung und bewirkt, dass die Nachricht Connection Refused (Verbindung abgelehnt) angezeigt wird, 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
von enp14s0, EN10MB (Ethernet) vom Verbindungstyp, erfassen Sie Größ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], length 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 a verwendet . zur Darstellung der ACK- Flagge.
Der Port wird von einer Firewall blockiert
Wenn der Port von einer Firewall blockiert wird und die Firewall so konfiguriert wurde, dass sie darauf antwortet, icmp-port-unreachable
wird auch eine Meldung angezeigt, 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 Protokolldecodierungsüberwachung
auf enp14s0, EN10MB (Ethernet) vom Verbindungstyp, 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 auch angibt, wo sich die blockierende Firewall befindet.
Jetzt wissen Sie also, woher die Meldung "Verbindung abgelehnt" stammt. Sie sollten geeignete Maßnahmen ergreifen, z. B. den Firewall-Administrator kontaktieren oder den Grund für das Nichthören des Prozesses ermitteln.
1 Andere Tools sind wahrscheinlich verfügbar.
Für mich bei Debian 6 Squeeze war es so einfach wie das Überprüfen des SSH-Dienstes :
sudo service ssh status
Und es wurde nichts gefunden (mit der Meldung ssh: unrecognized service
), nur der Dienst wurde installiert :
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).