转:FTP的主动被动工作方式

 

FTP服务器使用20和21两个网络端口与FTP客户端进行通信。
 
FTP服务器的21端口用于传输FTP的控制命令,20端口用于传输文件数据。

 

FTP主动模式:FTP客户端向服务器的FTP控制端口(默认是21)发送连接请求,服务器接受连接,建立一条命令链路;当需要传送数据时,客户端在命令链路上用PORT的命令告诉服务器我开放了某端口,你过来连接我。于是服务器从20端口向客户端的该端口发送连接请求,建立一条数据链路来传送数据。在数据链路建立过程中是服务器主动请求,所以称为主动模式。
 
FTP被动模式:FTP客户端向服务器的FTP控制端口(默认21)发送连接请求,服务器接受连接,建立一条命令链路;当需要传送数据时,服务器在命令链路上用PASV命令告诉客户端,我打开了某端口,你过来连我。于是客户端向服务器的该端口发送连接请求,建立一条数据链路来传送数据。在数据链路建立的过程中是服务器被动等待客户机的请求,所以称被动模式。
 
由上面几点可以看出,FTP服务器的主动与被动模式是以FTP服务器进行数据传送连接的主动或被动为依据的。
 
对于FTP服务器与客户机之间存在的网络防火墙,不论是服务器侧还是客户机侧的网络防火墙设置策略都要保证FTP服务器和客户端之间能够正常建立命令链路和数据链路。

 

 

怎么设置FileZilla Server的主动模式?

-------------------------------------------------------------------------------------------------------------------------------------------------------

设置被动FTP(PASV),是指定端口,还是随机端口。FileZilla Server只有设置被动FTP的选项,朋友们就要问了,那主动FTP(PORT)到哪里去了?

我折腾了很久才明白,决定FTP是PORT(主动),还是PASV(被动),关键是看客户端发送的命令。换句话说,决定权在客户端。

服务器端开启20和21端口,客户端只要选择的是主动模式,服务器端,自动把连接设定为PORT(主动);
服务器端开启21端口,并且设置PASV是指定端口,还是随机端口,并打通这些端口;客户端设置为被动模式,这个连接自动设置为PASV。


不管是PORT(主动),还是PASV(被动),必须要打开21端口。

-------------------------------------------------------------------------------------------------------------------------------------------------------
被动FTP(PASV,指定端口)——推荐

1)FTP服务器端,开放指定端口的PASV模式,需额外指定至少10个连续的端口,并在防火墙中打开这些端口。

2)10个连续的端口,均为高位端口(大于1024)

3)在Windows防火墙和第三方安全软件中,务必打通这些端口。

4)经过实测,PASV(被动FTP)不强制要求打开20端口,但必须要打开21端口。为了减少记忆负担,不管是PORT,还是PASV,确保在Windows防火墙和第三方安全软件打通20和21端口,这准没错。

5)客户端保持被动模式,如果改为主动模式,则打不开FTP。
在Windows防火墙和第三方安全软件中,打通20、21和上面指定的其他端口。

-------------------------------------------------------------------------------------------------------------------------------------------------------
被动FTP(PASV,随机端口)——不推荐

1)开放随机端口的PASV,要求服务器端开放所有端口,关闭防火墙。

2)为了彻底关闭防火墙,需要关闭Windows防火墙和第三方安全软件。

3)服务器端Windows防火墙下的不同类型的网络,如家庭、工作、公用网络位置等,统统关闭。(重点是“公用网络位置”)

4)客户端保持被动模式,如果改为主动模式,则打不开FTP。

5)使用IE内核的浏览器,默认是被动FTP模式(PASV),Windows资源管理器、IE浏览器和360浏览器使用的FTP模式是联动的。

 

 

http://www.hostloc.com/thread-246285-1-1.html

posted @ 2015-06-30 11:00  山河水  阅读(773)  评论(0编辑  收藏  举报