FTP 服务器主动模式

FTP 服务器主动模式

我想从 Slackware 客户机上的 ftp 客户端连接到在 Windows 7 主机上运行的 FileZilla ftp 服务器。我可以成功登录pwd cd等。当模式为被动时,我可以lsget但是当模式为主动(被动 == 关闭)时,我得到了以下结果:

150 Opening data channel for directory listing of "/DNS"
425 Can't open data connection for transfer of "/DNS"
ABOR
226 ABOR command successful

为什么主动模式不起作用?该怎么做才能使其工作?我在 NAT 网络模式下运行 VirtualBox,并启用了端口转发。

答案1

主动和被动模式的通信方式不同。

在被动模式下,您的计算机连接到端口 21,然后与服务器建立第二个出站连接以传输数据。

在主动模式下,您的计算机连接到服务器上的端口 21,然后服务器从端口 20 与您的计算机进行通信。

这一切都意味着被动模式更容易编程,因为简单的防火墙和 NAT 网关往往允许任何东西离开网络,但只允许相关连接返回。在主动模式连接的情况下,路由器需要进行连接跟踪以关联这两个连接,而这是失败的。您几乎肯定会遇到这个问题。

除了端口转发之外,您还需要加载连接跟踪(可能还有 FTP 连接跟踪)模块。这将取决于您的主机操作系统,但在 Linux 下可能是 nf_conntrack_ftp 或 nf_nat_ftp。

相关内容