To jest kanoniczne pytanie dotyczące odmowy połączenia
Widzimy wiele pytań
Kiedy próbuję połączyć się z systemem, pojawia się komunikat
Połączenie odrzucone
Dlaczego to ?
To jest kanoniczne pytanie dotyczące odmowy połączenia
Widzimy wiele pytań
Kiedy próbuję połączyć się z systemem, pojawia się komunikat
Połączenie odrzucone
Dlaczego to ?
Odpowiedzi:
Uwaga : ten komunikat jest objawem problemu, który próbujesz rozwiązać. Zrozumienie przyczyny komunikatu ostatecznie doprowadzi cię do rozwiązania problemu.
Komunikat „Odmowa połączenia” ma dwie główne przyczyny:
Żaden proces nie słucha.
Jest to zdecydowanie najczęstszy powód komunikatu. Najpierw upewnij się, że próbujesz połączyć się z odpowiednim systemem. Jeśli chcesz ustalić, czy to jest problem, uruchom na zdalnym systemie polecenie netstat lub ss 1, np. Jeśli oczekujesz, że proces będzie nasłuchiwał na porcie 22222
sudo netstat -tnlp | grep :22222
lub
ss -tnlp | grep :22222
W przypadku OSX odpowiednim poleceniem jest
sudo netstat -tnlp tcp | grep '\.80 '
Jeśli nic nie słucha, powyższe nie wytworzy żadnego wyjścia. Jeśli zobaczysz jakieś dane wyjściowe, potwierdź, że tego oczekujesz, a następnie zobacz sekcję zapory poniżej.
Jeśli nie masz dostępu do systemu zdalnego i chcesz potwierdzić problem przed zgłoszeniem go odpowiednim administratorom, możesz użyć tcpdump (wireshark lub podobny).
Podczas próby połączenia z portem IP: gdzie nic nie nasłuchuje, odpowiedzią systemu zdalnego na początkowy pakiet SYN jest pakiet z ustawionymi flagami RST, ACK. To zamyka połączenie i powoduje komunikat o odmowie połączenia, np
$ sudo tcpdump -n host 192.0.2.1 i port 22222
tcpdump: pełne wyjście wyłączone, użyj -v lub -vv do pełnego dekodowania protokołu
nasłuchiwania na enp14s0, typ łącza EN10MB (Ethernet), rozmiar przechwytywania 262144 bajtów
12: 31: 27.013976 IP 192.0.2.2.34390> 192.0.2.1.22222: Flagi [S] , seq 1207858804, win 29200, opcje [mss 1460, sackOK, TS val 15306344 ecr 0, nop, wscale 7], długość 0
12: 31: 27.020162 IP 192.0.2.1.22222> 192.0.2.2.34390: Flagi [R.] , seq 0, ack 1207858805, win 0, length 0
Zauważ, że tcpdump używa . do reprezentowania ACK flagę.
Port jest blokowany przez zaporę ogniową
Jeśli port jest blokowany przez zaporę ogniową, a zapora została skonfigurowana tak, aby odpowiadać, icmp-port-unreachable
spowoduje to również komunikat odmowy połączenia. Ponownie możesz to zobaczyć za pomocą tcpdump (lub podobnego)
$ sudo tcpdump -n icmp
tcpdump: pełne wyjście wyłączone z użycia, użyj -v lub -vv do pełnego dekodowania protokołu
nasłuchiwania na enp14s0, typ łącza EN10MB (Ethernet), rozmiar przechwytywania 262144 bajtów 13: 03: 24.149897 IP 192.0.2.1> 192.0. 2.2: ICMP 192.0.2.1 port TCP 22222 nieosiągalny, długość 68
Pamiętaj, że informuje nas to także o miejscu, w którym znajduje się zapora blokująca.
Teraz już wiesz, co powoduje komunikat „Odmowa połączenia”, powinieneś podjąć odpowiednie działania, np. Skontaktować się z administratorem zapory ogniowej lub ustalić przyczynę, dla której proces nie nasłuchuje.
1 Prawdopodobnie dostępne są inne narzędzia.
Dla mnie na ściśnięciu Debiana 6 było to tak proste, jak sprawdzenie usługi SSH :
sudo service ssh status
I nie znaleziono niczego (z komunikatem ssh: unrecognized service
) po prostu instalując usługę :
sudo apt-get install openssh-server
Działa to również, jeśli nie otrzymujesz połączenia SFTP, ponieważ SFTP jest podzbiorem SSH (podczas gdy FTPS jest podzbiorem FTP).