「FTP」- 基本概念

  CREATED BY JENKINSBOT

主动模式(指远程 FTP Server 主动连接客户端)

本地 FTP Client 使用一个任意的非特权端口 PortA,连接到远程 FTP Server 的 21 端口。然后,本地 FTP Client 开始监听端口 ProtA + 1,并发送FTP命令“PORT PortA+1”到远程 FTP Server 。接着,远程 FTP Server 会从它自己的数据端口(20)连接到本地 FTP Client 指定的数据端口(PortA+1)。

所以,在主动模式中,是远程 FTP Server 主动连接本地 FTP Client 的端口。

端口号:21,服务端口;20 数据端口;

被动模式(指远程 FTP Server 被客户端连接)

当创建一个FTP连接时,本地 FTP Client 打开两个任意的非特权本地端口(PortA和PortB)。PortA连接远程 FTP Server 的21端口,然后本地 FTP Client 发送PASV命令给远程 FTP Server ,这样做的结果是远程 FTP Server 会开启一个任意的非特权端口(PortC),并响应PORT S命令给本地 FTP Client 。然后本地 FTP Client 发起从本地端口PortB到 FTP Server 的端口PortC的连接用来传送数据。

所以,在被动模式中,远程 FTP Server 被本地 FTP Client 连接。

目前,由于很多的本地 FTP Client 都是在内网中发起连接的,即通过 NAT 访问远程的 FTP Server ,所以本地 FTP Client 通常使用被动模式。

端口号:21,服务端口;<port-range>,数据端口;

参考文献

IETF / FILE TRACSFER PROTOCOL(RFC 959)
Wikipedia/File Transfer Protocol
Active vs. Passive FTP Simplified – Understanding FTP Ports