Poradzono mi, aby zadać to pytanie tutaj: Jestem zaskoczony następującym problemem, który obecnie występuje.
Mam serwer Linux Debian 5.0 podłączony za pomocą kabla Ethernet do mojego routera DSL. Mój laptop ma system Windows 7 i jest podłączony bezprzewodowo (802.11b / g) do tego samego routera DSL. Jeśli włączę SSH do serwera za pomocą Putty i spróbuję wykonać polecenie, które spowoduje powstanie wielu wierszy danych wyjściowych, moja sesja SSH zawiesi się. Dawny.
ls -al / // Freezes
ls -al / > ~/boo.txt // OK
vi ~/boo.txt // OK
top // Freezes
Wszystkie powyższe polecenia działają, jeśli wykonam je bezpośrednio na serwerze lub zmienię połączenie laptopa na połączenie przewodowe. Co daje? Ten problem naprawdę mnie zaskakuje! Dzięki
linux
networking
ssh
debian
Społeczność
źródło
źródło
Odpowiedzi:
brzmi jak problem z przewodowym MTU. nieco...
czy to możliwe, że masz włączone jumboframe? prawdopodobnie nie. tak czy inaczej - spróbuj ustawić niższe mtu w debianie i sprawdź, czy to pomaga.
źródło
Prawdopodobnie występuje problem z MTU połączenia sieciowego - gdy serwer Linux próbuje wysłać zbyt wiele bajtów danych w jednym pakiecie sieciowym, prawdopodobnie router odmawia przekazania go do okna systemu Windows, ponieważ uważa, że rozmiar pakietu to za duży, aby wysłać przez sieć bezprzewodową. Powinieneś być w stanie zmniejszyć MTU dla interfejsu Ethernet na Linux-ie, a to prawdopodobnie rozwiązałoby twój problem.
Aby zdiagnozować, spróbuj
ping -s <packetsize> <windows-ip>
od pola linux do adresu IP twojego komputeraping <linux-ip> <packetsize>
z systemem Windows i od okna systemu Windows do Linux, z różnymi wartościami parametru parametru packetsize, i sprawdź, czy maksymalny rozmiar jest różny w obu kierunkach.Ponadto:
man ping
w systemie Linux będzie pomocny w zrozumieniu, co się dzieje.źródło
Pierwszą rzeczą do zrobienia jest włączenie trybu debugowania, zarówno na kliencie, jak i na serwerze.
PuTTY ma wbudowane debugowanie, które jest dostępne w Sesja -> Logowanie . Pamiętaj, że musisz załadować sesję, której zamierzasz użyć, przed skonfigurowaniem ustawień rejestrowania. Ustawienia rejestrowania są częścią konfiguracji sesji.
Na serwerze możesz pozostawić LogLevel na INFO (in
/etc/ssh/sshd_config
) i zmienić go na DEBUG, tylko jeśli nie widzisz nic związanego z twoim problemem. Pamiętaj, aby się wylogować i zrestartować serwer ssh, aby zastosować zmiany (/etc/init.d/ssh restart
). Jeśli DEBUG nie daje żadnych użytecznych informacji, spróbuj DEBUG3, zgodnie zman sshd_config
.Zaktualizuj swoje pytanie o swoje ustalenia!
źródło