SSH se a saída do comando for superior a 5 linhas


11

Fui aconselhado a fazer esta pergunta aqui: Estou desconcertado com o seguinte problema que estou enfrentando no momento.
Eu tenho um servidor Linux Debian 5.0 conectado através de um cabo Ethernet ao meu roteador DSL. Meu laptop está executando o Windows 7 e está conectado sem fio (802.11b / g) ao mesmo roteador DSL. Se eu fizer o SSH no servidor usando o Putty e tentar executar um comando que resulte em várias linhas de saída, minha sessão do SSH congela. Ex.

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

Todos os comandos acima funcionam se eu os executar diretamente no servidor ou se eu mudar a conexão do meu laptop para uma conexão com fio. O que da? Este problema está realmente me desconcertando! obrigado


Talvez você queira perguntar isso no StackOverflow, mas parece que pode haver um problema com caracteres especiais (talvez cores), pois o vi não faz nenhuma coloração (a menos que seja realmente o vim).
Topher Fangio

Ele tinha pedi-lo em StackOverflow, mas provavelmente seria melhor movê-lo para ServerFault ... e eu estou com Aidan: meu primeiro suspeito foi o MTU da rede.
dmckee --- gatinho ex-moderador

Ah ha ha, Sim, ServerFault, não StackOverflow ... é uma segunda-feira = P
Topher Fangio

Respostas:


9

parece um problema de MTU com fio. levemente...

é possível que você tenha jumboframes ativados? provavelmente não. de qualquer maneira - tente configurar o mtu mais baixo no debian e veja se isso ajuda.


Destacado; isso soa como um problema no MTU. Eu sugiro tentar pacotes cada vez maiores (facilmente executados usando ping) até obter erros / pacotes descartados. Ou apenas verificar configurações MTU em todos os lugares :)
MikeyB

Obrigado pessoal! MTU mais baixo no laptop fez o truque. O MTU se aplica ao remetente / receptor / ambos? Eu poderia executar ping no servidor do laptop com um tamanho de dados maior. O contrário não era verdade. Servidor Linux: ~ # ping -S 5000 Athlon64-laptop.lan PING Athlon64-laptop.lan 56 (84) bytes de dados 64 bytes de xxxx: icmp_seq = 1 ttl = 128 time = 2,71 ms No laptop Windows> ping -l 2048 Athlonon64x2-server.lan Fazendo ping no Athlon64x2-server.lan com 2048 bytes de dados: A solicitação expirou. > ping -l 1048 Athlon64x2-server.lan Pinging Athlon64x2-server.lan com 1048 bytes de dados: Resposta de xxxx: bytes = 1048 time = 3ms TTL = 64

@leftbrainlogic - os problemas com o mtu indicam que há algo suspeito na sua rede. talvez o ponto de acesso não passe os maiores quadros permitidos [1500B] para ethernet rápido? você configurou manualmente o servidor para usar jumboframes?
pQd

@pQd - Não, o servidor está apenas executando uma instalação básica do Debian 5.0. Eu aceito todos os padrões, exceto para particionamento de disco e de saída hostname do ifconfig -a está aqui: pastebin.com/f78fcbf3d

@leftbrainlogic - ok; tente diminuir o mtu conforme descrito no meu link. seu 1500B é helahtly comprimento padrão, acho que isso indica algum problema com o switch, ponto de acesso ou placa de rede wifi.
pQd

3

Provavelmente, há um problema com o MTU da sua conexão de rede - quando o servidor Linux tenta enviar muitos bytes de dados em um único pacote de rede, provavelmente o roteador está se recusando a encaminhá-lo para a caixa do Windows, porque acha que o tamanho do pacote é muito grande para enviar pela rede sem fio. Você deve conseguir reduzir o MTU da interface Ethernet na caixa Linux, e isso provavelmente resolveria o seu problema.

Para diagnosticar, tente ping -s <packetsize> <windows-ip> da caixa do linux para o IP da sua máquina windows e ping <linux-ip> <packetsize>da caixa do windows para o linux, com valores diferentes para o parâmetro packetsize, e veja se o tamanho máximo é diferente em qualquer direção.

Além disso: man pingno linux será útil para entender o que está acontecendo.


0

A primeira coisa a fazer é ativar o modo de depuração, no cliente e no servidor.

O PuTTY possui depuração interna disponível em Sessão -> Log . Observe que você precisa carregar a sessão que irá usar antes de definir as configurações de Log. As configurações de log fazem parte da configuração de uma sessão.

No servidor, você pode deixar o LogLevel em INFO (in /etc/ssh/sshd_config) e alterá-lo para DEBUG apenas se não conseguir ver nada relacionado ao seu problema. Lembre-se de sair e reiniciar o servidor ssh para aplicar as alterações ( /etc/init.d/ssh restart). Se DEBUG não fornecer informações úteis, tente DEBUG3, conforme descrito man sshd_config.

Atualize sua pergunta com suas descobertas!

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.