Jak rozwiązać błędy „Odmowa połączenia” w połączeniu SSH?

96

Mam 32-bitowy serwer Ubuntu Server 10.10 w domu. Nawiązuję do niego połączenia SSH z mojego komputera za pośrednictwem Putty.

Problem polega na tym, że czasami mogę się bezproblemowo zalogować. Czasami jednak pojawia się taki błąd:Network error: Connection refused.

Następnie nic nie zmieniam, spróbuj zalogować się jeszcze kilka razy, poczekaj chwilę i spróbuj ponownie. Czasami mogę się zalogować, czasem nie mogę. Wydaje mi się to dość przypadkowe.

Co mogę zrobić, aby to rozwiązać?

Edytować:

Czasami Putty Network error: Software caused connection abortwyświetla błąd po wyświetleniu login as:tekstu.

Oto wynik działania polecenia ping-t:

Pinging 192.168.2.254 with 32 bytes of data:
Reply from 192.168.2.254: bytes=32 time=6ms TTL=64
Reply from 192.168.2.254: bytes=32 time=65ms TTL=6
Reply from 192.168.2.254: bytes=32 time=88ms TTL=6
Reply from 192.168.2.254: bytes=32 time=1ms TTL=64
Reply from 192.168.2.254: bytes=32 time=3ms TTL=64
Reply from 192.168.2.254: bytes=32 time=1ms TTL=64
Reply from 192.168.2.254: bytes=32 time=1ms TTL=64
Reply from 192.168.2.254: bytes=32 time=1ms TTL=64
Reply from 192.168.2.254: bytes=32 time=1ms TTL=64

Wyłączyłem zaporę routera i wszystko wydaje się teraz działać. Poza tym nadal nie mogę wejść na mój serwer WWW, wpisując zewnętrzny adres IP z mojego komputera.

frbry
źródło
następnym razem tak się rozbije; ponownie uruchom ping, czy nadal działa? ile osób ssh do tej maszyny?
myusuf3
Tylko ja ssh ten serwer.
frbry 13.03.11
Dokładnie ten sam problem, także uzyskanie połączenia udanych połączeń (które następnie działają przez wiele godzin), „odmowa połączenia” i „oprogramowanie spowodowało przerwanie połączenia” po wpisaniu loginu lub hasła. Aby podać dodatkowe informacje: w moim przypadku jest to 64-bitowa maszyna wirtualna (z systemem Ubuntu Server 10.10) na hoście Microsoft Hyper-V, wykorzystująca emulację „starej karty sieciowej”.
hheimbuerger
SSH jest zainstalowany na twoim serwerze?
Willian Soares

Odpowiedzi:

82

Aby to zadziałało, musisz zainstalować openssh-server w systemie Linux. Uzyskaj wewnętrzny adres IP Ubuntu i użyj tego adresu IP, aby skonfigurować przekierowanie portów w sekcji portu 22 (SSH) routera. Chociaż jeśli nie zamierzasz korzystać z SSH spoza sieci, nie jest to wymagane.

Oto jak zainstalować openssh-server:

sudo apt-get install openssh-server openssh-client
[ENTER PASSWORD]
MacGyver
źródło
10
Nie odpowiada bezpośrednio na pytanie, ale jest to przydatne, ponieważ Ubuntu nie jest fabrycznie instalowany z serwerem SSH.
Ostati
Niedawno dostałem nowy laptop i całkowicie zapomniałem, że nie jest domyślnie zainstalowany = D
Izkata,
40

Konflikt adresów IP okazał się główną przyczyną, gdy widziałem ten komunikat o błędzie SSH.

Po przeczytaniu powyższych odpowiedzi podejrzewałem konflikt adresów IP, ale musiałem udowodnić, że konflikt adresów był lub nie był problemem.

Ten świetny artykuł pokazał, jak używać arp-scan, aby sprawdzić, czy dwa urządzenia żądają tego samego adresu IP.

W moim przypadku serwer miał statyczny adres IP 192.168.1.42, użyłem arp-scan, aby sprawdzić ten adres:

$ sudo apt-get install arp-scan
$ arp-scan -I eth0 -l | grep 192.168.1.42
  192.168.1.42 d4:eb:9a:f2:11:a1 (Unknown)
  192.168.1.42 f4:23:a4:38:b5:76 (Unknown) (DUP: 2)

Rzeczywiście wystąpił konflikt, jak pokazano powyżej. Następnie uruchomiłem arp-scan bez grep, stwierdziłem, że .43 jest dostępny, poszedłem i edytowałem /etc/network/interfacesi zmieniłem statyczny ip z .42 na .43

Rian Sanderson
źródło
Właściwie uruchomienie tego polecenia pokazało tylko jedną linię na moim pudełku, z wyjątkiem tego, że nazwa była nazwą innego urządzenia.
assylias
Dziękuję bardzo za punkt we właściwym kierunku na temat konfliktu adresów IP. Miałem podobny problem! +1
DominikAngerer
Właśnie zaoszczędziłem tyle czasu ... hud ...
Chris Barlow
Czasami mój router wymaga ponownego uruchomienia, aby rozwiązać ten problem.
Gabriel Staples,
14

Użyj arpingadresu IP, na którym występują problemy z połączeniem. To pokaże adres MAC dla każdej odpowiedzi ping i, mam nadzieję, zdemaskuje nieuczciwy adres MAC.

arping 192.168.2.254

Należy sprawdzić pulę adresów IP DHCP na serwerze DHCP, upewnić się, że żadne urządzenie nie ma statycznych adresów IP, które kolidują z pulą DHCP.

Te wskazówki wskazują na powielenie adresu IP:

  • ping ping i czas podróży w obie strony wyglądają jak 2 różne serwery
  • przerywany rozłącza się bez ponownego uruchamiania
John Shalamskas
źródło
Doskonale, wskazał mi właściwą ścieżkę! Był w stanie go prześledzić według drugiego adresu MAC, do którego był port, i zmienić adres IP drukarki
Kanadyjczyk Łukasz
1
Musiałem dodać -I wlan0 (wlan0 to moje urządzenie Wi-Fi)
guhur
6

Miałem ten sam problem, mimo że miałem statyczny adres IP. Okazuje się, że inny serwer w mojej sieci miał przypisany ten sam (statyczny) adres IP. (Duh.) Wygląda więc na to, że problem jest spowodowany konfliktami adresów IP, ale mogą istnieć różne możliwe sposoby. Jeśli ustawisz swój na statyczny i nadal masz problem, spróbuj wyłączyć komputer i pingować adres. Jeśli otrzymasz jakieś odpowiedzi, zacznij szukać, co jeszcze może mieć ten sam adres.

DLosc
źródło
1
Wystąpiły te same objawy i wyśledziłem to na maszynie o tym samym adresie IP co serwer.
SabreWolfy,
4

Co otrzymasz, jeśli to zrobisz?

grep 192.168.2.25 /etc/hosts.deny

Jeśli to coś zwróci, musisz to usunąć.

Jodi MIddleton
źródło
10
To jedno z niesławnych „bezużytecznych zastosowań cat” - możesz po prostugrep 192.168.2.25 /etc/hosts.deny
Tobias Kienzler
@TobiasKienzler Naprawiono
wjandrea
4

otwórz plik ssh config:

sudo nano /etc/ssh/ssh_config

znajdź port

#port 22

usuń ostrą opcję portu

następnie zapisz plik ctrl + xi uruchom ponownie usługę

sudo service ssh restart
Jestem w
źródło
3

Wygląda to bardziej na problem twojego sprzętu sieciowego niż samego serwera.

Sprawdź / var / log / messages pod kątem wzlotów / upadków łączy Ethernet (lub wlan w przypadku łączności bezprzewodowej). Jeśli tak, spróbuj zmienić kable.

forcefsck
źródło
Tak, próbowałem i udało mi się nawiązać połączenie ssh spoza mojej sieci (w której znajduje się mój serwer i komputer). Wygląda na to, że działa dobrze. Mój serwer to także serwer WWW. Kiedy próbuję połączyć się przez port 80 z mojego komputera, widzę stronę logowania modemu ADSL. Ale kiedy próbuję tego samego z innego komputera, który jest poza moją siecią, widzę stronę działającą Apache.
frbry 12.03.11
Co to jest ip komputera, ip serwera i wewnętrzny router adsl ip?
forcefsck 12.03.11
PC: 192.168.2.2 (otrzymano z DHCP) Serwer: 192.168.2.254 (statyczny, poza zakresem DHCP) Router ADSL: 192.168.2.1
frbry
Jestem trochę zdezorientowany, kiedy łączysz się z portu 80.168.2.2 do 192.168.2.254 portu 80, dostajesz login modemu adsl?
forcefsck 12.03.11
1
O ile nie skonfigurowałeś jakiegoś serwera proxy dla swojego serwera, wtedy wyraźnie widać, że modem adsl odpowiada na żądania wysłane do 192.168.2.254 i prawdopodobnie tak jest, gdy pojawia się Connection refusedbłąd z ssh. Musisz więc ponownie sprawdzić ustawienia modemu adsl.
forcefsck 12.03.11
3

Mogę potwierdzić ten dokładny problem: nie jest to zwykły problem z łącznością. Łącze Ethernet nie zmienia stanu; serwer jest osiągalny poprzez ping; ssh od czasu do czasu łączy się bezbłędnie, a potem pozornie losowo nie łączy się lub istniejąca sesja ssh spada. Dzieje się tak w Ubuntu 10.04 i 11.04. Po sugestii hheimbuergera podałem statycznemu adresowi IP serwer, wydaje się, że to naprawiło.

Obejście: Zmień adapter z DHCP na statyczny.

Jerzy
źródło
1

Miałem dokładnie ten sam problem, aw moim przypadku okazało się, że jest to konflikt adresów IP. Moja maszyna wirtualna Ubuntu miała adres dynamiczny, ale inna maszyna (w tym przypadku telefon) miała przypisany statyczny adres IP, o którym serwer DHCP nie wiedział.

Właśnie zmiana adresu IP przypisanego przez serwer DHCP do maszyny Wirtualnej Ubuntu naprawiła wszystkie problemy z połączeniem.

hheimbuerger
źródło
1

Jest to w zasadzie z jednego z następujących powodów:

  1. Zbyt wielu użytkowników w sieci próbuje uzyskać dostęp do serwera
  2. Więcej niż jeden komputer w sieci ma ten sam adres IP co serwer powodujący konflikt adresów IP
  3. Niepoprawna nazwa użytkownika lub dane logowania zostały cofnięte
Mevin Babu
źródło
0

Możesz sprawdzić swoje iptablesreguły na swoim serwerze. Wygląda na to, że masz zasadę ograniczania nowych połączeń SSH.

Następna reguła zezwala na 5 nowych połączeń na minutę, jeśli przekroczysz ten limit, nowe połączenia zostaną odrzucone po pewnym czasie:

-A INPUT -p tcp --dport 22 -m conntrack --ctstate NEW -m limit --limit 5/min -j ACCEPT

Zobacz dokumentację IPTables / Netfilter , przewiń trochę do limit.

Lekensteyn
źródło
0

arp-scan pokazuje dwa zduplikowane urządzenia, ale kiedy uruchamiam Zaawansowany skaner IP na Win8, wszystkie wyglądają dobrze. Więc nie zawsze się zgadzają.

Ustawiłem router, aby unieważniał wszystkie dzierżawy, mówiąc mu, aby udzielał dzierżawy tylko na 1 godzinę. Daje czas na sprawdzenie, czy wszystko się wyjaśni.

SDsolar
źródło