一、FTP使用的传输模式
主动和被动模式是可以在FTP运行的两种模式,FTP使用两个端口,一个数据端口和一个命令端口(也可叫做控制端口)。命令端口具有命令和响应的作用,数据端口实际上起着传输文件的作用
其实际的原理及连接过程是:
①、主动模式下,客户端建立命令通道,(从客户端端口X到服务器端口21),然后客户端开始监听端口X+1,并发送FTP命令“port X+1 到FTP服务器”,同时服务器建立数据通道,来自服务器端口20到客户端端口X+1
(1)客户端打开命令端口X(X>1024)连接到服务器的21端口
(2)客服端发送命令端口X+1到服务器,服务器接受该命令端口
(3)服务器建立数据通道,并将来自服务器20端口连接到客户端X+1端口的数据端口
(4)客户端接受该数据通道
②、被动模式下,客户端建立了双向通道(命令连接和数据连接都由客户端来执行),在这种模式下,服务器将告知客户端哪个端口将被使用在数据通道中。当FTP服务器不能建立数据端口时,通常是由于客户端防火墙阻塞造成,此时使用被动模式,即可正常连接FTP
(1)客户端打开命令端口X(X>1024)到服务器21端口
(2)客户端在该命令通道中,发送“PASV”命令给服务器
(3)服务器在监听该端口后,将会开启一个任意的非特权端口Z(Z>1024),返回并发送给客户端
(4)客户端建立数据通道,并从本地端口X+1发送到服务器Z端口
(5)服务器接受该数据通道
其实主动就是说的是:服务器建立数据通道,客户端接受即可
被动也就是说:客户端建立的数据通道,服务器来接受该通道
遇到连接不上的问题怎么解决呢?
①、可以通过降低本地防火墙级别或者暂时关闭本地防火墙得到解决
②、可以 使用被动模式得到解决(前提是该FTP服务器开放了一个指定范围内的服务器端口,而不是只开放了20和21端口)
如果还不行,那就要看虚拟主机是否支持主动、被动模式连接,那就得换主机
二、ftp工作方式的PORT方式与PASV有什么区别
不同之处是由于PORT(主动)这个方式需要在接上TCP 21端口后,服务器通过自己的TCP 20来发出数据。并且需要建立一个新的连接来传送档案
而PORT的命令包含一些客户端没用的资料,所以有了PASV的出现。而PASV模式拥有PORT模式的优点,并去掉一些PORT的缺点。PASV运行方式就是当服务器接收到客户端连接请求时,就会自动从端口1024到5000中随机选择一个和客户端建立连接传递数据。由于被动且自动建立连接,容易受到攻击,所以安全性差
常见的FTP客户端软件PORT方式与PASV方式的切换方法
大部分FTP客户端默认使用PASV方式。IE默认使用PORT方式。 在大部分FTP客户端的设置里,常见到的字眼都是“PASV”或“被动模式”,极少见到“PORT”或“主动模式”等字眼。因为FTP的登录方式只有两种:PORT和PASV,取消PASV方式,就意味着使用PORT方式
(1)IE:工具 -> Internet选项 -> 高级 -> “使用被动FTP”(需要IE6.0以上才支持)
(2)CuteFTP:Edit -> Setting ->Connection-> Firewall -> “PASV Mode” 或File -> Site Manager,在左边选中站点 -> Edit -> “Use PASV mode”
(3)FlashGet:工具 -> 选项 ->代理服务器-> 直接连接 -> 编辑 -> “PASV模式”
(4)FlashFXP:选项 -> 参数选择 -> 代理/防火墙/标识 -> “使用被动模式” 或 站点管理 -> 对应站点 -> 选项 -> “使用被动模式”或快速连接 -> 切换 -> “使用被动模式”