什么是PORT(主动模式)和PASV(被动模式)
一次完整的FTP会话,包含有两个连接,一个称之为命令通道,一个称之为数据通道
命令通道用来传递一些“命令”和反馈,包括用户名密码登陆,而且众所周知是明文。默认此通道是21端口 当然 管理员也可以修改为其他端口 是什么都无所谓 但若建立多个FTP的话 端口不能重复
建立数据通道分两种方式,一是PORT模式(主动),二是PASV模式(被动)
你会在因特网上找到许多FTP服务器,有的要么只支持PORT,有的要么只支持PASV,有的是因为考虑安全因素,有的是因为条件限制等等
最好把你的FTP做成PORT和PASV方式都能支持的,这样不会使客户端在连接上受到困扰,特别是一些新手
对于PORT和PASV的定义,比较容易理解的解释是针对FTP服务端而言的
PORT是主动模式,在建立数据通道时,服务端去连接别人
PASV是被动模式,在建立数据通道时,服务端被别人连接
建立数据通道时,用PORT模式还是PASV模式,选择权在于FTP客户端
具体点说是这样
Port模式:
当客户端向服务端连接后,使用的是PORT模式,那么客户端B会发送一条命令告诉服务端(客户端B在本地打开了一个端口N在等着你进行数据连接),当服务端收到这个Port命令后 就会向客户端打开的那个端口N进行连接,这种数据连接就生成
Pasv模式:
当客户端B向服务端连接后,使用的是PASV模式,服务端会发信息给客户端,这个信息是(服务端在本地打开了一个端口M,你现在去连接我吧),当客户端收到这个信息后,就可以向服务端的M端口进行连接,连接成功后,数据连接也建立了 |
|