什么是主动FTP和被动FTP

时间:2019-05-19 01:25:23  来源:igfitidea点击:

FTP (File Transfer Protocol)是基于TCP的服务。
FTP广泛用于在网络上传输文件。
有各种FTP服务器可以使用,如vsftpd, proftpd, pureftpd等。

FTP使用两个不同的端口

  1. 端口20用于数据端口,但数据端口并不总是在20端口上。
    它可以在被动模式下改变。

  2. 端口21用作命令端口。
    根据服务器和客户端配置,FTP在两种不同的模式下工作,Active FTP和Passive FTP。
    在本文中,我试图对主动FTP与被动FTP的定义进行一个明确的解释,希望这将有助于我们理解其工作原理。

主动FTP

在活动模式下,客户端从任意非特权端口(例如' X '(大于1023))连接到FTP服务器端口21。
客户端再次发送' X+1 '端口到FTP服务器,该端口在命令通道上被确认。
之后,FTP服务器在端口20上打开数据通道到客户端端口X+1。

  1. FTP客户端打开从客户端端口1050(例如,只有1050)到服务器端口21的命令通道。
  2. FTP客户端发送端口1051(1050 + 1)到FTP服务器,服务器在命令通道上确认。
  3. FTP服务器打开从服务器端口20到客户端端口1051的数据通道。
  4. FTP客户端确认数据通道。

被动FTP

在被动模式下,客户端从任何随机的非特权端口(例如' X '(大于1023))连接到FTP服务器端口21。
之后,客户端发送一个PASV信号到FTP服务器命令通道通知服务器使用被动模式。
FTP服务器发送回一个非特权端口(例如' Y '(大于1023))。
现在FTP客户端在“X+1”上打开数据通道到FTP服务器端口“Y”。
通过FTP服务器确认。

  1. FTP客户端打开从客户端端口1050(例如,只有1050)到服务器端口21的命令通道。
  2. FTP客户端发送PASV命令到服务器上的命令通道。
  3. 在开始监听端口之后,FTP服务器发送回(在命令通道上)端口1250(例如,仅发送回1250)。
  4. FTP客户端打开从客户端1051到服务器端口1250的数据通道。
  5. FTP服务器确认数据通道。