什么是ftp主动模式和被动模式

什么是ftp主动模式和被动模式

FTP是仅基于TCP的服务,不支持UDP。与众不同的是FTP使用2个端口,一个是数据端口和一个命令端口(也叫作控制接口)。通常来说这两个端口是20(数据端口)和21(命令端口)。但FTP工作方式的不同,数据端口并不总是20.这就是FTP主动与被动模式最大的不同之处。

主动的FTP是这样的

​ 客户端从一个任意的非特权端口N(N>1024)连接到FTP服务器的命令端口(21)。然后客户端开始监听端口N+1,并发送FTP命令PORT N+1到FTP服务器,接着服务器会从他自己的数据端口(20连接到指定的数据端口(N+1).针对FTP服务器掐免得防火墙来说,必须允许以下通讯才能支持主动方式FTP:

  1. 任何大于1024的端口到FTP服务器的命令端口(21)。 ——客户端初始化的连接
  2. FTP服务器的命令端口(21)到大于1024的端口。 ——服务器响应客户端的控制端口
  3. FTP服务器的数据端口(20)到大于1024的端口。——服务端初始化数据连接到客户端的数据端口
  4. 大于1024的端口到FTP服务器的数据端口(20)。——客户端发送ACK响应到服务器的数据端口(20)
被动FTP是这样的

​ 为了解决服务器发起到客户端的连接问题,人们开发出了不同的FTP连接模式,这就是FTP被动方式,或者叫做PASV,当客户端通知服务器他处于被动模式时才启用。在被动方式FTP中,命令连接和数据连接都是由客户端发起的,这样就可以解决从服务器到客户端的数据端口的介入方向连接被防火墙过滤掉的问题。当开启一个FTP连接时,客户端打开两个任意的非特权本地端口(N>1024和N+1)。第一个端口连接服务器的端口,但是与主动方式的FTP不同,客户端不会提交PORT命令并允许服务器来回连接他的数据端口,而是提交PASV命令,这样做的结果是服务器会开启一个任意的非特权端口(p>1024),并发送PORT命令给客户端。然后客户端发起从本地端口N+1到服务器端口P的连接用来传输数据。

  1. 从任何大于1024的端口到服务器的命令端口端口。——客户端初始化的连接
  2. 服务器的命令端口(20)到大于1024的端口。——服务器响应到客户端的控制端口的连接
  3. 从任何大于1024的端口到大于服务器的1024端口。 ——客户端初始化数据连接到服务器指定的任意端口
  4. 服务器的大于1024端口到远程的大于1024的端口。 ——服务器发送ACK响应和数据到客户端的数据端口
主动与被动FTP优缺点

主动FTP对FTP服务器的管理有利,但是对客户端管理不利。因为FTP服务器企图与客户端的高位随机端口建立连接,而这个端口很有可能被客户端的防火墙阻塞掉。被动FTP对FTP客户端的管理有利,但是对服务端的管理不利。因为客户端与服务器要建立两个连接,其中一个连接到高位的随机端口,而这个端口很有可能被防火墙阻塞掉。幸运的是,有折中的方法,既然FTP服务器管理员需要他们的服务器有最多的客户连接,那么必须得支持被动FTP。我们可以通过FTP服务器指定一个有限的端口范围来减小服务器最高位的暴露。这样,不在这个范围的任何端口都会被防火墙阻塞。虽然这没有消除所有针对服务器的危险,但它大大减少了危险。

总而言之

主动模式(PORT)和被动模式(PASV)。主动模式是从服务端向客户端发起连接;被动的是客户端向服务端发起连接。两者的共同点都是使用21号端口进行用户验证及管理,差别在于传送数据的方式不同。PORT模式的FTP服务器的端口固定在20,而PASV模式的端口则在1025-65535之间随机选择。

  • FTP主动模式与被动模式的解决与原理:用来在两台计算机之间相互传送文件。相比于HTTP,FTP协议要复杂的多。复杂的原因,是因为FTP协议要用到TCP连接,一个是命令链路,用来在FTP客户端与服务器之间传递命令;另外一个是数据链路,用来上传或者下载数据。
  • FTP协议有两种工作方式:PORT和PASV方式,中文的意思为主动式和被动式
  • FTP主动方式(PORT)连接过程是:客户端向服务器的FTP端口默认是21发送请求,服务器接收连接,建立一条命令链路。当需要传送数据时,客户端在命令连路上用PORT命令告诉服务器:“我打开了XXXX端口,你过来连接我”。于是服务器从20端口向客户端的xxxx端口发送连接请求,建立一条数据链路来传送数据。
  • FTP被动方式(PASV)连接过程:客户端向服务器的FTP端口(默认是21)发送连接请求,服务器接受连接,建立命令链路,当需要传送数据时,服务器在命令连路上用PASV 命令告诉客户端:“我打开了XXXX端口,你过来连接我”。于是客户端向服务器的xxxx端口发送连接请求,建立一条数据链路来传送数据
  • 4
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值