根据RFC 文档:
文件传输协议规范假设底层网络协议使用 32 位网络地址(具体来说是 IP 版本 4)。随着 Internet 协议版本 6 的部署,网络地址将不再是 32 位。本文指定了 FTP 扩展,使该协议可以在 IPv4 和 IPv6 上运行。
如果服务器支持EPSV
和EPRT
命令,那么我们为什么要使用原始的PASV
和PORT
命令呢?我们总是可以使用扩展命令本身。
我可以看到 FileZilla 使用PASV
而不是EPSV
。
答案1
如果服务器支持 EPSV 或 EPRT,理论上没有理由使用 PASV 或 PORT,因为 EPSV 和 EPRT 已经可以实现必要的功能。
但是,一开始可能并不清楚服务器是否支持这些扩展命令。此外,客户端和服务器之间的防火墙或 NAT 设备中可能存在一些 FTP 帮助程序,它们会根据这些命令和响应中给出的端口动态处理状态。而且这个帮助程序可能不理解扩展命令。
因此,继续对 IPv4 流量使用仅限 IPv4 的命令可能会很有用,以避免与旧设备可能出现的互操作性问题。