前几天在CentOS里面安装了pure-ftpd作为FTP服务端。结果今天用FileZilla进行连接的时候(使用的是被动连接PASV模式)发现停在MLSD命令处,然后显示无法列出目录的错误。经过一番研究,找到了解决办法。

这个问题的原因是:pure-ftpd和CentOS防火墙iptables配置有问题。

首先看pure-ftpd的配置,vi打开conf文件,找到下面的一行,取消注释,修改pure-ftpd被动连接的端口。

PassivePortRange          30000 50000

然后保存退出,重启pure-ftpd服务。

再运行下面的命令在防火墙中打开上述PASV端口。

 iptables -I INPUT 2 -p tcp --dport 30000:50000 -j ACCEPT iptables -I INPUT 2 -p udp --dport 30000:50000 -j ACCEPT

然后运行一下iptables -L查看一下FTP端口是否打开,如果没打开,运行下面的命令:

 iptables -I INPUT 2 -p tcp --dport 21 -j ACCEPT iptables -I INPUT 2 -p udp --dport 21 -j ACCEPT

好了,再用客户端连接一下看看吧。