在 FTP 服务器中,为什么服务器应该打开一个端口而不是客户端?

In an FTP server, why should server open a port and not the client?

当客户端想从FTP服务器下载东西时,服务器会打开一个端口并将其提供给客户端以连接到服务器。我的问题是,为什么客户自己不这样做? (实际上在这个问题中我们讨论的是本地主机中的客户端和服务器)

实际上FTP有一个active和一个passive模式。在 active 模式下,客户端打开一个端口 m,服务器连接到该端口。许多客户端虽然在防火墙后面并且不能接受传入连接,因此过程相反。

您可以在 Wikipedia 上阅读有关 FTP 及其模式的更多信息。

感谢 Rezart Qelibari,在这种情况下,因为客户端(我)在防火墙后面并且无法接受传入的 TCP 连接,所以可以使用被动模式。在这种模式下,客户端使用控制连接向服务器发送PASV命令,然后从服务器接收服务器IP地址和服务器端口号。