根据FTP协议的工作原理和网络连接机制,FTP主动模式(Active Mode)与被动模式(Passive Mode)的主要区别如下所示:
对比表格
对比维度 主动模式 (Active Mode) 被动模式 (Passive Mode)
连接发起方 服务器主动向客户端发起数据连接 客户端主动向服务器发起数据连接
控制连接端口 服务器21端口(固定) 服务器21端口(固定)
数据连接端口 服务器使用20端口(固定)发起连接 服务器随机开放高端端口(>1024)等待连接
防火墙友好性 客户端需开放随机高端端口(易被拦截) 仅需服务器开放高端端口(更易配置)
典型场景 客户端无防火墙限制(如内网环境) 客户端有防火墙/NAT(如公网环境)
核心差异详解
连接流程区别
主动模式
graph LR
A[客户端] –>|1.控制连接| B(服务器21端口)
B –>|2.发送PORT命令| A
B –>|3.数据连接| C[客户端随机高端端口]
被动模式
graph LR
A[客户端] –>|1.控制连接| B(服务器21端口)
B –>|2.发送PASV响应| A
A –>|3.数据连接| C[服务器随机高端端口]
防火墙影响
主动模式要求客户端开放随机端口,可能被企业防火墙拦截。
被动模式只需服务器开放端口范围,更适应现代网络环境。
协议指令
主动模式使用 PORT 命令声明客户端端口。
被动模式使用 PASV 命令请求服务器端口信息。
选择建议
优先被动模式:适用于客户端位于防火墙/NAT后的场景(如家庭网络、企业办公环境)。
特殊场景主动模式:需客户端与服务器直连且无端口限制(如服务器与客户端同在内网)。
📌 补充说明:现代FTP客户端(如FileZilla)默认使用被动模式,若遇到传输失败可尝试切换模式解决防火墙兼容问题。