当我上传大文件时,FTP 会冻结

当我上传大文件时,FTP 会冻结

我已经使用 centos 6 设置了一个备份服务器,一切运行正常。我使用 pure-ftpd 作为 ftp 服务器,我可以从服务器上传和下载文件。

当我尝试将一个大文件从其他服务器发送到此备份服务器时,会出现问题。如果文件小于 800mb 至 1000mb,传输正常,但如果我尝试上传更大的文件,它会在传输过程中挂起。我没有收到任何错误消息,它只是停止了,我注意到当 putty 显示错误超时消息时,或者当我登录备份服务器并看到上传已停止时。

我尝试将同一文件从另一台服务器上传到第三台服务器,一切正常,但当我尝试将其上传到我的备份服务器时,它挂断了。它何时停止没有规律,有时在 0.9GB、1.2GB、1.5GB、1.8GB。文件大小为 2.2GB。

文件已被压缩,并且是 tar.gz。

我更换了 3 条局域网电缆,其中一条由互联网提供商提供,但问题仍然存在。路由器是 Cisco epc3925。

我尝试了几张局域网卡,然后换了台电脑,最后今天使用了全新的电脑并安装了 centos 6,但问题仍然存在。

如果我尝试上传小于 800 MB 的文件,该过程将成功完成。

另外,我在备份服务器上创建了 3GB 的文件,然后尝试通过 ftp localhost 连接上传它,并且成功了。

我已经通过 ftp 从同一网络中的其他计算机连接,并已使用 total commander 成功上传了 4GB 的文件,但我需要从不在该网络中的计算机上传。

我需要补充一点,我曾尝试通过 sftp 和 scp 传输相同的文件,并且成功了,但速度比 ftp 慢 4 倍。

当我在上传时检查网络连接时,我得到了这个结果

来源

tcp 1 75921 173.249.154.250:44672 89.216.114.136:30201 已建立

目的地

tcp 0 0 192.168.0.2:21 173.249.154.250:47484 已建立 1736/pure-ftpd (UPL tcp 0 0 192.168.0.2:30201 173.249.154.250:44672 已建立 1736/pure-ftpd (UPL tcp 0 196 192.168.0.2:22 178.212.88.183:54641 已建立 1696/sshd

这是过时的结果

来源

tcp 1 75921 173.249.154.250:44672 89.216.114.136:30201 正在关闭 -

目的地

Proto Recv-Q Send-Q 本地地址 外部地址 状态 PID/程序名称 tcp 0 0 192.168.0.2:22 178.212.88.183:54641 ESTABLISHED 1696/sshd

请帮忙,我已经阅读了所有我能找到的内容,但我不知道还能做什么。

答案1

不稳定的网线不应导致传输永久停止。如果问题出在网线上,则在恢复连接后传输应会恢复。如果网络连接丢失时间过长,导致 TCP 连接超时(这将需要几分钟),则连接可能会中断。

但是,您描述的症状与有状态中间盒引起的问题一致。有状态中间盒可以是执行任何类型的 NAT 的路由器或有状态防火墙。

因此,在寻找根本原因时,我会尝试识别客户端和服务器之间任何可能存在状态的中间件。除了寻找根本原因之外,寻找解决方法也可能是值得的。

有一些传输协议可以恢复部分传输。这样,即使连接中断,您也应该能够在 2 到 3 次尝试后将文件传输完成。可以做到这一点的文件传输工具之一是 rsync。

相关内容