![FTP 服务器何时可以关闭其被动连接?](https://linux22.com/image/528298/FTP%20%E6%9C%8D%E5%8A%A1%E5%99%A8%E4%BD%95%E6%97%B6%E5%8F%AF%E4%BB%A5%E5%85%B3%E9%97%AD%E5%85%B6%E8%A2%AB%E5%8A%A8%E8%BF%9E%E6%8E%A5%EF%BC%9F.png)
FTP 协议是否允许服务器在客户端仍处于连接状态时关闭其任何被动连接?它是否可以判断客户端何时完成接收然后关闭连接?
我使用以下方式在我的应用程序中添加一个 FTP 服务器pyftpdlibPython 项目。我让它在主动和被动模式下工作,但我有点担心它何时关闭被动连接。我尝试使用 FileZilla 和 Ubuntu 中的默认 ftp 命令连接到它,在这两种情况下,我都会为每个请求获得一个新的被动端口。也就是说,如果我坐在根文件夹中并输入ls
10 次,我会用掉 10 个端口。这意味着我必须为 FTP 服务器分配一大块被动端口,这样它就不会用完。
一旦客户端断开连接,服务器就会释放与该客户端关联的所有被动连接,这些端口可以重新使用。但是,长时间运行的连接可能会占用大量端口。
答案1
虽然通常可以设置 FTP 空闲超时设置,但您追求的是 TCP 的功能,而不是 FTP 的功能。据我所知,FTP 服务器可以关闭 FTP 会话,但不能关闭 TCP 会话。