乐闻世界logo
搜索文章和话题

主动FTP和被动FTP有什么区别?

1 个月前提问
1 个月前修改
浏览次数9

1个答案

1

主动FTP(Active FTP)和被动FTP(Passive FTP)的主要区别在于数据连接的建立方式不同,这影响了它们如何与防火墙和NAT设备协作。

主动FTP(Active FTP)

在主动模式下,客户端从一个随机的非特权端口(端口号大于1023)连接到FTP服务器的命令端口(端口21)。在连接建立后,客户端会监听一个随机端口,并通过命令通道向服务器发送这个端口号,请求服务器从端口20(FTP服务器的数据端口)连接到该端口。服务器接收到这个端口号后,从其端口20发起到客户端指定端口的连接。

示例:

  1. 客户端连接到服务器的21端口。
  2. 客户端选择一个随机端口(比如5001)并告诉服务器。
  3. FTP服务器从其20端口连接到客户端的5001端口。

被动FTP(Passive FTP)

在被动模式下,客户端仍然从一个随机的非特权端口连接到服务器的命令端口(21)。但是,建立数据连接的方式不同。客户端会发送一个PASV命令给服务器,服务器随机选择一个端口,通知客户端,然后在这个端口上监听。客户端收到端口号后,从另一个随机端口发起连接到服务器的这个随机端口。

示例:

  1. 客户端连接到服务器的21端口。
  2. 客户端发送PASV命令给FTP服务器。
  3. 服务器选择一个随机端口(比如5010)并通知客户端。
  4. 客户端从另一个随机端口(比如5002)连接到服务器的5010端口。

主要区别总结

  • 防火墙和NAT的友好性: 被动FTP通常更适合客户端位于防火墙或NAT背后的情况,因为它允许客户端发起两个出站连接,避免了服务器向客户端发起入站连接的需要。
  • 数据连接的发起者: 在主动模式中,服务器向客户端发起数据连接。而在被动模式中,客户端发起所有连接。

在实际应用中,被动FTP因其更高的兼容性和通过现代防火墙的能力而更常被使用。

2024年8月5日 02:15 回复

你的答案