ftp-主动模式(PORT)和被动模式(PASV)

简介

FTP是File Transfer Protocol(文件传输协议)的缩写,用来在两台计算机之间互相传送文件。相比于HTTP,FTP协议要复杂得多。复杂的原因,是因为FTP协议要用到两个TCP连接,一个是命令链路,用来在FTP客户端与服务器之间传递命令;另一个是数据链路,用来上传或下载数据。
FTP协议有两种工作方式:PORT方式和PASV方式,分别对应主动式和被动式。
在主动模式下,FTP客户端随机开启一个大于1024的端口N向服务器的21号端口发起连接,然后开放N+1号端口进行监听,并向服务器发出PORT N+1命令。服务器接收到命令后,会用其本地的FTP数据端口(通常是20)来连接客户端指定的端口N+1,进行数据传输。

在被动模式下,FTP库户端随机开启一个大于1024的端口N向服务器的21号端口发起连接,同时会开启N+1号端口。然后向服务器发送PASV命令,通知服务器自己处于被动模式。服务器收到命令后,会开放一个大于1024的端口P进行监听,然后用PORT P命令通知客户端,自己的数据端口是P。客户端收到命令后,会通过N+1号端口连接服务器的端口P,然后在两个端口之间进行数据传输。

总的来说,主动模式的FTP是指服务器主动连接客户端的数据端口,被动模式的FTP是指服务器被动地等待客户端连接自己的数据端口。

被动模式的FTP通常用在处于防火墙之后的FTP客户端访问外界FTP服务器的情况,因为在这种情况下,防火墙通常配置为不允许外界访问防火墙之后主机,而只允许由防火墙之后的主机发起的连接请求通过。因此,在这种情况下不能使用主动模式的FTP传输,因为FTP服务端向客户端发起的主动建立连接请求将被防火墙拦截,而被动模式的FTP可以良好的工作。

主动模式

工作过程:

  1. 客户端以随机非特权端口N,就是大于1024的端口,对server端21端口发起连接

  2. 客户端开始监听 N+1端口;

  3. 服务端会主动以20端口连接到客户端的N+1端口。

优点:

服务端配置简单,利于服务器安全管理,服务器只需要开放21端口

缺点:

如果客户端开启了防火墙,或客户端处于内网(NAT网关之后), 那么服务器对客户端端口发起的连接可能会失败。

被动模式

 

 被动模式的FTP是指服务器被动地等待客户端连接自己的数据端口。

工作过程:

  1. 客户端以随机非特权端口连接服务端的21端口

  2. 服务端开启一个非特权端口为被动端口,并返回给客户端

  3. 客户端以非特权端口+1的端口主动连接服务端的被动端口

缺点:服务器配置管理稍显复杂,不利于安全,服务器需要开放随机高位端口以便客户端可以连接,因此大多数FTP服务软件都可以手动配置被动端口的范围

优点:对客户端网络环境没有要求

posted @ 2021-12-29 10:37  wang_longan  阅读(1864)  评论(0编辑  收藏  举报