为什么ftp协议要采用主动和被动两种模式,有什么好处

发布网友 发布时间:2022-04-01 06:40

我来回答

1个回答

热心网友 时间:2022-04-01 08:10

FTP是一种文件传输协议,它支持两种模式, 一种方式叫做Standard(也就是Active, 主动方式),一种是Passive(也就是PASV, 被动方式)。Standard模式FTP的客户端发送 PORT命令到FTPserver。 Passive模式FTP的客户端发送PASV命令到 FTPServer。 下面介绍一个这两种方式的工作原理: Standard模式FTP客户端首先和FTP Server的TCP21端口建立连接, 通过这个通道发送命令, 客户端需要接收数据的时候在这个通道上发送PORT命令。 PORT命令包含了客户端用什么端口接收数据。 在传送数据的时候,服务器端通过自己的TCP 20端口发送数据。FTP server必须和客户端建立一个新的连接用来传送数据。 Passive模式在建立控制通道的时候和Standard模式 类似,当客户端通过这个通道发送PASV命令的时候,FTP server打开一个位于1024和5000之间的随机端口并且 通知客户端在这个端口上传送数据的请求,然后FTP server将通过这个端口进行数据的传送,这个时候FTP server不再需要建立一个新的和客户端之间的连接。 现在的FTP软件里面包括在IE5以上的版本里面也已经支持这两 种模式了。一般一些FTP客户端的软件就比较好设置了, 一般都有一个PASV的选项,比如CuteFTP, 传输的方式都有Standard和PASV的选项, 可以自己进行选择; 另外在IE里面如果要设置成PASV模式的话可以选中工具- Internet选项-高级-为FTP站点启用文件夹视图, 否则就采用Standard模式。 很多防火墙在设置的时候都是不允许接受外部发起的连接的, 所以FTP的Standard模式在许多时候在内部网络的机器通 过防火墙出去的时候受到了*,因为从服务器的TCP 20无法和内部网络的客户端建立一个新的连接,造成无法工作。 当然也可以设置成功, 首先要创建一条规则就是允许内部的IP连接外部的IP的21端口 ;第二条就是禁止外部IP的TCP20端口连接内部IP的< 1024的端口,这条是为了防止外部连接内部的常规端口; 第三条验证ACK是否等于1, 这个的原理就参见TCP建立连接的三次握手吧。 所以如果安全的配置的话非常困难, 这个时候就想起来了PASV模式,因为不用建立新的连接, 所以也就不会涉及到后面的问题了。 但是管理员可能不想使用PASV模式,因为这个时候FTP Server会开放一个随机的高端口, 尽管在IIS4和IIS5里面端口的范围是1024-5000, 但是许多FTPServer的端口范围达到了1024- 65535, 这个时候在这个主动开放的随机端口上是有完全的访问权限的, 如果IIS也要设置成开放的端口为1024-65535, 具体方法如下: 1.regedt32 2.找到HKEY_LOCAL_MACHINE\ SYSTEM\CurrentControlSet\ Services\Tcpip\Parameters 3.编辑-添加-数值 ValueName:MaxUserPortData Type:REG_DWORDValue:65534< forexample> 所以如果遇到了有防火墙的话或者怕配置麻烦的话还是采用PASV 模式比较好些, 但是如果真的对安全的需求很高的话建议采用Standard模式 。

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com