SSH si la salida del comando es más de aproximadamente 5 líneas

11

Me aconsejaron hacer esta pregunta aquí: estoy desconcertado por el siguiente problema que estoy experimentando actualmente.
Tengo un servidor Linux Debian 5.0 conectado a través de un cable ethernet a mi enrutador DSL. Mi computadora portátil ejecuta Windows 7 y está conectada de forma inalámbrica (802.11b / g) al mismo enrutador DSL. Si ingreso SSH en el servidor usando Putty e intento ejecutar un comando que produce múltiples líneas de salida, mi sesión SSH se congela. Ex.

ls -al /             // Freezes
ls -al / > ~/boo.txt // OK
vi ~/boo.txt         // OK
top                  // Freezes

Todos los comandos anteriores funcionan si los ejecuto directamente en el servidor o si cambio la conexión de mi computadora portátil a una conexión por cable. ¿Lo que da? ¡Este problema realmente me está desconcertando! Gracias

Comunidad
fuente
Es posible que desee preguntar esto en StackOverflow, pero parece que podría ser un problema con caracteres especiales (color quizás) ya que vi no tiene ningún color (a menos que sea realmente vim).
Topher Fangio
Él no pide que en StackOverflow, pero probablemente sería mejor moverlo a ServerFault ... y estoy con Aidan: mi primer sospechoso era la MTU de la red.
dmckee --- ex-gatito moderador
Ah, ja, sí, ServerFault, no StackOverflow ... es un lunes = P
Topher Fangio

Respuestas:

9

Suena como un problema de MTU con cable. ligeramente...

¿es posible que tengas jumboframes habilitados? Probablemente no. de todos modos, intente configurar mtu más bajo en el debian y vea si ayuda.

pQd
fuente
Secundada; Esto suena como un problema de MTU. Sugeriría probar paquetes cada vez más grandes (fácilmente usando ping) hasta que obtenga errores / paquetes descartados. O simplemente verifique la configuración de MTU en todas partes :)
MikeyB
¡Gracias gente! Bajar MTU en la computadora portátil ha hecho el truco. ¿MTU se aplica al remitente / receptor / ambos? Podría hacer ping al servidor desde una computadora portátil con un tamaño de datos más grande. Lo contrario no era cierto. Servidor Linux: ~ # ping -S 5000 athlon64-laptop.lan PING athlon64-laptop.lan 56 (84) bytes de datos 64 bytes de xxxx: icmp_seq = 1 ttl = 128 tiempo = 2.71 ms En una computadora portátil con Windows> ping -l 2048 athlon64x2-server.lan Hacer ping a athlon64x2-server.lan con 2048 bytes de datos: se agotó el tiempo de espera de la solicitud. > ping -l 1048 athlon64x2-server.lan Pinging athlon64x2-server.lan con 1048 bytes de datos: Respuesta de xxxx: bytes = 1048 time = 3ms TTL = 64
@leftbrainlogic: los problemas con mtu indican que hay algo sospechoso en su red. ¿Tal vez el punto de acceso no pasa los marcos permitidos más grandes [1500B] para una conexión rápida a Ethernet? ¿configuró manualmente el servidor para usar jumboframes?
pQd
@pQd - No, el servidor solo está ejecutando una instalación estándar de Debian 5.0. Acepté todos los valores predeterminados, excepto la partición del disco y el nombre de host. La salida de ifconfig -a está aquí: pastebin.com/f78fcbf3d
@leftbrainlogic - ok; intente bajar mtu como se describe en mi enlace. su 1500B tiene una longitud estándar helahtly, creo que esto indica algún problema con el interruptor, el punto de acceso o la tarjeta de red wifi.
pQd
3

Probablemente haya un problema con la MTU de su conexión de red: cuando el servidor Linux intenta enviar demasiados bytes de datos en un solo paquete de red, probablemente el enrutador se niega a reenviarlo al cuadro de Windows, porque cree que el tamaño del paquete es demasiado grande para enviar a través de la red inalámbrica. Debería poder reducir la MTU para la interfaz Ethernet en la caja de Linux, y esto probablemente resolvería su problema.

Para diagnosticar, intente ping -s <packetsize> <windows-ip> desde el cuadro de Linux a la IP de su máquina Windows, y ping <linux-ip> <packetsize>desde el cuadro de Windows a Linux, con diferentes valores para el parámetro de tamaño de paquete, y vea si el tamaño máximo es diferente en cualquier dirección.

Además: man pingen Linux será útil para comprender lo que está sucediendo.

Aidan Cully
fuente
0

Lo primero que debe hacer es habilitar el modo de depuración, tanto en el cliente como en el servidor.

PuTTY tiene depuración integrada que está disponible en Sesión -> Registro . Tenga en cuenta que debe cargar la sesión que va a utilizar antes de establecer la configuración de registro. La configuración de registro es parte de la configuración de una sesión.

En el servidor, puede dejar LogLevel en INFO (in /etc/ssh/sshd_config) y cambiarlo a DEBUG solo si no puede ver nada relacionado con su problema. Recuerde cerrar sesión y reiniciar el servidor ssh para aplicar los cambios ( /etc/init.d/ssh restart). Si DEBUG no proporciona información útil, intente DEBUG3, según man sshd_config.

¡Actualice su pregunta con sus hallazgos!

Nicolas Marchildon
fuente