FTP 有主动和被动两种运行模式。主动模式是 FTP 最早的运行方式,但如今大多数连接都通过被动 FTP 方式进行。那么什么是被动和主动 FTP?它们有什么区别?哪一种更安全、更容易设置?我们在这里尝试回答了关于主动与被动 FTP 的所有常见问题。让我们先从详细的定义开始:
Active FTP 是什么?

比较 FTP 主动和被动模式。主动模式是 FTP 连接的一种较早方法,既有优点也有缺点。在 FTP 连接中,你有一个客户端和一个服务器。这两台计算机通过两个端口连接。一个称为命令端口,另一个称为数据端口。服务器和客户端必须决定用哪个端口号相互连接。以下是主动模式的工作流程(粗略版):
- 客户端使用随机端口向服务器的 21 端口发送命令(PORT 命令)。这个命令告诉服务器应该连接到客户端的哪个数据端口。
- 服务器使用 20 端口连接该端口并建立连接。
这个过程称为主动模式,因为客户端主动指定它希望服务器连接的端口号。在主动 FTP 中,服务器是发起连接的一方,遵循客户端的命令。那么被动 FTP 是什么呢?
Passive FTP 是什么?

被动 FTP 是一种较新的 FTP 模式,被认为更安全、更易使用。与主动 FTP 类似,客户端向服务器的 21 端口发送命令。但这次客户端发送的是 PASV 命令。然后服务器决定它想接收数据的端口。最后客户端发起连接。
流程如下:
- 客户端使用随机端口向服务器的 21 端口发送命令(PASV 命令)。
- 服务器通过指定它想使用的数据端口来响应(这是一个随机端口)。
- 客户端使用随机端口向服务器指定的端口发送数据。
注意服务器的数据端口现在也是随机选择的。因此在被动 FTP 中,21 端口仍然用作服务器的命令端口,但服务器的数据端口现在是随机的(而不是仅为 20 端口)。
还要注意,客户端是两个端口连接的发起者。
FTP 主动与被动的区别

如前所述,主要区别在于,在主动 FTP 中,服务器发起数据连接,而在被动 FTP 中,是客户端发起数据连接。这会导致一些对数据传输的安全性和便利性很重要的变化。下面是详细说明:
主动式 FTP 与被动式 FTP 在安全性中的对比
主动 FTP 始终使用 21 端口(命令)和 20 端口(数据)传输信息。这意味着如果有人试图入侵你的网络,他们已经知道要针对哪些端口。
在被动 FTP 中,服务器端的数据端口是随机的。所以虽然你仍然使用 21 端口用于命令,但实际的数据传输更难被拦截。
另一方面,要使用被动模式,服务器需要打开更多端口,因为数据端口这次是随机的。这可能会给服务器造成一些安全漏洞。服务器管理员通常会限制开放端口的范围,以减少被攻击者利用的可能性。
需要远程桌面吗?
可靠的高性能 RDP 服务器,正常运行时间达 99.95%。在美国、欧洲和亚洲的主要城市中随时随地使用你的桌面。
获取 RDP 服务器主动 FTP 与被动 FTP 的防火墙问题
如你所知,防火墙在网络连接中可能成为问题所在。防火墙的作用是阻止来自未知端口的任何连接尝试。这个问题在客户端防火墙上更为严重,因为服务器防火墙通常会对来自未知端口的连接更加开放。
在 Active FTP 中,客户端通过随机端口接收来自服务器的连接。因此客户端的防火墙可能会阻止该连接。
在被动 FTP 模式中,客户端负责建立两个连接。这样就能轻松穿过客户端的防火墙,不会出现问题。服务器的防火墙仍然可能造成阻碍,因为这次数据端口是随机的。但通常这不是大问题,因为服务器防火墙本身就配置为接受更多未知连接,比客户端电脑的防火墙限制更宽松。
FTP 主动模式和被动模式中的命令通道和数据通道是什么?
总结一下,命令通道和数据通道的流程是这样的:
- 主动模式下,客户端的命令端口和数据端口都是随机的。服务器的命令通道使用端口 21,数据通道使用端口 20。
- 被动模式下,客户端的命令端口和数据端口都是随机的。服务器的命令通道使用 Port 21,数据通道也是随机的。
如需被动模式下使用端口 20 作为数据通道也可以,或者你可以限制通道只使用某个端口范围。
为什么选择主动 FTP 而不是被动?
比较 FTP Active 和 Passive 两种模式,开发者倾向于选择 Active FTP 主要有两个原因。其一是服务器安全。Passive FTP 需要在防火墙上开放多个端口,因为数据端口是随机选择的。这样虽然增加了端口识别难度,但也意味着更多的端口暴露在潜在攻击下。
另一个原因是,有时候配置服务器防火墙很麻烦,或者防火墙不在你的控制范围内。因此人们改用主动模式,通过端口 20 来建立连接,这个端口被所有防火墙都认可。
Windows 10 VPS 托管
获得一个高效的 Windows 10 VPS 用于远程桌面,价格最优。免费运行 Windows 10,配置 NVMe SSD 存储和高速互联网。
查看 Windows 10 VPS 方案将 FTP 从主动模式改为被动模式
从主动 FTP 切换到被动 FTP 的方法取决于你使用的软件类型。
要在 FileZilla 中将 FTP 从活跃状态改为被动状态,请按以下步骤操作:
- Open Filezilla
- 从菜单栏选择「编辑」>「设置」。
- 在设置窗口中,转到「连接」,然后选择 FTP。
- Choose ‘Passive (recommended)’ from the Transfer Mode.
- Click on OK.
每个现代 FTP 客户端都有类似的设置。不过如我们前面提到的,在这两种情况下你都可能遇到服务器防火墙的问题,需要进行调整。
命令提示符 FTP 是主动还是被动?
Windows 命令提示符 FTP 行处于活动状态,不支持被动 FTP。您可以使用 WinSCP 或使用其他命令行客户端通过被动模式连接到您的服务器。
Windows 7 FTP 服务器是主动还是被动?
Windows 7 支持多达 7 个用户使用 IIS 等服务。如要使用 Windows 7 作为服务器,您需要 在 Windows 7 上启用 IIS.
IIS 同时支持主动模式和被动模式,无需启用其中任何一种。但你可以在 IIS 中配置被动模式的端口范围。
Also Read: 如何在 Windows 10 上安装 IIS?
网络浏览器使用被动 FTP 还是主动 FTP?
Web浏览器,如 Chrome 和 Firefox 使用操作系统的网络设置来配置 Active 或 Passive FTP。通常 Windows 使用 Passive FTP,因为这是兼容性最好的模式。
要为网络浏览器启用或禁用被动模式,请按照以下步骤操作:
- 按 'WinKey + S' 打开 Windows 搜索。
- Type-in ‘Internet Options’ and click on it.
- 在「Internet 属性」窗口中,切换到「高级」选项卡。
- 向下滚动至浏览部分。
- Check-mark the ‘Use Passive FTP (for firewall…’ option.
- Click OK.
需要远程桌面吗?
可靠的高性能 RDP 服务器,正常运行时间达 99.95%。在美国、欧洲和亚洲的主要城市中随时随地使用你的桌面。
获取 RDP 服务器Conclusion
FTP 主动模式和被动模式建立连接的步骤不同,各有优缺点。选择最适合你的方式就行。本文还解答了关于主动和被动 FTP 的常见问题。