Notatka: Omówione tutaj polecenia zostały przetestowane na Ubuntu 20.04 LTS. Te same polecenia obowiązują również w systemie Debian.
Napraw błąd odmowy połączenia
Jest to błąd Odmowa połączenia, który możesz napotkać podczas łączenia się ze zdalnym systemem przez SSH.
Postępuj zgodnie z poniższymi rozwiązaniami krok po kroku, aby rozwiązać błąd połączenia odrzuconego.
Upewnij się, że OpenSSH jest zainstalowany
Jednym z powodów, dla których może pojawić się błąd Odmowa połączenia, jest to, że serwer OpenSSH nie jest zainstalowany na serwerze docelowym.
Najpierw musisz upewnić się, że serwer OpenSSH jest zainstalowany w systemie, do którego próbujesz uzyskać dostęp przez SSH. Aby sprawdzić, czy OpenSSH jest zainstalowany, wydaj następujące polecenie w Terminalu serwera docelowego:
$sudotrafna lista--zainstalowany | chwytopensh-serwer
To polecenie zasadniczo filtruje termin openssh-server z listy zainstalowanych pakietów. Jeśli otrzymasz następujące podobne dane wyjściowe, oznacza to, że serwer OpenSSH jest zainstalowany. Z drugiej strony, jeśli nie otrzymasz żadnych danych wyjściowych, oznacza to, że na serwerze docelowym brakuje OpenSSH.
Jeśli nie jest zainstalowany na serwerze docelowym, możesz go zainstalować za pomocą następującego polecenia jako sudo:
$sudotrafnyzainstalowaćopensh-serwerNastępnie wpisz hasło sudo, a gdy zostaniesz poproszony o potwierdzenie, naciśnij „y”. Po zainstalowaniu potwierdź za pomocą tego samego polecenia
$sudotrafna lista--zainstalowany | chwytopensh-serwerSprawdź usługę SSH
Usługa OpenSSH działa w tle i nasłuchuje połączeń przychodzących. Zatrzymana usługa OpenSSH może być jednym z powodów, dla których otrzymujesz błąd Odmowa połączenia.
Dlatego konieczne jest sprawdzenie, czy usługa OpenSSH jest uruchomiona, czy nie za pomocą następującego polecenia w Terminalu:
$sudousługaciszastatusJeśli zobaczysz następujące dane wyjściowe, oznacza to, że usługa jest aktywna i działa w tle.
Z drugiej strony, jeśli otrzymasz nieaktywny (martwy), oznacza to, że usługa nie działa . Możesz uruchomić usługę OpenSSH za pomocą następującego polecenia jako sudo w Terminalu:
$sudousługaciszapoczątekAby ponownie uruchomić usługę, użyj następującego polecenia:
$sudousługaciszauruchom ponownieSprawdź port nasłuchiwania serwera SSH
Innym powodem otrzymania błędu Odmowa połączenia jest próba połączenia z niewłaściwym portem. Na przykład, jeśli serwer jest skonfigurowany do nasłuchiwania na porcie 2244 i próbujesz połączyć się z jego domyślnym portem 22, wtedy w takim przypadku pojawi się błąd Odmowa połączenia.
Przed próbą połączenia musisz sprawdzić port nasłuchiwania serwera SSH. Jeśli jest to port domyślny (22), możesz podłączyć go za pomocą następującego polecenia:
$cisza [Nazwa Użytkownika]@[IP zdalnego serwera lubnazwa hosta]Jeśli jest to inny port niż domyślny, będziesz musiał połączyć się z serwerem SSH za pomocą tego portu:
$cisza -P [numer portu] [Nazwa Użytkownika]@[adres IP]Aby sprawdzić, na którym porcie nasłuchuje serwer OpenSSH; użyj następującego polecenia w Terminalu:
$sudo netstat -ltnp | chwytsshdOtrzymasz wynik podobny do następującego:
W trzeciej kolumnie możesz zobaczyć port nasłuchiwania serwera to 2244. W takim przypadku będziesz musiał połączyć się z serwerem SSH za pomocą tego portu.
$cisza -P [2244] [Nazwa Użytkownika]@[adres IP]Zezwól na SSH w zaporze
Zapora blokująca port SSH może być kolejnym ważnym powodem błędu odrzucenia połączenia. Jeśli na serwerze SSH działa zapora, musisz zezwolić na jej port SSH za pomocą następującego polecenia. Zastąpić Port według numeru portu, którego nasłuchuje serwer SSH:
$sudoufw zezwalaj na port/tcpNa przykład, jeśli serwer SSH nasłuchuje na porcie 2244, możesz zezwolić na to w zaporze jako:
$sudoufw zezwól2244/tcp
Załaduj ponownie zaporę za pomocą następującego polecenia:
$sudoufw przeładujW celu potwierdzenia, czy reguły zostały dodane, sprawdź stan zapory za pomocą następującego polecenia w Terminalu:
$sudostatus ufwPoniższe dane wyjściowe pokazują, że port 2244 jest dozwolony w zaporze.
Rozwiąż konflikt zduplikowanych adresów IP
Błąd połączenia odrzuconego może również wystąpić z powodu konfliktu zduplikowanych adresów IP. Upewnij się więc, że system nie ma zduplikowanego adresu IP.
Zainstaluj narzędzie arping w swoim systemie za pomocą następującego polecenia:
$sudotrafnyzainstalowaćarpingNastępnie pinguj adres IP serwera SSH.
$świst <adres IP>Na wyjściu, jeśli zobaczysz odpowiedź z więcej niż jednego adresu MAC, oznacza to, że w systemie działa zduplikowany adres IP. W takim przypadku zmień adres IP serwera SSH i spróbuj ponownie połączyć się z nowym adresem IP.
Oto jak naprawić błąd odmowy połączenia przez port 22 w systemach Linux. W tym artykule opisaliśmy kilka sposobów, które z pewnością pomogą Ci rozwiązać problem z odmową połączenia.