我原来的问题:FTP 客户端/服务器在切换到 PASV 模式时失败
基于此,我想知道是否/如何打开从使用 Dual-Stack Lite 的 ISP 网络内的计算机到只能通过 IPv4 访问的 FTP 服务器的 FTP 连接。
显然,被动 FTP 不起作用,但主动 FTP 会起作用吗(如果我在所有者的路由器上添加了端口转发)?
我原来的问题:FTP 客户端/服务器在切换到 PASV 模式时失败
基于此,我想知道是否/如何打开从使用 Dual-Stack Lite 的 ISP 网络内的计算机到只能通过 IPv4 访问的 FTP 服务器的 FTP 连接。
显然,被动 FTP 不起作用,但主动 FTP 会起作用吗(如果我在所有者的路由器上添加了端口转发)?
Dual-Stack Lite 是一种 NAT 解决方案。主动模式要求服务器可以直接访问客户端(例如,两者之间没有地址转换),因此如果客户端位于任何类型的 NAT 之后,它将无法工作。被动模式要求客户端可以直接访问服务器,因此如果服务器位于 NAT 之后,则无法工作。
更糟糕的是,如果双方都在 NAT 之后,FTP 将根本无法工作,除非这些 NAT 解决方案包含重写 FTP 流量的助手。一种解决方法是使用不使用任何动态端口的协议(如 ssh/scp/sftp)或在本地和 FTP 服务器网络之间使用 VPN,这样它们就可以在没有 NAT 的情况下相互访问。
如果您可以限制客户端(主动模式)或服务器(被动模式)使用的分配端口范围并为整个范围建立端口转发,则简单端口转发可能会起作用。此外,客户端(主动模式)或服务器(被动模式)不得在 PORT 命令或对 PASV 的响应中发送自己的 IP 地址,而是对等方可见的公共 IP 地址。是否以及如何在客户端/服务器端配置所有这些取决于特定的客户端/服务器。
即使使用树莓派和德国服务 feste-ip.net 的双栈精简版,也有一种连接到家庭网络的解决方案。如果您想学习如何操作,请阅读我网页上的(德语)博客条目。
假设您的意思是服务器位于公共 IPv4 互联网上,而客户端位于 DS-Lite 之后。
被动模式可以正常工作。客户端可以连接到服务器上的任何端口。
只有当 AFTR 中的 NAT 知道 FTP 并为其做出特殊规定时,主动模式才会起作用。
这在概念上与传统的 NAT44 没有什么不同。然而实际上 DS-Lite 是非常新的,而 NAT44 已经存在很多年了。因此,找到一个能够理解和翻译活动 FTP 的 AFTR 实现可能比找到一个能够理解和翻译活动 FTP 的 NAT44 实现更难。