最近有个同时的ftp总是上传文件失败,更换过各种ftp客户端和账号都没有问题,之后又怀疑是win10的问题,但是另外一个同事也是win10,同样的软件,同样的账号都没问题。后来也关过系统防火墙,windows denfender之类的,均告失败。正当准备放弃的时候,突然看到一篇文章(原文连接: https://trac.filezilla-project.org/ticket/5533#no1 )是和同事的情况类似,因为他也是很小的文件可以上传,但是大于几kb之后就不能上传了,而导致这个问题的原因是和 MTU 有关。
具体来说,FTP使用两个TCP连接来通信,一条控制连接(control connection)用来提交命令和接受回复;一条数据连接(data connection)来处理实际的文件传输。在文件传输过程中,控制连接是很容易进入空闲状态的,TCP标准也没有规定一个连接的最大空闲时间。但是路由器和防火墙经常会把空闲的连接给关闭掉,并且不通知双方,就造成了传输100%但最后还是超时的现象。后面的评论就是解决问题的关键了:TCP传输过程中有最大的包上限MTU(Maximum Transmission Unit,不超过1500),超过这个大小的传输就要拆成多个包(packet)。所以比较“小”的文件不用拆包,一次就传输完了;“大”的文件需要拆包,分多次发送,就出现超时的问题。
好了既然找出始作俑者了,那么如何修改呢?
通过上面的设置修改,发现果然ftp上传没问题了。
抱着好奇的态度,我又去看了下另外一个同事的电脑发现,他的 MTU也是默认的1500,为什么他可以???
后来又查询资料发现,原来MTU和ISP有关系,后来我又对比了下他们电脑上的dns,发现果真不一样。好吧,又学习到了不少知识。
跟FTP服务器端的设置有关。正常现象,你不能保证服务器随时都是可以的。自己做好异常处理即可。
FTP是FileTransferProtocol(文件传输协议)的英文简称,而中文简称为文传协议。用于Internet上的控制文件的双向传输。同时,它也是一个应用程序(Application)。
出现此问题的原因:传输模式错误。
解决的方法和 *** 作步骤如下:
准备工具:FlashFXP5。
1、首先,在桌面上找到“
FlashFXP5”,然后双击以打开FTP软件,如下图所示,然后进入下一步。
2、其次,完成上述步骤后,由于未激活软件,请单击“我接受”按钮以试用该软件,如下图所示,然后进入下一步。
3、然后,完成上述步骤后,依次单击“站点”-->“站点管理器(W)”选项,如下图所示,然后进入下一步。
4、随后,完成上述步骤后,选择“
FTP”作为连接类型,然后输入“站点名称”,“地址”,“端口”,“用户名”,“密码”,然后单击“连接”,如下图所示,然后进入下一步。
5、最后,完成上述步骤后,与服务器的连接成功,服务器中的文件如图所示。这样,问题就解决了。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)