我在使用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>
所以,当我试图build立连接到端口21,一切都好,我得到目录列表。 但是,当我尝试build立连接到端口2122,它连接,但我得到一个错误500非法端口命令在最后。
在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文件。
在FTP服务器中有被动和主动模式,对于主动模式你需要打开一个端口范围。 在主动模式下,FTP服务器打开一个随机端口进行数据传输,然后客户端连接到随机端口。 如果您的防火墙阻塞此端口,则目录列表和数据传输将失败。
在被动模式下,客户端打开新端口,然后通知服务器连接它进行数据传输。 被动模式不适用于所有的路由器,客户端可能无法打开数据传输器的端口。
解决scheme:打开一个端口范围(例如1500到2000),然后configuration您的FTP服务器使用这些端口。