看懂FTP的主动和被动模式
FTP只通过TCP连接,没有用于FTP的UDP组件,FTP不同于其他服务的是它使用了两个端口,一个数据端口和一个命令端口(或称为控制端口)。通常21端口是命令端口,20端口是数据端口。当混入主动/被动模式的概念时,数据端口就有可能不是20了。
主动模式FTP
主动模式下,FTP客户端从任意的非特殊的端口(N > 1023)连入到FTP服务器的命令端口–21端口。然后客户端在N+1(N+1 >= 1024)端口监听,并且通过N+1(N+1 >= 1024)端口发送命令给FTP服务器。服务器会反过来连接用户本地指定的数据端口,比如20端口。
以服务器端防火墙为立足点,要支持主动模式FTP需要打开如下交互中使用到的端口:
FTP服务器命令(21)端口接受客户端任意端口(客户端初始连接)
FTP服务器命令(21)端口到客户端端口(>1023)(服务器响应客户端命令)
FTP服务器数据(20)端口到客户端端口(>1023)(服务器初始化数据连接到客户端数据端口)