我有两台机器在同一个以太网段上:
- 运行 Windows Server 2012R2 的虚拟机 [sftp 客户端]
- 运行 Ubuntu 16.04.7 LTS 的物理服务器 [运行 openssh-server 1:7.2p2-4ubuntu2.10 的 sftp 服务器]
当我从 Windows VM 建立到 ubuntu 服务器的 SFTP 连接时,当我尝试列出包含大量文件的目录中的文件时,连接会挂起。包含少量文件的文件夹可以正常工作。
如果我使用不同的 Ubuntu 16.04.7 机器作为客户端尝试同样的事情,它可以正常工作。
还尝试使用最大尺寸 ping ping -l 1472 -f
,并且工作正常。
我尝试过但没有改变结果的方法:
- Windows 上的多个 SFTP 客户端:PuTTY 0.74、WinSCP 5.17.9 和 FileZilla 3.52.0.5
- 降低 Windows VM 上的 MTU [默认 1500]
- 降低 ubuntu 服务器上的 MTU [默认 1500]
- 将 vmxnet3 以太网驱动程序从 1.8.16.0 更新至 1.8.17.0
- 使用不同的 Windows Server 2012R2 VM 作为客户端
- 使用 Windows Server 2016 VM 作为客户端
- 使用 Windows Server 2016 物理机作为客户端
我现在很困惑。有什么想法或建议可以进一步解决问题吗?
答案1
好吧,我当时正在为 PuTTY 的工作人员写一份错误报告,并/etc/ssh/sshd_config
在 Ubuntu 16.04 服务器上查看。它有这样一行:
Subsystem sftp internal-sftp
我将其改为:
Subsystem sftp /usr/lib/openssh/sftp-server
重新启动 sshd,现在一切正常!