文章目录


  • Active Mode
  • Passive Mode
  • 总结一下


Active Mode

在主动模式下,​​client​​​告诉​​server​​​访问自己的43178(大于1024的任意端口)端口,并开始侦听自己的43178端口,然后​​server​​​会用自己的​​20​​​端口主动和​​client​​​的​​43178​​端口建立数据传输通道,开始传输数据

这个过程中,​​server​​​知道了​​client​​的数据通道监听接口,主动建立了数据传输通道,所以是​主动模式

在主动模式中,默认情况下,​​server​​​使用​​20​​端口进行数据传输

Passive Mode

在需要进行数据传输时,​​client​​​发起​​PASV​​​的数据传输通道建立请求,通过抓包我们可以看到客户端再​​ftp​​报文中发送的数据:

FTP传输中的主动模式与被动模式_客户端

收到报文之后,​​server​​​会使用先前设定(没有设定则为大于​​1024​​的随机端口)的端口建立数据传输连接

在​​Passive-Mode​​​的数据传输部分,​​server​​​使用的端口是​​3542​​​,这个端口是可以自行设定的,在Windows中,指定​​Passive-Mode​​端口范围的界面是这样的:

​client​​​使用的端口是​​53001​​​(大于​​1024​​的任意端口)

FTP传输中的主动模式与被动模式_数据通道_02

总结一下

所谓被动与主动,是相对于​​server​​来说的


  • 主动模式中,​​server​​​主动向​​client​​发起​数据通道​的连接(​​client​​​向​​server​​通告了自己的数据传输端口)
  • 被动模式中,​​server​​​被动打开端口,由​​client​​向其打开的端口发起连接