FTP的主动传输模式(PORT Mode)及被动传输模式(Passive Mode)(PASV)(FTP客户端 client 服务端 server 通信原理)

Posted Dontla

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了FTP的主动传输模式(PORT Mode)及被动传输模式(Passive Mode)(PASV)(FTP客户端 client 服务端 server 通信原理)相关的知识,希望对你有一定的参考价值。

ftp> ? passive
passive   	enter passive transfer mode

FTP的特殊性

大多数的TCP服务是使用单个的连接,一般是客户向服务器的一个周知端口发起连接,然后使用这个连接进行通讯。但是,FTP协议却有所不同,它使用双向的多个连接,而且使用的端口很难预计。一般,FTP连接包括:

  1. 一个控制连接(control connection)
      这个连接用于传递客户端的命令和服务器端对命令的响应。它使用服务器的21端口,生存期是整个FTP会话session时间。(就是从open ip[port]close这段时间?)

  2. 几个数据连接(data connection) (数据连接隶属于会话?)
      这些连接用于传输文件和其它数据,例如:目录列表等。这种连接在需要数据传输时建立,而一旦数据传输完毕就关闭,每次使用的端口也不一定相同。而且,数据连接既可能是客户端发起的,也可能是服务器端发起的。

主动传输模式和被动传输模式

在FTP协议中,控制连接使用周知端口21。相反,数据传输连接的目的端口通常实现无法知道。FTP协议使用一个标准的端口21作为ftp-data端口,但是这个端口只用于连接的源地址是服务器端的情况,在这个端口上根本就没有监听进程。FTP的数据连接和控制连接的方向一般是相反的,也就是说,是服务器向客户端发起一个用于数据传输的连接。连接的端口是由服务器端和客户端协商确定的。FTP协议的这个特征对ISA转发以及防火墙和NAT的配置增加了很多困难。

除此之外,还有另外一种FTP模式,叫做被动模式(passive mod)。在这种模式下,数据连接是由客户程序发起的,和刚才讨论过的模式(我们可以叫做主动模式)相反。是否采取被动模式取决于客户程序,在ftp命令行中使用passive命令就可以关闭/打开被动模式。

这两种模式发起连接的方向截然相反,主动模式是从服务器端向客户端发起连接;被动模式是客户端向服务器端发起连接。

PORT(主动)方式的连接过程是:客户端向服务器的FTP端口(默认是21)发送连接请求,服务器接受连接,建立一条命令链路。当需要传送数据时,客户端在命令链路上用PORT命令告诉服务器:“我打开了***X端口,你过来连接我”。于是服务器从20端口向客户端的***X端口发送连接请求,建立一条数据链路来传送数据。

PASV(被动)方式的连接过程是:客户端向服务器的FTP端口(默认是21)发送连接请求,服务器接受连接,建立一条命令链路。当需要传送数据时,服务器在命令链路上用PASV命令告诉客户端:“我打开了***X端口,你过来连接我”。于是客户端向服务器的***X端口发送连接请求,建立一条数据链路来传送数据。 (我们arm ftp客户端默认是被动模式

ftp> ls
200 PORT command successful. Consider using PASV.
150 Here comes the directory listing.

从上面可以看出,两种方式的命令链路连接方法是一样的,而数据链路的建立方法就完全不同。

各客户端默认连接方式说明:
1、 IE浏览器访问方式-------被动模式
2、 Linux字符连接-----------被动模式
3、 Windows字符连接-----主动模式
IE更改FTP连接方式为主动方法:
工具—Internet选项—高级—使用被动FTP(去掉勾选)-------OK
Linux下更改ftp连接方式为主动:(默认是被动,貌似我们目前需要的就是被动)
当ftp正常连接后输入:passive 将passive 模式关闭即可。

参考文章:FTP的主动模式(PORT Mode)及被动模式(Passive Mode)

以上是关于FTP的主动传输模式(PORT Mode)及被动传输模式(Passive Mode)(PASV)(FTP客户端 client 服务端 server 通信原理)的主要内容,如果未能解决你的问题,请参考以下文章

FTP服务的主动模式和被动模式

FTP Port主动模式 Passive被动模式区别-Filezilla Server设置Passive被动模式

Vsftp的PASV mode(被动模式传送)和Port模式及 Linux下VsFTP配置全方案

ftp的主动模式active mode和被动模式 passive mode的配置和区别

FTP主动模式(Port)与被动模式(PASV)原理解析

FTP的主动模式与被动模式