java ftp pasv_FTP主动模式和被动模式的比较(转载)

FTP上传时的主动模式和被动模式主要区别在于数据传输过程。主动模式下,服务器连接客户端的随机端口;被动模式则由客户端连接服务器指定的端口。防火墙和安全设置可能导致某模式受限。设置被动模式端口范围可以提高服务器安全性。在Windows的IIS和Linux的ProFTP中,可以通过修改配置文件设定这一范围。
摘要由CSDN通过智能技术生成

我们在上传文件或图片到主机的时候,都不可避免的用到FTP软件这个上传工具。在上传的时候,有两种传输方式大家一定不会不熟悉,那就是主动模式和被动模式,他们的英文简写是Port和Pasv。常常有客户无法上传的时候,我们都会告诉他们,把FTP软件被动模式前面的钩去掉再试试。这说明,FTP软件默认是使用被动模式的,这种传输模式较先进一些。而有些客户无法在这种模式下上传的原因,往往是由于他们电脑中安装了防火墙、杀毒软件或者他们电脑所在的局域网做了特殊限制造成。

e4fa8488-ac90-4d17-bfba-a8eb9c2eb414.jpg

首先我们要知道,我们在使用FTP上传、删除、修改文件的时候其实要经过两个过程。一个是命令连接,一个是数据传输。命令连接的过程是我们电脑->服务器,通常是我们电脑中一个随机的大于1024的端口->服务器的21端口。我们熟知的FTP的21端口就是建议命令连接时所必需的。对于这主动和被动这两种上传模式而言,命令连接的过程是完全相同的,其区别就在数据传输过程中。主动模式下,当需要传送数据时,客户端在命令连接上用PORT命令告诉服务器:“我打开了XXXX端口(通常是一个随机的大于1024的端口),你过来连接我”。于是服务器从20端口向客户端的这个端口发送连接请求,建立一条数据连接来传送数据,这就是服务器->客户电脑的过程。而在被动模式下,服务器在命令连接上用PASV命令告诉客户端:“我打开了XXXX端口(通常是在FTP服务端设置的一个高位端口范围),你过来连接我”。于是客户端向服务器的这个端口范围发送连接请求,建立一条数据连接来传送数据。

一句话,主动模式的FTP是指服务器主动连接客户端的数据端口,被动模式的FTP是指服务器被动地等待客户端连接自己的数据端口。故通过防火墙对高位端口的阻塞,会造成主动模式受限,被动模式比较先进。另外通过设置被动模式的端口范围,只开放一定的端口对外传输数据,也大大减少了服务器安全性暴露的风险。

那么,在哪里设置被动模式的端口范围呢。Windows环境下的IIS FTP的设置方法是:打开C:\WINDOWS\system32\inetsrv\MetaBase.xml,当然首先要停止IIS Admin Service服务。然后编辑这个文件里面区块下的PassivePortRange,比如设置成PassivePortRange="50030-50039",这就指定了10个端口来传输数据。而Linux环境下的ProFTP的设置方法是:打开proftp的配置文件,命令是vi /etc/proftpd.conf,然后在区块里面添加PassivePorts 50030 50039这样的一段文字,也和上面IIS中的端口设置是一样的功能。

最后在说下这两种模式的优缺点。主动模式对FTP服务器的管理有利,但对客户端的管理不利。因为FTP服务器企图与客户端的高位随机端口建立连接,而这个端口很有可能被客户端的防火墙阻塞掉。被动模式对FTP客户端的管理有利,但对服务器端的管理不利。因为客户端要与服务器端建立两个连接,其中一个连到一个高位随机端口,而这个端口很有可能被服务器端的防火墙阻塞掉。比较明智的方法是,同时做好服务器和客户电脑的安全设置,尽量不要开防火墙,就能比较顺利的通过FTP上传和管理我们的文件。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值