我运行的是 Windows 7 Professional 64 位。两个不同的 SSH 客户端表现出一种奇怪的习惯,即定期冻结或挂起。我尝试过 putty 和 Van Dyke 的 SecureCRT SSH 客户端,在这两种情况下,我都会遇到周期性冻结,持续时间从 20 秒到几分钟不等。挂起期间没有按键可以通过(Ctrl-C、Ctrl-Z 或我尝试过的任何操作都无法通过)。
连接到多台服务器时会发生这种情况。我组中使用非 Windows 计算机的其他人似乎没有遇到此问题。因此,这可能不是服务器端的问题。
我也使用 RDP 连接到 Windows 服务器,没有出现类似的冻结,因此我认为这不是我的机器的网络问题。
由于这种情况发生在两个不同的客户端上,所以这似乎是 Windows 的问题。
有什么建议么?
更新。再仔细观察一下,这种情况似乎只发生在我在远程服务器上使用 emacs 时。由于冻结行为只在我从 Windows XP 迁移到 Windows 7 时才开始,所以我将其归咎于 Windows,但也许是由于 emacs 和 Windows 7 之间更微妙的交互。
进一步更新。我的桌面支持人员更换了网络电缆,问题似乎已经消失。我无法解释为什么除了通过 ssh 使用 Emacs 时,我没有注意到我的计算机出现任何网络问题。也许以这种方式使用 Emacs 对网络不稳定特别敏感。
答案1
我在 Windows 下使用 Putty,没有遇到此问题。Windows 中不存在任何会导致此问题的内在因素。可能是 Symantec 防病毒防火墙之类的软件或其他软件中断了连接。
答案2
所描述的问题也非常烦人。我尝试了禁用 Large Send Offload 和 Jumbo Packet 的方法,如上文所述(以及网络适配器属性 > 高级选项卡中的其他选项)。不幸的是,积极的结果只是“短暂的”:在适配器重新启动后(这是激活所选适配器选项所必需的),一切都很好,但过了一段时间(几分钟)ssh 会话变得滞后/冻结。
观察到的行为(适配器重启后 SSH 立即“流畅”,一段时间后出现延迟)建议查看省电选项。最后,通过在设备管理器 > 网络适配器 > 适配器属性 > 电源管理中禁用“允许计算机关闭此设备以节省电源”选项解决了问题。启用/禁用此选项后成功重现了问题/解决方案(几分钟后无需重启适配器即可看到结果)。
该方法在以下软件设置上进行了测试:Windows 7 Professional 64 位上的 SSH 安全外壳和 Windows 7 Ultimate 64 位上的 Putty,均连接到不同的 Linux 服务器。
答案3
一般来说,Windows 7/2008 通过 VPN 或某些 WAN 进行通信,我建议将网络适配器属性 > 高级选项卡 > 大型发送卸载和巨型数据包设置为禁用。
答案4
我在 Putty + Windows 7 上使用 vi 时遇到了问题。每当我尝试使用 vi 打开远程服务器上的文件时,Putty 就会冻结。然后我不得不关闭 Putty 并启动一个新的。
我的解决方法是禁用 Putty 上的 X11 转发。希望这能有所帮助。