1、FTP的PORT(主动模式):
PORT中文称为主动模式,工作的原理: FTP客户端(1024以上端口)连接到FTP服务器的21端口,发送用户名和密码登录,
登录成功后要list列表或者读取数据时,客户端随机开放一个端口(1024以上),发送 PORT命令到FTP服务器,告诉服务器客户端采用主动模式并开放端口;
FTP服务器收到PORT主动模式命令和端口号后,通过服务器的20端口和客户端开放的端口连接,发送数据,原理如下图:
2、PASV(被动模式):
PASV是Passive的缩写,中文成为被动模式,工作原理:FTP客户端(1024以上端口)连接到FTP服务器的21端口,发送用户名和密码登录,登录成功后要list列表或者读取数据时,
发送PASV命令到FTP服务器, 服务器在本地随机开放一个端口(1024以上),然后把开放的端口告诉客户端, 客户端再连接到服务器开放的端口进行数据传输,原理如下图:
两种模式的比较:
从上面的运行原来看到,主动模式与被动模式,建立连接的过程是一样的,差别在于数据传输。
主动模式传送数据时是“服务器(20端口)连接到客户端的端口;
被动模式传送数据是客户端连接到服务器的端口(1024以上端口)。
主动模式需要客户端必须开放端口给服务器,很多客户端都是在防火墙内,开放端口给FTP服务器访问比较困难。被动模式只需要服务器端开放端口给客户端连接就行了。