网络工程 · 1 3 月, 2021 0

FTP的主动模式和被动模式

FTP的主动模式和被动模式

https://baijiahao.baidu.com/s?id=1604307221471041402&wfr=spider&for=pc
https://www.cnblogs.com/cxq20190307/p/10945839.html

FTP是干啥的就不介绍了。这里只说FTP的两种模式的工作方式:主动(active mode)/被动(passive mode)。

主动模式

客户端从一个任意的大于1023(N)的端口连接到FTP服务器的命令端口(21)。然后客户端开始监听端口N+1,并发送FTP命令“PORT N+1”到FTP服务器。接着服务器会从它自己的数据端口(20)连接到客户端指定的数据端口(N+1)。在这种模式下建立连接后:

  • 服务器开放端口:20(传数据),21(建连接,listen)
  • 客户端开放端口:N+1(传数据,listen)

由于要在客户端建立监听端口,这种做法非常不优雅(NAT,防火墙会教你做人)。

被动模式

客户端打开两个任意的本地端口(大于1023的N和N+1)。第一个端口连接服务器的21端口,但仅提交PASV命令。服务器会开启一个任意的非特权端口(大于1023的P),并发送“PORT P”命令给客户端。然后客户端发起从本地端口N+1到服务器的端口P的连接用来传送数据。在这种模式下建立连接后:

  • 服务器开放端口:21(建连接,listen),P(传数据,listen)
  • 客户端开放端口:N+1(传数据)

由于客户端不需要监听端口,不会行使任何服务器的机能。