FTP协议有两种工作方式:PORT方式和PASV方式,中文意思为主动式和被动式。
PORT(主动)方式的连接过程是:客户端向服务器的FTP端口(默认是21)发送连接请求,服务器接受连接,建立一条命令链路。当需要传送数据时,服务器从20端口向客户端的空闲端口发送连接请求,建立一条数据链路来传送数据。
PASV(被动)方式的连接过程是:客户端向服务器的FTP端口(默认是21)发送连接请求,服务器接受连接,建立一条命令链路。当需要传送数据时,客户端向服务器的空闲端口发送连接请求,建立一条数据链路来传送数据。
因为PORT方式在传送数据时,由服务器主动连接客户端,所以,如果客户端在防火墙或NAT网关后面,用PORT方式将无法与Internet上的FTP服务器传送文件。这种情况需要使用PASV方式。几乎所有的ftp客户端软件都支持这两种方式。特殊的典型例子是IE,IE默认是用PORT方式的。如果要在ie里启用PASV方式,请打开IE,在菜单里选择:工具-Internet选项- 高级,在“使用被动ftp”前面打上钩(需要IE6.0以上才支持),确定即可。