如果命令输出超过 5 行,则使用 SSH

如果命令输出超过 5 行,则使用 SSH

有人建议我问问题在这里:我对目前遇到的以下问题感到困惑。
我有一台 Debian 5.0 Linux 服务器,通过以太网电缆连接到我的 DSL 路由器。我的笔记本电脑运行的是 Windows 7,并通过无线方式(802.11b/g)连接到同一个 DSL 路由器。如果我使用 Putty 通过 SSH 进入服务器并尝试执行导致多行输出的命令,我的 SSH 会话就会冻结。例如。

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

如果我直接在服务器上执行上述命令,或者将笔记本电脑的连接更改为有线连接,则所有上述命令均有效。这是怎么回事?这个问题真的让我很困惑!谢谢

答案1

听起来像是有线 MTU 问题。稍微……

您是否启用了巨型帧?可能没有。无论如何 - 尝试一下设置较低的 mtu在 debian 上查看是否有帮助。

答案2

您的网络连接的 MTU 可能存在问题 - 当 Linux 服务器尝试在单个网络数据包中发送过多字节的数据时,路由器可能拒绝将其转发到 Windows 计算机,因为它认为数据包大小太大,无法通过无线网络发送。您应该能够减少 Linux 计算机以太网接口的 MTU,这可能会解决您的问题。

为了进行诊断,请尝试ping -s <packetsize> <windows-ip> 从 Linux 机器到 Windows 机器的 IP,再ping <linux-ip> <packetsize>从 Windows 机器到 Linux,对 packetsize 参数使用不同的值,并查看任一方向上的最大尺寸是否不同。

另外:man ping在 Linux 上将有助于理解正在发生的事情。

答案3

首先要做的是在客户端和服务器上启用调试模式。

PuTTY 具有内置调试功能,可在会话 -> 日志记录。请注意,您需要在设置日志设置之前加载要使用的会话。日志设置是会话配置的一部分。

在服务器上,您可以将 LogLevel 保留为 INFO(在 中/etc/ssh/sshd_config),并且仅当您看不到与问题相关的任何内容时才将其更改为 DEBUG。请记住注销并重新启动 ssh 服务器以应用更改(/etc/init.d/ssh restart)。如果 DEBUG 没有提供有用的信息,请按照 尝试 DEBUG3 man sshd_config

请根据您的发现更新您的问题!

答案4

我在我的路由器上使用了 vpn(vpnc / Cisco 兼容)。crypto ipsec df-bit clear解决了该问题

相关内容