1

我正在尝试升级我的网络服务器。我在使用 SSD 的 RackSpace 上创建了最新一代虚拟服务器的全新实例。在这个全新的实例上,我安装了以下内容:

  1. 谷歌浏览器
  2. FileZilla FTP 客户端

然后我连接到另一台服务器上的 FileZilla FTP 服务器,该服务器托管 2 个我用来测试的图像文件。然后我下载了 2 个图像文件,FileZilla 将其报告为“成功传输”。但是,这两个图像文件都被截断了!这可能是什么原因造成的?

传输后文件大小不正确

需要注意的几点:

  • 这仅在使用 SSD 的新实例上发生。如果我创建一个没有 SSD 的相同实例(改用 SATA),则不会发生错误。
  • 在传输文件的服务器上,文件也被报告为已成功传输。该服务器已被用作 FTP 服务器很长一段时间没有任何问题。
  • 如果我将新的 SSD 实例设置为 FTP 服务器并向其上传一堆文件,其中一些文件会随机截断 2-10KB。在大约 150MB 的上传中,我最终可能会丢失 150-200KB。如果我再次传输它们,则会截断不同的文件子集。
  • 如果我将 FTP 服务器上的传输速度限制为 100KB/s,则 2 个图像文件可以成功传输而不会被截断。如果我将传输速度限制为 500KB/s,图像文件将被截断,就像没有限制一样。

关于如何发生这种情况的任何想法?

更新:它与 FileZilla 无关。这是在命令行上使用 ftp 的相同问题:

文件大小不正确

4

2 回答 2

4

解决方案记录在这里:http ://www.rackspace.com/knowledge_center/article/disabling-tcp-offloading-in-windows-server-2012

那篇文章适用于 Windows Server 2012。就我而言,我使用的是 Windows Server 2008。要访问网络适配器属性,请访问

  1. 右击计算机——>属性
  2. 装置经理
  3. 打开网络适配器下拉并右键单击->属性
  4. 转到高级选项卡
  5. 禁用除 UDP Checksum Offload 之外的所有内容。

重要提示:如果仅禁用某些选项,您会注意到性能大幅下降。禁用所有必要选项后,性能将恢复到正常水平。

于 2014-03-03T20:23:30.713 回答
0

它说传输完成的原因是因为关闭套接字是 - 不幸的是 - FTP 如何定义完成的传输。(它打开数据连接并发送数据。关闭连接意味着文件已完全发送。)

出于某种原因,连接似乎过早关闭。

就我个人而言,这听起来确实很奇怪,可能是驱动程序问题或硬件问题,但我会尝试:
1. 尝试被动模式 FTP。命令行客户端默认使用 PORT 模式。PASV 对防火墙更友好。
2. 尝试禁用所有软件防火墙(如 Windows 防火墙)并重试。

于 2014-03-04T08:17:23.103 回答