ProFTPD 服务器 - 多个端口,相同的 IP 地址

ProFTPD 服务器 - 多个端口,相同的 IP 地址

我在使用 ProFTPD 服务器时遇到了问题,因为当多个端口处于活动状态(IP 地址相同)时,我无法将其设置为正常工作。

在我的 proftpd.conf 文件中,我添加了以下部分:

<VirtualHost 0.0.0.0>
    Port                        2122
    Umask                       022
    ServerName                  "Example"
    DefaultRoot                 /home/usr1/www/example1
    UserAlias                   fuser usr1

    # Valid LOGINs
    <Limit LOGIN>
        AllowUser usr1
        DenyALL
    </Limit>
</VirtualHost>

因此,当我尝试建立与端口 21 的连接时,一切正常,并且我得到了目录列表。但是当我尝试建立与端口 2122 的连接时,它连接了,但我得到了一个错误500 非法 PORT 命令在最后。

在Linux防火墙中端口21和2122是打开的。

这是我执行时得到的结果netstat -lpn | grep ftp

tcp6       0      0 :::2122                 :::*                    LISTEN      30597/proftpd: (acc
tcp6       0      0 :::21                   :::*                    LISTEN      30597/proftpd: (acc

现在,我不确定这个虚拟服务器可能哪里出了问题,以及为什么我最后无法获得目录列表。

重点是,我需要两个 FTP,因为一些用户应该连接到第一个,一些用户应该连接到第二个。每个 FTP 都有自己的主目录。

如果需要,我可以提供完整的 proftpd.conf 文件。

答案1

FTP 服务器有被动和主动模式,对于主动模式,您需要打开一个端口范围。在主动模式下,FTP 服务器会打开一个随机端口进行数据传输,然后客户端会连接到该随机端口。如果您的防火墙阻止了此端口,则目录列表和数据传输将失败。

在被动模式下,客户端打开新端口,然后通知服务器连接该端口进行数据传输。被动模式不适用于所有路由器,客户端可能无法打开端口进行数据传输。

解决方案:打开一个端口范围(例如 1500 到 2000),然后配置您的 FTP 服务器以使用这些端口。

http://slacksite.com/other/ftp.html

相关内容