最近FTP的项目作得比较深刻,也就进一步把FTP主动和被动模式熟悉一下,须要知道的事,FTP是基于TCP服务的,不支持UDP。FTP,File Transfer Protocol,文件传输协议,通常人了解FTP,是经过他的一些相关客户端如CuteFTP(大学时经常使用),Fillzilla,WinSCP等。
通常这些软件默认FTP链接模式为PASV,被动链接。即FTP客户端向服务端口(默认是21)发出链接请求,服务端接到请求后创建命令链路。而后服务端经过命令链路发消息告诉客户端,服务端XXXX端口,位于(1025—65535)之间,开放,与客户端创建起数据链路,从而客户端能够进行数据上传与下载。这个被动指的是客户端被动收到服务端的消息,才能开始传输。通常这样的话,可能会收到服务端防火墙的阻隔。
而主动模式,PORT,即FTP客户端向服务端口(默认是21)发出链接请求,服务端接到请求后创建命令链路,这个过程与被动链接同样。而后客户端经过命令链路发消息告诉服务端,客户端通常是20端口开放,服务端收到消息后链接该端口,创建起数据链路,从而进行数据的上传下载。这个主动是指客户端主动开放20端口,并发起与服务端创建数据传输的请求。这种模式,可能受限于客户端防火墙的限制,另外也不能用与代理上网时的FTP服务,由于服务端收到客户端请求后,他链接的代理服务器的端口。
主动模式(PORT)和被动模式(PASV)。主动模式是从服务器端向客户端发起链接;被动模式是客户端向服务器端发起链接。二者的共同点是都使用21端口进行用户验证及管理,差异在于传送数据的方式不一样,PORT模式的FTP服务器数据端口固定在20,而PASV模式则在1025-65535之间随机 服务器
专业介绍以下:
主动FTP对FTP服务器的管理有利,但对客户端的管理不利。由于FTP服务器企图与客户端的高位随机端口创建链接,而这个端口颇有可能被客户端的防火墙阻塞掉。被动FTP对FTP客户端的管理有利,但对服务器端的管理不利。由于客户端要与服务器端创建两个链接,其中一个连到一个高位随机端口,而这个端口颇有可能被服务器端的防火墙阻塞掉。
幸运的是,有折衷的办法。既然FTP服务器的管理员须要他们的服务器有最多的客户链接,那么必须得支持被动FTP。咱们能够经过为FTP服务器指定一个有 限的端口范围来减少服务器高位端口的暴露。这样,不在这个范围的任何端口会被服务器的防火墙阻塞。虽然这没有消除全部针对服务器的危险,但它大大减小了危 险。
简而言之:
主动模式(PORT)和被动模式(PASV)。主动模式是从服务器端向客户端发起链接;被动模式是客户端向服务器端发起链接。二者的共同点是都使用21端口进行用户验证及管理,差异在于传送数据的方式不一样,PORT模式的FTP服务器数据端口固定在20,而PASV模式则在1025-65535之间随机
FTP主动模式与被动模式的解决与原理
FTP是File Transfer Protocol(文件传输协议)的缩写,用来在两台计算机之间互相传送文件。相比于HTTP,FTP协议要复杂得多。复杂的缘由,是由于FTP协议要用到两个TCP链接,一个是命令链路,用来在FTP客户端与服务器之间传递命令;另外一个是数据链路,用来上传或下载数据。
FTP协议有两种工做方式:PORT方式和PASV方式,中文意思为主动式和被动式。
PORT(主动)方式的链接过程是:客户端向服务器的FTP端口(默认是21)发送链接请求,服务器接受链接,创建一条命令链路。当须要传送数据时,客户端在命令链路上用PORT命令告诉服务器:“我打开了XXXX端口,你过来链接我”。因而服务器从20端口向客户端的XXXX端口发送链接请求,创建一条数据链路来传送数据。
PASV(被动)方式的链接过程是:客户端向服务器的FTP端口(默认是21)发送链接请求,服务器接受链接,创建一条命令链路。当须要传送数据时,服务器在命令链路上用PASV命令告诉客户端:“我打开了XXXX端口,你过来链接我”。因而客户端向服务器的XXXX端口发送链接请求,创建一条数据链路来传送数据。
并发
归纳:
--------------------------------------------------------------------------------
主动模式:服务器向客户端敲门,而后客户端开门
被动模式:客户端向服务器敲门,而后服务器开门
因此,若是你是若是经过代理上网的话,就不能用主动模式,由于服务器敲的是上网代理服务器的门,而不是敲客户端的门
并且有时候,客户端也不是轻易就开门的,由于有防火墙阻挡,除非客户端开放大于1024的高端端口
--------------------------------------------------------------------------------
要用主动模式来下载,请您把下载工具的被动模式(PASV)都不要打勾,用主动模式来下载就OK了,若是在出错,那就被动主动相互转换一下
常见的FTP客户端软件的PASV方式的关闭方法
大部分FTP客户端默认使用PASV方式,PASV模式的意式是被动模式。 在大部分FTP客户端的设置里,常见到的字眼都是“PASV”或“被动模式”。
IE: 工具 -> Internet选项 -> 高级 -> “使用被动FTP”(须要IE6.0以上才支持)。
CuteFTP: Edit -> Setting -> Connection -> Firewall -> “PASV Mode”
或 File -> Site Manager,在左边选中站点 -> Edit -> “Use PASV mode”
FlashGet: 工具 -> 选项 -> 代理服务器 -> 直接链接 -> 编辑 -> “PASV模式”
FlashFXP: 选项 -> 参数选择 -> 代理/防火墙/标识 -> “使用被动模式”
或 站点管理 -> 对应站点 -> 选项 -> “使用被动模式”
或 快速链接 -> 切换 -> “使用被动模式”
LeapFTP: Option ->Preferences -> General->Proxy->Use Pasv Mode
从上面能够看出,两种方式的命令链路链接方法是同样的,而数据链路的创建方法就彻底不一样。而FTP的复杂性就在于此。工具