有人建议我问这问题在这里:我对目前遇到的以下问题感到困惑。
我有一台 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
解决了该问题