FTP(文件传输协议)是一种用于在计算机之间传输文件的标准协议。FTP可以在两种模式下运行:主动模式和被动模式。这两种模式都是为了解决FTP协议在防火墙背后使用时遇到的问题而设计的。
主动模式下,客户端会从一个随机的端口(通常是大于1024的端口)连接到FTP服务器的TCP端口20上,这是FTP服务器用于数据传输的默认端口。然后,服务器会从它的TCP端口20上的连接中发送数据,直到传输完成。这种模式下,客户端需要打开它的TCP端口用于传输数据,因此它在防火墙背后的时候可能会被拦截。
被动模式下,FTP服务器会打开一个额外的端口用于数据传输。客户端在连接FTP服务器的TCP端口21之后,发送PASV命令给服务器。服务器会返回一个指示它要用于数据传输的端口号和IP地址。客户端接下来会连接到这个指定的端口上,这个端口由服务器打开并监听。这种模式下,客户端不需要打开任何端口,因此在防火墙背后也可以正常使用。
要查看FTP使用的是哪种模式,可以查看FTP命令交互过程中的响应信息。在主动模式下,客户端会使用PORT命令指定要使用的端口,服务器会在数据传输时使用该端口。在被动模式下,客户端会使用PASV命令,服务器会返回使用的端口号和IP地址。因此,根据命令交互过程中的响应信息,可以判断FTP是使用主动模式还是被动模式。