Putty: „Serwer niespodziewanie zamknął połączenie sieciowe”


12

Putty „Nieoczekiwanie zamknięte połączenie sieciowe serwera” Dostaję „Nieoczekiwanie zamknięte połączenie sieciowe serwera” (patrz /superuser/735824/putty-ends-to-an-unotected-error-and-vnc- pokazuje terminal z błędem i uzyskiwanie „Serwer nieoczekiwanie zamknął połączenie sieciowe” ), ale nie jest ono powiązane z żadnym ponownym uruchomieniem, połączenie po prostu nieoczekiwanie kończy się niepowodzeniem, a wraz z nim serwer WWW (Apache) działa z serwera Linux. Używam Putty przez Windows 7, aby połączyć się z Raspberry Pi z Raspbian. Jakieś pomysły, co może pójść nie tak?

Odpowiedzi:


14

Bezczynna sesja PuTTY zostanie rozłączona w czasie określonym przez serwer hosta. Spróbuj włączyć podtrzymywanie życia w PuTTY. Powoduje to, że PuTTY okresowo wysyła puste pakiety SSH do zdalnego hosta, co zapobiega przekroczeniu limitu czasu sesji.

Klient PuTTY można skonfigurować tak, aby zawsze nawiązywał połączenie, które nie przekroczy limitu czasu z powodu braku aktywności. Aby utworzyć i zapisać nowe połączenie utrzymujące aktywność, wykonaj następujące kroki:

  1. Otwórz aplikację PuTTY i przejdź do panelu Opcje (oznaczonego „Kategoria”) po lewej stronie okna.
  2. Wybierz (kliknij) element „Połączenie”.
  3. W obszarze „Wysyłanie pakietów zerowych, aby sesja była aktywna” po prawej stronie zmień wartość domyślną „Sekundy między utrzymywaniem” z 0 (wyłącz) na 1800 (30 minut).
  4. Zaznacz pole wyboru „Włącz Keepalives TCP (opcja SO_KEEPALIVE)”. Uwaga: Ta opcja może nie być dostępna w starszych wersjach klienta PuTTY.
  5. W lewym górnym rogu panelu Opcje wybierz (kliknij) „Sesja”.
  6. W polu „Nazwa hosta (lub adres IP)” wprowadź docelową nazwę hosta lub adres IP (np. „Destination.ipaddress.here.com” lub „192.168.1.1”).
  7. W polu tekstowym „Zapisane sesje” podaj nazwę sesji (np. „Zapisana sesja”).
  8. Wybierz „Zapisz”.

Aby użyć zmodyfikowanych ustawień sesji, wybierz je z listy „Zapisane sesje”, a następnie kliknij przyciski oznaczone „Załaduj” i „Otwórz”.

Jeśli połączone sesje nadal się kończą, wprowadź mniejszą liczbę sekund w wartości „Sekundy między utrzymywaniem”.


To również jest niepoprawne. Połączenie TCP nigdy nie przekroczy limitu czasu. Jeśli zasada end-to-end jest podważana przez NAT lub tym podobne, odwzorowania połączeń na tych urządzeniach mogą przekroczyć limit czasu. SSH domyślnie nigdy nie przekroczy limitu czasu. Przy prawidłowym połączeniu internetowym bezczynne połączenie SSH pozostanie otwarte przez czas nieokreślony.
Daniel B

Ssh oferuje dwa rodzaje utrzymywania życia: TCP utrzymywania życia i ssh utrzymywania życia. TCP oferuje mechanizm automatycznego zamykania połączeń uznanych za martwe z powodu przekroczenia limitu czasu. Chodzi o aktywację flagi w gnieździe.
Raúl Salinas-Monteagudo

Obniżyłem numer i wróciłem do 0 i nadal nie będę działać. Czy istnieje inne rozwiązanie tego problemu?
myselfmiqdad

1

Serwer mógł zostać zahartowany. Przyczyną może być: a) adres IP klienta może nie być skonfigurowany w / etc / allowhosts i / lub b) reguła zapory unix / linux / selinux jest niedozwolona.


0

Miałem ten sam problem przez długi czas, używam Kit do łączenia się z instancjami linuksowymi AWS (niektóre zdalne serwery w chmurze). Przeczytałem o naprawianiu go za pomocą keepAlives na kilku stronach na kilku stronach, wypróbowałem to, ale bezskutecznie.

I dopiero wczoraj, szukając niektórych ustawień schematu kolorów, znalazłem to: https://github.com/jblaine/solarized-and-modern-putty

Poza dostosowaniem kolorów terminala stosuje pewne rozsądne wartości domyślne (jak wspomniany KeepAlives do 59 sekund plus inne), i zgadnij co? Przez dwa dni nie miałem żadnego zamkniętego połączenia.


-1

Byłeś bezczynny dłużej niż limit czasu sesji na zdalnym urządzeniu, więc zamknął sesję i PuTTy nie spodziewała się tego.


1
Nie do końca jednak: jeśli się wylogujesz (lub zostaniesz wylogowany), połączenie zostanie zakończone z wdziękiem. Stało się tak, że podstawowe połączenie TCP zostało w jakiś sposób zamknięte („Resetowanie połączenia przez peer”), a zatem „nieoczekiwanie”.
Daniel B

Gdzie widzisz „reset”? Dla mnie oczywistym znaczeniem „nieoczekiwanie zamkniętym” jest oczekiwanie zamknięcia TCP na poziomie SSH, a testowanie to potwierdza: jeśli wyjdę z lub zabiję moją powłokę, otrzymam serwerowe pakiety SSH (I ass-u-me CHANNEL_EOF, CHANNEL_CLOSED i / lub ODŁĄCZ)), a następnie FIN i Putty wyskakuje „zamknięty przez zdalny host”; OTOH, jeśli zabiję -9 mój sshd, dostanę tylko wymianę TCP FIN i „nieoczekiwane zamknięte połączenie sieciowe serwera”. Gdyby to był RST (a nie SYN, gdzie oznacza odmowę), podejrzewałbym trochę środkowej skrzynki, zgodnie z twoim innym komentarzem.
dave_thompson_085

@ dave_thompson_085 Masz rację, pomyliłem FIN i RST. W przeciwnym razie KiTTY mówi „Oprogramowanie spowodowało przerwanie połączenia”.
Daniel B
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.