FTP的主动模式与被动模式windows
FTP服务器使用20和21两个网络端口与FTP客户端进行通讯。
FTP服务器的21端口用于传输FTP的控制命令,20端口用于传输文件数据。 安全
FTP主动模式:
FTP客户端向服务器的FTP控制端口(默认是21)发送链接请求,服务器接受链接,创建一条命令链路;当须要传送数据时,客户端在命令链路上用PORT的命令告诉服务器我开放了某端口,你过来链接我。因而服务器从20端口向客户端的该端口发送链接请求,创建一条数据链路来传送数据。在数据链路创建过程当中是服务器主动请求,因此称为主动模式。服务器
当客户端向服务端链接后,使用的是PORT模式,那么客户端B会发送一网络
条命令告诉服务端(客户端B在本地打开了一个端口N在等着你进行数据链接),当服务端收到这个Port命令后 就会向客户端打开的那个端口N进行链接,这种数据链接就生成。架构
FTP被动模式:
FTP客户端向服务器的FTP控制端口(默认21)发送链接请求,服务器接受链接,创建一条命令链路;当须要传送数据时,服务器在命令链路上用PASV命令告诉客户端,我打开了某端口,你过来连我。因而客户端向服务器的该端口发送链接请求,创建一条数据链路来传送数据。在数据链路创建的过程当中是服务器被动等待客户机的请求,因此称被动模式。
由上面几点能够看出,FTP服务器的主动与被动模式是以FTP服务器进行数据传送链接的主动或被动为依据的。
对于FTP服务器与客户机之间存在的网络防火墙,不管是服务器侧仍是客户机侧的网 络防火墙设置策略都要保证FTP服务器和客户端之间可以正常创建命令链路和数据链路。it
当客户端B向服务端链接后,使用的是PASV模式,服务端会发信息给客户端,这个信息是(服务端在本地打开了一个端口M,你如今去链接我吧),当客户端收到这个信息后,就能够向服务端的M端口进行链接,链接成功后,数据链接也创建了。io
主动模式下:
客户机 与 服务器之间创建链接时,客户机是大于1024的端口上,服务器是 20 端口。
客户机的端口是大于1024的,而服务器的端口是 21 端口接收请求,而是 20 端口给客户机回应。
容许FTP客户机从大于1024的端口链接服务器的21端口.
容许FTP服务器从21端口回应FTP客户机中大于1024端口的网络链接.
容许FTP服务器从20端口主动链接FTP客户机中大于1024的端口
容许FTP客户机从大于1024的端口回应来自FTP服务器的20端口的网络链接.
被动模式下:
客户机 与 服务器之间创建链接都是在大于1024的端口上的。
客户机的端口是大于1024的,而服务器的端口是 21 端口接收请求,而是 从大于1024 端口给客户机回应。
容许FTP客户机从大于1024的端口链接服务器的21端口.
容许FTP服务器从21端口回应FTP客户机中大于1024端口的网络链接.
允计FTP客户机从大于1024的端口链接FTP服务器的大于1024端口.
容许FTP服务器从大于1024的端口回应来自FTP客户机大于1024端口的网络链接
class
client开启大于1024(21吧)的X端口链接服务器的21(命令端口),同时开启X+1端口
当21号端口链接成功后,client会发送PASV命令,通知服务器本身处于被动模式,服务器收到这个消息后,就会开放一个大于1024的端口Y通知client,client接到通知后就会用X+1来链接服务器的Y端口,简单的说就是client主动链接服务器 。cli
主动与被动FTP优缺点的简要总结:
主动FTP对FTP服务器的管理有利,但对客户端的管理不利。由于FTP服务器企图与客户端的高位随机端口创建链接,而这个端口颇有可能被客户端的防火墙阻塞掉。
被动FTP对FTP客户端的管理有利,但对服务器端的管理不利。由于客户端要与服务器端创建两个链接,其中一个连到一个高位随机端口,而这个端口颇有可能被服务器端的防火墙阻塞掉。
幸运的是,有折衷的办法。既然FTP服务器的管理员须要他们的服务器有最多的客户链接,那么必须得支持被动FTP。咱们能够经过为FTP服务器指定一个有限的端口范围来减少服务器高位端口的暴露。这样,不在这个范围的任何端口会被服务器的防火墙阻塞。虽然这没有消除全部针对服务器的危险,但它大大减小了危险。 服务器端
FTP主动与被动的好处和坏处:
在ISA(工业标准架构体系Industry Standard Architecture是IBM PC兼容机上的一种总线 )的状况,若是采用被动模式,因为IIS是彻底随机的选择一个端口,并告知客户,而后客户进行主动链接,这就意味着在ISA上,你要让全部的端口都容许动态入站链接才行,这样确定不行,由于太危险了,等于打开了全部的端口连。
若是采用主动模式(PORT Mode),IIS选择好端口后,主动与客户进行链接,这时候不须要像PASV模式那样打开全部的动态入站链接,并且正好相反,咱们须要打开全部的动态出站链接便可,安全性增长不少。并且由ISA的IP PACKET FILTER只对ISA本机起做用,不会形成局域网内的客户“放了羊”。
FTPclient在被动模式下,传送文件使用的是0端口,能够调用setActivePortRange设置主动模式时的端口范围。
在windows下使用ftpclient时,须要处理windows下一个FTP主被动模式的缺陷,须要运行以下命令:
netsh advfirewall firewall add rule name=”FTP Service” action=allow service=ftpsvc protocol=TCP dir=in
netsh advfirewall set global StatefulFTP disable
https://technet.microsoft.com/zh-cn/library/dd421710(v=ws.10).aspx