![](https://csdnimg.cn/release/download_crawler_static/1965217/bg1.jpg)
TCP/IP 协议分析之一 FTP 被动模式分析 zhou_hy@126.com
- 1 -
TCP/IP 协议分析之一 FTP 被动模式分析
zhouhy (zhou_hy@126.com
)
2006-7-21
FTP 的两种不同工作模式:PORT(主动模式)与 PASV(被动模式)
1、 首先,我们要了解,FTP 工作的时候,需要用到两个连接:控制连接与数据连接,控制
连接专门用于 FTP 控制命令及命令执行信息传送;数据连接专门用于传输数据(上传/
下载)。
2、 Port 模式也就是主动模式,是 FTP 协议最初定义的连接模式。Port 模式的连接过程是:
在开始一个 FTP 的连接时,客户端程序首先会为自己随机分配一个 TCP 端口,它使用这
个个端口向服务器的 FTP 端口(默认为 21)发出连接请求,服务器接受请求之后会建立
一条控制链路,然后客户程序向服务器发出 Port 命令(通常格式为 PORT A1, A2, A3, A4,
P1,P2,其中 A1,A2,A3,A4 为客户端 IP 地址,P1,P2 为随机的一个数据连接端口号,
P1、P2 与端口号换算后述),告诉服务器它的数据通道的端口打开了。当需要传送数据
时,服务器通过 20 端口向客户端提供的随机端口发送连接请求,请求被接受之后便开
始传输数据,数据链路通道也就打开了,在整个过程中,由于服务器在建立数据连接时
主动发起连接,因此被称为主动模式。
主动模式的问题:由于客户端提供的端口号是随机端口,如果客户端处于防火墙内部,
由于防火墙通常会限制外部主机连接内部非开放端口,数据连接很可能被防火墙限制,
造成无法建立数据连接,FTP 无法正常工作。
3、 Pasv 模式也就是被动模式。Pasv 模式的连接过程是:在开始一个 FTP 的连接时,客户
端程序首先为自己随机分配一个 TCP 端口,它使用这个端口向服务器的 FTP 端口(默认
为 21)发出连接请求,服务器接受请求之后会建立一条控制链路,然后客户端程序发出
Pasv 命令,要求服务器采用 PASV 模式建立数据连接,服务器便为自己随机分配一个数
据通道端口,并将这个端口号告诉客户端程序(通常格式为 Entering Passive Mode (A1,
A2, A3, A4, P1,P2,其中 A1,A2,A3,A4 为服务器 IP 地址,P1,P2 为随机端口号)。
当需要传送数据时,客户端程序采用另一个随机端口向服务器提供的数据通道端口发送
连接请求,请求被接受之后便开始传输数据,数据链路通道也就打开了。在这个方式中,
由于服务器端在建立数据连接时,被动接受客户端的连接请求,因此称为被动方式。
被动方式,由于两个连接都由客户端发起,对于防火墙来说,一般不限制这样的访问,
因此解决了防火墙内无法进行 FTP 的问题。
FTP 被动模式分析
1、 网络拓扑