Fork me on GitHub

FTP 被动模式下获取目录数据异常

 

                                                 今天测试反馈了一个问题:FTP 被动模式下获取目录数据异常!

 

正常的测试步骤:

1.客户端与服务器建立端口为21的命令链路
2.客户端登录上服务器
3.进入被动模式,获取服务器断的目录信息
4.服务器监听临时端口,且把临时端口发给 FTP 客户端
5.客户端主动发起链路建立请求到服务端指定监听的临时端口,并建立数据链路
6.进行相应的数据传输(获取目录,上传文件等)
7.数据传输结束,数据链路断开
8.命令链路断开

 

但是实际上由于FTP 客户端发起TCP链路建立请求到 FTP 服务器失败,从而导致了数据链路建立失败,影响到了后面的数据交互(获取目录信息、上传文件)。

 

服务器端的wireshark捉包:

 

 

 分析:

          这个时候服务端与客户端已经建立好了命令链路,在进行数据交互(获取目录信息)的时候,发生了异常。

          客户端向服务器发送了SYN请求,服务器向客户端回复了ACK,但是之后客户端一直没有响应,因此服务器不断地向客户端重传

 

客户端的wireshark捉包:

 

 

分析:

          客户端向服务器发送了SYN请求,但是服务器一直没有响应,因此客户端不断地向服务器重传

          简单的来说就是:服务器向客户端回复的ACK包,客户端并没有收到

 

猜测原因:

          1.客户端或者服务器端的防火墙偷悄悄的将 TCP SYN 处理掉了

          2.运营商核心网的调度处理有关

          3.未知原因

 

进一步测试:

         1.使用不同的运营商:联通、电信、移动

         2.不使用被动模式,而是使用主动模式

测试一:

         联通: 正常
         电信: 异常
         移动: 正常

测试二:

         主动模式:正常

         被动模式:异常

 

分析:   

         出现问题的范围就是 当客户端的运营商是电信 且使用被动模式时,与服务器的数据交互就可能发生异常

 

解决方法:

         使用主动方式

 

                                                                                                                                                                                                                                                                              本文章只作为简单的记录

 

posted @ 2022-11-30 16:49  雨色秋寒  阅读(267)  评论(1)    收藏  举报
Live2D