文章目录
-
- 一、基本概念
- [二、使用Filezilla server配置被动模式](#二、使用Filezilla server配置被动模式)
- 三、再回顾一下被动模式的步骤
一、基本概念
FTP主动模式(Active Mode)
在主动模式下,客户端通过随机端口N(N > 1023)连接到FTP服务器的21端口(控制端口)。当需要传输数据时,客户端会告知服务器使用另一个随机端口N+1进行数据传输。服务器则从20端口(数据端口)主动连接到客户端的N+1端口。
特点
- 服务器主动发起数据连接
- 可能因客户端的防火墙或NAT导致连接失败
- 适用于服务器信任客户端网络环境的情况
FTP被动模式(Passive Mode)
在被动模式下,客户端通过随机端口N连接到FTP服务器的21端口(控制端口)。当需要传输数据时,服务器会告知客户端一个随机高位端口(P > 1023),客户端随后从端口N+1连接到服务器的P端口进行数据传输。
特点
- 客户端主动发起数据连接
- 适用于客户端位于防火墙或NAT后的情况
- 服务器无需主动连接客户端,减少防火墙干扰
对比总结
特性 | 主动模式 | 被动模式 |
---|---|---|
数据连接方向 | 服务器 → 客户端 | 客户端 → 服务器 |
服务器端口 | 固定20端口(数据) | 随机高位端口 |
适用场景 | 服务器信任客户端网络 | 客户端位于防火墙/NAT后 |
防火墙影响 | 可能被客户端防火墙拦截 | 更易穿透防火墙 |
主要区别
主动模式:服务器主动连客户端。
被动模式:服务告诉客户端,来连我那个端口。
如何选择模式
- 如果客户端位于严格防火墙或NAT后(如家庭网络),优先使用被动模式。
- 如果服务器配置严格,仅允许主动连接(如某些企业内网环境),则使用主动模式。
- 可通过FTP客户端软件(如FileZilla)手动切换模式。
二、使用Filezilla server配置被动模式

如图所示,主要是第3步,被动模式设置成端口区间。这个端口要让防火墙放开,否则客户端会获取不到目录。
假设设置成6003-6010,那服务器的防火墙就要把6003-6010放行。
假设设置成6003-6010,那服务器的防火墙就要把6003-6010放行。
假设设置成6003-6010,那服务器的防火墙就要把6003-6010放行。
假设设置成6003-6010,那服务器的防火墙就要把6003-6010放行。
重要的事情说了4遍了。
三、再回顾一下被动模式的步骤
工作流程:
- 控制连接建立:与主动模式相同,客户端向服务器 21 端口发起控制连接。
- 数据连接建立:
- 客户端发送PASV指令,请求服务器进入被动模式。
- 服务器生成一个随机数据端口 P(通常在 1024-65535 范围内),并告知客户端 "使用端口 P 进行数据传输"。
- 客户端收到后,主动向服务器的端口 P发起连接,用于传输数据。
看到了吗?
如果P端口被防火墙拦住了,那么客户端就会看不到ftp服务中的目录,无法进行文件操作。