ftp的主被动模式
FTP是一个文件传输的常用协议,它使用了两个端口:数据端口 20,命令端口 21.但是当混入主动/被动模式的概念时,数据端口可能会发生改变。
主动模式
PORT中文称为主动模式。FTP客户端使用N端口(N>1023)端口连接到FTP服务器的21端口,发送用户名和密码进行登录,登录成功读取数据时,客户端开放N+1端口,发送PORT命令到FTP服务器,告诉服务器采用主动模式并开放端口,FTP服务器接收到PORT主动模式命令和端口号后,通过服务器的20端口和客户端开放的端口进行连接。
被动模式
PASV中文称为被动模式。FTP客户端使用N端口(N>1023)端口连接到FTP服务器的21端口,发送用户名和密码进行登录,登录成功读取数据时,客户端开放N+1端口,发送PASV命令到FTP服务器,服务器在本地开放一个端口(1024以上),然后把开放的端口告诉客户端,客户端再通过N+1端口连接到服务器端口进行数据传输。
两者的区别
主动模式对服务端有利,但对客户端不利。主动模式是服务器主动送达,客户端需要提供地址,不安全
被动模式对客户端有利,因为客户端的命令端口和数据端口都是“准出”,防火墙对于“准出”一般是不拦截的。