捷克200套UR51出货新版本FTP问题(FTP主动模式无法正常传输数据问题)

FTP alg功能

普通NAT实现了对UDP或TCP报文头中的的IP地址及端口转换功能,但对应用层数据载荷中的字段无能为力,在许多应用层协议中,比如多媒体协议(H.323、SIP等)、FTP、SQLNET等,TCP/UDP载荷中带有地址或者端口信息,这些内容不能被NAT进行有效的转换,就可能导致问题。而NAT ALG(Application Level Gateway,应用层网关)技术能对多通道协议进行应用层报文信息的解析和地址转换,将载荷中需要进行地址转换的IP地址和端口或者需特殊处理的字段进行相应的转换和处理,从而保证应用层通信的正确性。

FTP应用就由数据连接和控制连接共同完成,而且数据连接的建立动态地由控制连接中的载荷字段信息决定,这就需要ALG来完成载荷字段信息的转换,以保证后续数据连接的正确建立

FTP数据连接的协商分为两种模式,一种是主动模式,另一种是被动模式。

主动模式的特点是,在客户端和服务器端要进行文件传递时,首先是客户端使用一个报文告诉服务器端,它将用某个IP地址的某个端口作为数据连接(这个信息就是报文的载荷),也就是通常说的PORT命令。服务器端收到这个报文后,回应一个同意的ACK报文,然后服务器端会主动用自己的IP地址加上端口20来发送一个SYN报文到客户端通过PORT命令告诉它的那个IP地址和端口,和客户端建立起一个数据连接。

主动FTP:
     命令连接:客户端 >1023端口 -> 服务器 21端口
     数据连接:客户端 >1023端口 <- 服务器 20端口

被动模式的特点是,在客户端和服务器端要进行文件传递时,首先是服务器端通过一个报文告诉客户端,它将用那一个IP地址的那一个端口作为数据连接(该报文以命令字227开始),也就是PASV命令。客户端收到这个报文之后,回应一个同意的ACK报文。然后客户端会用自己的IP地址,然后任选一个能够使用的端口(注意:通常情况下都不是20)和服务器端告诉它的那个IP地址和端口相连接,建立数据连接。

被动FTP:
     命令连接:客户端 >1023端口 -> 服务器 21端口
     数据连接:客户端 >1023端口 -> 服务器 >1023端口

主动模式需要alg支持才能正常工作,被动模式不需要alg支持

一、测试环境:

我的电脑 WINSCP软件模拟FTP客户端 进行测试

路由器设备给终端提供网络接入,终端作为FTP客户与客户的FTP服务端连接(FTP需要禁用Passive模式,即使用主动模式进行上传文件)

FTP server is speedtest.tele2.net (90.130.70.73), login anonymous.FTP客户端使用WISCP模拟。

抓取lan口的包查看

1> active 模式:

1. 在active模式下,如下图抓的包中,在命令连接部分(ftp类型的包),client端使用的端口是 65181,这个端口是大于1024的任意端口,ftp server端用的端口是21

2.如下图,在active模式下,要传输数据时,ftp client告诉server数据传输联系端口 65182 (大于1024的任意端口),并进行listen,

正常的流程是server端用端口20主动和client端65182建立数据传输通道,并传输数据。这里是server知道 了client端的数据通道监听端口后,主动建立了数据传输通道,所以是主动模式。

然而这边的打印是传输通道建立失败

建立失败的可能原因一:响应发送的端口与原来请求的端口不一致,导致不能正常建立连接

 建立失败的可能原因二:

当前的ftp client比较强大,当主动模式不通时会自动切换成被动模式,所以加不加alg都能正常工作,用户感觉不出来。

标识1 :表示当前的主动模式告诉ftp服务器使用 65182 的端口来访问ftp client.
标识2: 表示主动模式请求失败,client 主动切换成了被动模式
标识3: 表示数据传输使用的是被动模式,端口与之前请求的端口已经不一致了

修改后可以正常访问23.40与上面的1.100都是表示为 FTP 客户端

标识1 :表示当前的主动模式告诉服务器使用52049的端口来访问ftp client. 
标识2: 表示主动模式请求成功。 
标识3: 表示服务端成功使用端口52049来进行数据传输

参考文档:

https://blog.csdn.net/huyb100/article/details/82625749

原文地址:https://www.cnblogs.com/chenxiaomeng/p/11739237.html

时间: 2024-08-02 22:32:49

捷克200套UR51出货新版本FTP问题(FTP主动模式无法正常传输数据问题)的相关文章

ftp 服务器的主动模式和被动模式

       主动模式:由服务器主动连接客户机建立数据链路. FTP 客户机由大于 1024 的的 N 端口向 FTP 服务器的 21 号端口发出一个连接请求,请求建立命令链路,然后 FTP 服务器由 21 号端口向客户机的 N 端口回应,确认建立命令链路:建立命令链路后,FTP 服务器的 20 号端口会向客户端的 N+1 号端口发送一个连接请求主动建立数据链路连接,FTP 客户端由 N+1 号端口向 FTP 服务器的 20 号端口回应后确认建立一个数据链路,进行数据传输.    被动模式:FT

FTP服务的主动模式和被动模式

FTP在传输文件时有两种传输模式:被动模式和主动模式. 1.主动模式 FTP控制指令通过 21/TCP 端口传向服务器,文件下载通过大于 1024/TCP 的随机端口进行传输.下载文件时,FTP服务器(源端口为20/TCP)主动连接FTP客户端的随机端口进行下载. 2.被动模式 FTP控制指令通过 21/TCP 端口传向服务器,文件下载通过大于 1024/TCP 的随机端口进行传输.下载文件时,FTP客户端主动连接FTP服务器的随机端口进行下载,只有下载文件时FTP服务器才临时监听一个随机端口,

(转)FTP的PORT(主动模式)和PASV(被动模式)

http://my.oschina.net/binny/blog/17469(转) 以前才用Linux的时候,用Ftp的时候就遇到链接成功,就是查看不到服务器上的数据,之前大致查了下明白了,现在看到一篇比较清楚的文章转载记录下,加深印象:其实简单来讲就是:主动模式的FTP是指服务器主动连接客户端的分配的随机数据端口(1024+),被动模式的FTP是指服务器被动地等待客户端连接自己的随机数据端口(1024+): 1.FTP的PORT(主动模式)和PASV(被动模式) (1) PORT(主动模式)也

FTP 传输中的主动模式和被动模式

最近做一个项目用到FTP和其它系统进行文件传输,结果在FTP网络连接的问题上花了很多时间,由于太久没搞多FTP,忘记了FTP不单单开放21端口,客户端采用不同连接模式对网络有不同.在此重温一下FTP的主动模式和被动模式的相关知识. 在使用FTP时,如果客户端机器和FTP服务器双方之间的所有端口都是开放的,那连接不存在问题.如果客户端与服务器之间有防火墙,如果没配置好防火策略和采用合适的连接模式,会导致登录成功,但无法List列表的问题.要避免出现这样的问题,首先要了解FTP的工作模式.  1.F

FTP的主动模式和被动模式

摘自http://blog.csdn.net/love_gaohz/article/details/50723164 http://my.oschina.net/binny/blog/17469 FTP的主动模式和被动模式 主动模式:客户端通过控制链接发送PORT <address>(IP 地址和两字节的端口 ID)给服务器,然后bind之后对发送的端口进行监听.服务器收到后通过端口20和客户端建链,发送数据. 被动模式:客户端通过发送PASV 请求服务器等待链接.服务器返回.这意味着在服务器

FTP的主动模式与被动模式

1.FTP的主动模式与被动模式 FTP服务器使用20和21两个网络端口与FTP客户端进行通信. FTP服务器的21端口用于传输FTP的控制命令,20端口用于传输文件数据. 1.1FTP主动模式: FTP客户端向服务器的FTP控制端口(默认是21)发送连接请求,服务器接受连接,建立一条命令链路;当需要传送数据时,客户端在命令链路上用PORT的命令告诉服务器我开放了某端口,你过来连接我.于是服务器从20端口向客户端的该端口发送连接请求,建立一条数据链路来传送数据.在数据链路建立过程中是服务器主动请求

FTP的主动模式和被动模式的相关知识

FTP的主动模式和被动模式的相关知识. 在使用FTP时,如果客户端机器和FTP服务器双方之间的所有端口都是开放的,那连接不存在问题.如果客户端与服务器之间有防火墙,如果没配置好防火策略和采用合适的连接模式,会导致登录成功,但无法List列表的问题.要避免出现这样的问题,首先要了解FTP的工作模式. 1.FTP的PORT(主动模式)和PASV(被动模式) (1) PORT(主动模式) PORT中文称为主动模式,工作的原理: FTP客户端连接到FTP服务器的21端口, 发送用户名和密码登录,登录成功

FTP 两种连接模式

简介 FTP协议要用到两个TCP连接, 一个是命令连接,用来在FTP客户端与服务器之间传递命令:另一个是数据连接,用来上传或下载数据.通常21端口是命令端口,20端口是数据端口.当混入主动/被动模式的概念时,数据端口就有可能不是20了.  无论是主动模式还是被动模式,其要进行文件传输都必须依次建立两个连接,分别为命令连接与数据连接.而主动模式与被动模式的差异主要体现在数据连结通道上. 命令连接 当FTP客户端需要登陆到FTP服务器上的时候,服务器与客户端需要进行一系列的身份验证过程,这个过程就叫

【转】ftp的两种模式

原文链接 http://net.chinaunix.net/5/2007/04/13/1144062.shtml ftp是基于tcp的服务,ftp使用2个端口,一个数据端口和一个命令端口(也叫做控制端口).通常命令端口是21,数据端口是20. 主动ftp 主动模式的ftp是这样的:客户端从一个任意的非特权端口n(n>1024)连接到ftp服务器的命令端口(21),然后客户端开始监听端口n+1,并发送ftp命令“port n+1”到ftp服务器.服务器从它自己的数据端口20连接到客户端指定的数据端