ftp被动和主动

用大白话解释这两种模式其实很简单

主动模式的时候服务端,默认启用21和20端口,在运行的时候,客户端随机启动一个端口向服务端的21端口发送一个请求并提交用户名和密码,当验证通过之后,客户端会再次向服务端发送通讯,目的是获取服务端现在处于什么模式,如果是主动模式,会开放并提交一个用于监听的端口号信息,服务器端收到这个端口号信息,会启动20端口去连接客户端给的这个端口号去进行数据的传递

被动模式的时候,客户端同样的也是随机启动一个端口向服务端的21端口发送请求,并提交用户名和密码,通过验证之后,服务端与客户端再次进行模式通讯,此时服务端处于被动模式,除了回家被动模式信息返回给客户端之外,他还会给客户端开放一个端口,并把这个端口信息一起交给客户端,客户端收到之后就会启动一个新端口去连接服务端打开的端口,进行数据互通

总结来说,主动模式与被动模式的鉴定区别就是,用来传输数据的端口是谁先打开的

我们通常在商业中用到的模式都是被动模式,这里给大家说一下,为什么。

原因一,主动模式下客户端开放的数据互通端口范围是不可控的,在生产环境下服务器都是有防火墙认证的,无法确定端口,那就意味着无法为两台服务器之间建立一个安全的防火墙端口认证

原因二,有些生产环境下,服务器会存在于一个安全的环境下,比如内网,这个时候就更加不可能为一个无法确定的端口而去开放防火墙

原因三,相对于主动模式,被动模式的防火墙ip和端口号都是可控的,因此,在生产环境下,我们才会使用被动模式,而非主动模式

大家如果有兴趣的话,可以去观察一下,每次数据传递时开放的端口,大家就会发现客户端无论主动模式或者被动模式,用到的端口都是大于1024的,而且验证用户密码的请求端口和后期用于数据传输的端口总是挨着的

决定使用那个模式,其实归根结底,是看服务端和客户端,能不能建立一个可以稳定且安全可行的防火墙策略,比如你服务端和客户端对于防火墙来说都无所谓,那么那种模式都可以,但是通常因为我们生产环境的服务器有相当高的安全策略,所以都会去选择被动模式,因为通讯的端口号和IP地址是可控的,可以通过服务端去设置安全策略,让客户端去访问就可以了

猜你喜欢

转载自blog.csdn.net/dudadudadd/article/details/114199281