2011-06-09 02:12:42 +0000 2011-06-09 02:12:42 +0000
84
84

PuTTY Network Error: Oprogramowanie spowodowało przerwanie połączenia

Mam dziwny problem: Kiedy używam PuTTY z połączeniem SSH do serwera Linuksa hostowanego w VMware na moim lokalnym Windows 7, często dostaję błąd mówiąc "Network error: Software caused connection abort" i wtedy okno PuTTY SSH jest nieaktywne. Zazwyczaj mogę zalogować się do serwera z PuTTY i coś zrobić, ale po przypadkowym czasie (około jednej lub dwóch minut) dostaję ten błąd. Czasami nawet nie mogę się zalogować, dostaję błąd mówiąc timeout.

Myślę, że coś jest nie tak z moim VMware Player, ponieważ mam inny pulpit Ubuntu hostowany w VMware jako serwer repozytorium kodu i częściej niż nie ma błędu timeout, gdy robię aktualizację/kommitację SVN. Myślę jednak, że Windows 7 ma pewne dziwactwa, ponieważ ten sam serwer Ubuntu hostowany w VMware jako repozytorium kodu działa bardzo dobrze na Windows Vista! Wygląda na to, że wszystkie złe rzeczy dzieją się po przejściu z Windows XP na Windows Vista, a następnie Windows 7!

Co może być przyczyną tego problemu i jak można to naprawić?

Suplement :

Zrobiłem wyszukiwanie w Google i zastosowałem wszystkie metody aby pomóc, w tym:

  1. Włącz sshd TCPKeepAlive
  2. Ustaw sshd ClientAliveInterval na 900 i ClientAliveCountMax na 3
  3. Ustawienie połączenia PuTTY ‘seconds between keepalives’ na 5.

Ale to wszystko nie działa! A sesja SSH w PuTTY wciąż się psuje po jakimś czasie!

Wyłączyłem zarówno zaporę serwera Linux jak i klienta Windows 7, ale logowanie wciąż się kończy! To jest naprawdę irytujące!

Wydaje się, że czasami mogę się zalogować, ale czasami czas logowania się wyłącza! Naprawdę nie wiem dlaczego. To doprowadza mnie do szału!

Jedna rzecz, o której muszę wspomnieć to to, że kiedy używam PuTTY SSH łączącego się ze zdalnym serwerem, i to wszystko jest OK!

Kiedy nie udało mi się zalogować, ping też się nie udało! Ale, jak to się może stać? Używam odtwarzacza VMware do hostowania serwera Linux na mojej lokalnej maszynie!

Antwoorden (12)

60
60
60
2012-06-25 18:52:15 +0000

Windows XP lub tylko poprzedni system operacyjny:

Napisałem tą odpowiedź 9 lat temu dla Windows XP, oprogramowanie Putty ma 21 lat i dlatego ta odpowiedź jest przydatna dla celów historycznych. Obecny smartfonowy Zune-OS dla komputerów stacjonarnych z Windowsem złamał Putty na poziomie sieci, w pogoni za irytującymi punktami wejścia lub wyjścia, które nie są częścią stosu narzędzi Azure Vendor pay-for-play.

Putty ma funkcję, która próbuje rozwiązać ten problem:

Network Error: Software caused connection abort
  1. Start Putty
  2. Załaduj ustawienia połączenia, jeśli masz je zapisane
  3. Kliknij na “Connection”
  4. W sekcji “Wysyłanie pakietów zerowych, aby sesja była aktywna”, zmieniono to na 5 sekund. 300 sekund może być lepsze, jeśli twoim problemem są przerwy w sieci, przeczytaj poniżej, aby dowiedzieć się więcej.

Jak utrzymać keepalives, aby zapobiec rozłączeniu z Putty:

Niektóre routery sieciowe i firewalle muszą śledzić wszystkie połączenia przez nie wykonywane. Zazwyczaj te firewalle zakładają, że połączenie jest martwe, jeśli po pewnym odstępie czasu żadne dane nie są przesyłane w którąkolwiek stronę. Może to spowodować nieoczekiwane zamknięcie sesji PuTTY przez zaporę, jeśli przez jakiś czas w sesji nie będzie widoczny żaden ruch.

Opcja keepalive (‘Sekundy pomiędzy keepalives’) pozwala skonfigurować PuTTY do wysyłania danych przez sesję w regularnych odstępach czasu, w sposób, który nie zakłóca rzeczywistej sesji terminalowej. Jeśli okaże się, że firewall przerywa połączenia w stanie bezczynności, można spróbować wprowadzić w tym polu wartość niezerową. Wartość ta jest mierzona w sekundach, więc na przykład, jeśli firewall przerywa połączenia po 10 minutach, możesz wpisać w polu 300 sekund (5 minut).

Redukacja problemu za pomocą szpachli autologicznej i narzędzia “screen ”

Szpachla nie może obsłużyć gównianego wifi, który traci połączenie przez kilka minut. Praca wokół to użycie autologiny i narzędzia “screen”.

Jest to nie trywialny problem dla szpachli, aby ponownie zsynchronizować twój terminal po minucie utraty połączenia z Internetem. Występuje ryzyko ataków człowieka w środku podczas przerwy w pracy. I tak musiałbyś się ponownie uwierzytelnić, aby się upewnić. Szpachla nie narzuca Ci tego, po prostu Cię upuszcza.

Użyj więc autologinu, aby szpachla mogła się automatycznie zalogować w Twoim imieniu.

  1. Wygeneruj klucz prywatny z narzędziem do szpachlowania na komputerze z którym jesteś szpachlowany.
  2. Wklej klucz publiczny do swojego /home/youruser/.ssh/authorized_keys po stronie serwera, na serwerze, na którym używasz kitu, do którego się logujesz.
  3. Udostępnij klucz prywatny do kitu w ustawieniach kitu Połączenie->SSH-\>Automaty
  4. 4. Dodaj klucz prywatny, określając pod nim plik klucza prywatnego: “Plik klucza prywatnego do autoryzacji”.
  5. Zapisz ustawienia połączenia do kitu.

Wtedy będziesz mógł podwójnie kliknąć na połączenie przez kit i powinno ono zabrać Cię prosto do terminala bez wpisywania nazwy użytkownika/hasła.

Więc teraz możesz zaczepić login do kitu na tym połączeniu za pomocą kombinacji klawiszy jak F6. Więc kiedy wifi pójdzie źle i zostaniesz upuszczony. Zacierasz F6 i wracasz do logowania.

ALE nadal tracisz stan swojego terminala! Jak to naprawić? Użyj programu “screen”. Zrób nowy ekran, wpisując “screen”. Nowy ekran jest tworzony.

Kiedy zostaniesz wykopany i automatycznie zalogujesz się, możesz ponownie dołączyć do swojego ekranu. Oto poradnik, jak to zrobić: http://www.tecmint.com/screen-command-examples-to-manage-linux-terminals/

To kłopot z wpisaniem screen i ponownym podłączeniem za każdym razem, gdy zostaniesz wykopany. Więc możesz napisać skrypt, który “automatycznie przeniesie Cię z powrotem na ostatni dostępny ekran”, aby uczynić go przezroczystym.

Więc wtedy, gdy szpachlówka zawiesi się. Wygląda na to, że tak: Wciągasz pogardę, zacierasz Alt+F4 aby zamknąć kit, zacierasz F6. I w 6 sekund wracasz do miejsca, w którym skończyłeś.

Nawet lepsze rozwiązanie, w teorii

W teorii możesz skryptować ten cały powyższy proces, więc terminal wykrywa, kiedy został upuszczony i wykonuje wszystkie powyższe kroki za Ciebie przy przywracaniu połączenia internetowego. Jeśli ktoś zna program, który robi to automatycznie, daj mi znać. Byłoby dobrze.

Źródła: http://the.earth.li/~sgtatham/putty/0.58/htmldoc/Chapter4.html#config-keepalive http://rafaelwolf.com/?p=516

10
10
10
2012-08-20 13:35:11 +0000

Rozwiązywanie problemów z błędem sieci PuTTY

Software caused connection abort

Czytaj, co PuTTY ma do powiedzenia na temat błędu

Jest to ogólny błąd generowany przez kod sieci Windows, gdy z jakiegoś powodu zabija ustanowione połączenie. Na przykład, może się zdarzyć, jeśli wyciągniesz kabel sieciowy z tyłu komputera podłączonego do sieci Ethernet, lub jeśli Windows ma inne podobne powody, aby sądzić, że cała sieć stała się nieosiągalna.

Windows również generuje ten błąd, jeśli zrezygnował na maszynie na drugim końcu połączenia odpowiadając na niego. Jeśli sieć pomiędzy twoim klientem a serwerem się zepsuje, a twój klient spróbuje wysłać jakieś dane, Windows podejmie kilka prób wysłania danych, a następnie zrezygnuje i zabije połączenie. W szczególności, może to nastąpić nawet jeśli nic nie wpisałeś, jeśli używasz SSH-2 i PuTTY próbuje ponownie zmienić klucz.

(Może to również wystąpić jeśli używasz keepalives w połączeniu. Inne osoby zgłosiły, że keepalives naprawił ten błąd dla nich. (Istnieją plusy i minusy keepaliwów)

Nie znamy żadnego powodu, dla którego ten błąd mógłby się pojawić, który stanowiłby błąd w PuTTY. Problem występuje pomiędzy Tobą, Twoim systemem Windows, Twoją siecią i zdalnym systemem.

Spróbuj innego klienta SSH

Najprawdopodobniej problem występuje gdzieś pomiędzy PuTTY a docelowym serwerem SSH. Aby to udowodnić, użyj innego klienta SSH, np. http://kitty.9bis.net ) i sprawdź czy problem występuje również w tym przypadku. Prawdopodobnie spowoduje to odizolowanie problemu od PuTTY.

Podejrzane plamiste połączenie z Internetem

Problemem może być plamiste połączenie z Internetem. Monitorowanie czasu pracy połączenia internetowego jest dobrym sposobem na określenie, czy dostawca usług internetowych traci pakiety i ponosi winę za utratę PuTTY. Pobierz oprogramowanie, które testuje czas działania połączenia internetowego. Na przykład, http://code.google.com/p/internetconnectivitymonitor/ . Częste i długie rozłączanie się z Internetem jest naruszeniem wymogów usług ISP. W takim przypadku trudno będzie udowodnić, że jest to wina dostawcy usług internetowych, ponieważ obsługa techniczna automatycznie obwinia za tego typu problemy komputer, system operacyjny, router i okablowanie w domu. Jeśli używasz Internetu przewodowego i mieszkasz w boonies, może być możliwe, że uszkodzony sprzęt w domach sąsiadów może być wysyłanie statyczne na linii przez kilka sekund / minut, kiedy pierwszy raz włączyć. Wreszcie, możliwe jest, że jest uszkodzony sprzęt w sieci dostawcy usług internetowych do domu. Koszt wymiany sprzętu przez dostawcę usług internetowych jest tak wysoki, że często zdarza się, że nie zrobiłby tego, gdyby nie było wystarczającej liczby abonentów na danym obszarze, którzy by go ostrzegali.

Podejrzewasz, że router przewodowy/bezprzewodowy

Czy łączysz się przez router przewodowy/bezprzewodowy? Ile lat ma ten router? Twój router może być problemem. Stara technologia bezprzewodowa i przewodowa może starzeć się i zanikać połączenia sporadycznie i uruchamiać je ponownie, powodując śmierć PuTTY. Usuń te elementy z równania i zobacz, czy to rozwiązuje problem. Spróbuj połączenia przewodowego i/lub innego routera, aby sprawdzić, czy to rozwiązuje problem. Miałem bezprzewodowy router Linksys cierpi na tę powolną śmierć i upuszczenie połączeń i zrestartować je.

Podejrzewam, że system operacyjny zapewnia połączenie SSH

Komputer, z którym łączysz się z SSH ma politykę na kilka sekund, aby utrzymać połączenia SSH przy życiu. Liczba ta jest ustawiona na niskim poziomie ze względów bezpieczeństwa i można ją zwiększyć. Gdzie jest to ustawienie zależy od używanego systemu operacyjnego, który zapewnia SSH.

Jeśli używasz PuTTY przechodzącego przez maszynę wirtualną

Jeśli używasz PuTTY przechodzącego przez maszynę wirtualną, na maszynie wirtualnej może istnieć polityka, która przerywa połączenie SSH z serwerem, gdy uważa on, że jest nieaktywny. Zwiększenie tych wartości zależy od używanego oprogramowania i systemu operacyjnego maszyny wirtualnej.

Jeżeli połączenie z Internetem jest złe, połączenie klienckie SSH obejmie swoim zasięgiem:

Jeśli Twój dostawca Internetu zapewnia niestabilne połączenie, możesz sprawić, że rozłączenie będzie mniej bolesne z “ssh autologin”. To, co robisz, to generowanie klucza publicznego i prywatnego. I mówisz swojemu serwerowi zagranicznemu, aby automatycznie wpuścił każdego, kto dostarczy dokładny klucz prywatny. Nie rozwiązuje to całkowicie twojego problemu, ale kiedy dojdzie do awarii internetu, wystarczy zamknąć okno, dwukrotnie kliknąć ikonę i natychmiast wracasz do linii poleceń folderu domowego bez wprowadzania nazwy użytkownika/hasła.

To pomoże ci z tym Czy jest sposób na “automatyczne logowanie” w PuTTY z hasłem?

4
4
4
2013-10-29 16:48:06 +0000

Ik werkte met CentOS -servers van Windows-pc’s, en ik had hetzelfde probleem met PuTTY. Een sessie duurde niet meer dan 1-5 minuten. Ik probeerde te spelen met PuTTY instellingen (keepalives, etc.) maar het hielp helemaal niet.

** Uiteindelijk heb ik de oplossing voor mijn zaak gevonden.** Ik heb TCP-dumps opgenomen, zowel op de client als op de server. Ik heb ontdekt dat er gedurende 25-30 seconden voor het verbreken van de verbinding verschillende heruitzendingen van TCP-segmenten op de dump van de client (zowel van de client als van de server) zijn en uiteindelijk stuurt PuTTY RST en sluit de sessie af met die fout. In de dump van de server heb ik in deze periode geen segmenten van de client gezien, zelfs geen RST. Het betekent dat er van tijd tot tijd geen TCP-segmenten van de client aan de server worden geleverd en deze periode is ongeveer 30-60 seconden. Ik heb de zaak verschillende keren opgenomen en altijd waren er heruitzendingen en de uiteindelijke RST van PuTTY. Waarschijnlijk zijn er ergens op de route pakketten gedropt door netwerk apparatuur.

Om een workaround te maken heb ik het maximale aantal data heruitzendingen verhoogd van de standaard waarde 5 naar 16. Het zou kunnen voorkomen dat PuTTY de verbinding te snel verbreekt. De variabele is ‘HKEYLOCALMACHINE_MACHINE’, ‘CurrentControlSet’s Services’, ‘Parameters’, ‘TcpMaxDataRetransmissie’. Ik heb deze variabele handmatig toegevoegd, het was in eerste instantie niet gedefinieerd in het register van mijn Windows. Het hielp wel! Nu zie ik dat PuTTY af en toe hangt, maar het komt altijd weer aan het werk.

Om het probleem op te lossen: 1. Neem een TCP dump op en zoek naar heruitzendingen en RST voordat je de verbinding verbreekt. 2. 2. Als je dezelfde heruitzendingen/RST-segmenten vindt, pas dan het aantal retries aan op een server of clientzijde (dit hangt af van de kant van RST).

Wees voorzichtig: het wijzigen van de TCP-instellingen geldt voor alle software en het OS zelf.

4
4
4
2013-02-08 19:08:00 +0000

W podwyższonym wierszu poleceń należy wykonać następujące czynności:

C:\Windows\system32>netsh int tcp show global

Querying active state...

TCP Global Parameters
----------------------------------------------
Receive-Side Scaling State : enabled

Chimney Offload State : automatic

NetDMA State : enabled

Direct Cache Acess (DCA) : disabled

Receive Window Auto-Tuning Level : normal

Add-On Congestion Control Provider : none

ECN Capability : disabled

RFC 1323 Timestamps : disabled

Jeśli Receive Window Auto-Tuning Level jest normalne, to dostaniesz problemy. Wyłącz go i wtedy wszystko powinno działać tak, jak kiedyś:

C:\Windows\system32>netsh int tcp set global autotuninglevel=disabled
3
3
3
2014-11-26 09:57:12 +0000

Błąd Błąd sieciowy: Oprogramowanie spowodowało przerwanie połączenia abort z PuTTY jest wynikiem, jeśli w sieci występuje konflikt adresu IP (dwa lub więcej komputerów ma ten sam adres IP). (Miałem ten problem z Raspberry Pi , który otrzymał ten sam adres IP przypisany przez serwer DHCP , co niektóre nieuczciwe urządzenia / komputery, które zostały skonfigurowane ręcznie, aby używać tego samego adresu IP)

W tym konkretnym przypadku może to być konflikt adresów IP lokalnie na komputerze z systemem Windows 7 lub z innym urządzeniem w sieci. (http://en.wikipedia.org/wiki/Wireshark) może być użyty do skutecznego namierzenia tego rodzaju błędu.

2
2
2
2012-08-24 09:09:46 +0000

Zakładka “Połączenie”: przytrzymaj ustawione na “5” sekund i włączone

Ale co ważniejsze:

Połączenie -> SSH -> Kex, Max minut przed rekey: “2” (domyślnie 60).

Moja PuTTY po chwili straciła swój klucz, powodując timeout. Spadek tej wartości do “2” minut rozwiązał problem. Pozostaję teraz w kontakcie na czas nieokreślony.

2
2
2
2012-08-20 13:41:23 +0000

Błąd 10053 WSAECONNABORTED (Software caused connection abort.) jest ogólnym błędem Winsock , który może być emitowany z wielu powodów.

W oficjalnym wyjaśnieniu jest napisane:

Ten błąd może wystąpić, gdy system sieci lokalnej przerywa połączenie, np. gdy Winsock zamyka nawiązane połączenie po niepowodzeniu retransmisji danych (odbiornik nigdy nie potwierdza danych wysłanych na gnieździe strumienia danych).

Przyczyny tego problemu mogą być różne - od wadliwych kabli sieciowych do prostej utraty połączenia. Nie jest możliwe zaoferowanie jednego rozwiązania.

2
2
2
2013-02-28 23:27:57 +0000

Ten sam problem z PuTTY miałem po zainstalowaniu nowego routera WLAN / modemu 3G do połączenia z Internetem. Wypróbowałem wszystkie powyższe rozwiązania keep-alive i wszystkie te w menu konfiguracyjnym mojego routera - bezskutecznie.

Wtedy przypomniało mi się coś z lat 90-tych, kiedy miałem stacjonarny modem telefoniczny: MTU (maksymalna jednostka transmisyjna), w zasadzie maksymalny rozmiar przesyłanych fragmentów danych - miało to znaczący wpływ na stabilność połączenia.

Sprawdziłem więc konfigurację mojego routera WLAN, znalazłem ustawienie MTU i zmieniłem je ze stałej wartości 1424 na “Auto” (chciałem spróbować mniejszej wartości, ale “Auto” brzmiało jeszcze lepiej). Po tym nie miałem już żadnych problemów z PuTTY - połączenie jest teraz solidne jak skała. Mam nadzieję, że to pomoże chociaż komuś z problemem “Błąd sieci: oprogramowanie spowodowało przerwanie połączenia”.

1
1
1
2017-05-31 04:54:07 +0000

Naprawdę wiele razy miałem do czynienia z tą sprawą. Godzinami szukałem rozwiązania, ale żadne z nich nie było skuteczne. Udostępniam rozwiązanie, które pracowało dla mnie i mam nadzieję, że będzie ono również pomocne dla innych.

Mam Windows 10 jako host O/S i Redhat-7 jako gość O/S i mój VMware miał połączenie mostkowe. Jako DBA muszę odwiedzać klientów i muszę ustawić konfigurację sieci zgodnie z lokalizacją klienta. Więc za każdym razem, gdy opuszczam lokal klienta i łączę się z inną siecią przez bezprzewodową i otwartą maszynę wirtualną, stanąłem przed tym samym problemem, o którym mowa w pytaniu. Pomyślałem więc przez chwilę i sprawdziłem moją konfigurację dla sieci LAN Ethernet i Wireless Ethernet i znalazłem niedopasowanie. Ponieważ moja maszyna wirtualna automatycznie wykorzystywałaby fizyczną sieć ethernet pomiędzy dwoma maszynami do mostkowania. Więc kiedy zresetowałem konfigurację sieci dla LAN/Wireless Ethernet do DHCP zadziałało to jak urok i nie przerywałem już połączenia. [Możesz również zrestartować maszynę po ustawieniu jej na DHCP.]

1
1
1
2013-03-12 16:11:43 +0000

Wpadłem na ten sam problem albo ze skryptem WinSCP albo konsolą GUI. W końcu stwierdziłem, że jest to związane z szybkością (szybkość Internetu - nasz serwer jest w Internecie). Przeniosłem skrypt do innej lokalizacji w sieci, innej strony, a nie zarówno GUI jak i Script poszły dobrze.

Został on uporządkowany po wielu analizach i sortowaniu.

0
0
0
2011-06-09 22:30:02 +0000

Musisz włączyć TCPKeepAlive na Linuksie.

Jest to wyjaśnione w FAQ PuTTy’s na stronie internetowej, kiedy jesteś szukasz tego błędu.

0
0
0
2013-01-10 17:23:40 +0000

Jeśli maszyna wirtualna jest uruchomiona na lokalnym sprzęcie, należy wyłączyć opcję “keep alive packets”.