之前在VPS上也使用VSFTPD做ftp服务器,非常简单的配置,就能使用了。但VPS是最小化的CentOS,我当前的是完整安装centos5.5,出现许多预想不到问题:
1、防火墙下被动模式随机端口的问题
2、ftp登录出现500 OOPS: cannot change directory的错误
问题一解决办法
修改/etc/vsftpd/vsftpd.conf的配置文件,在文件末端添加
pasv_max_port=6666
pasv_min_port=5555
然后将这两个端口范围添加到IPTABLES中,亦即vi /etc/sysconfig/iptables修改IPTABLES的配置文件,在其中添加
-I INPUT -p tcp --dport 5555:6666 -j ACCEPT
-I OUTPUT -p tcp --sport 5555:6666 -j ACCEPT
重启防火墙/etc/init.d/iptables restart,就OK了
iptables -nL查看防火墙规则
问题二解决办法
无法切换目录的原因,又让我涨知识了。原来,centos的完整安装里,默认安装了SELinux,这个又是什么东东,原来是一种文件安全模式。
更多关于SeLinux的知识,可以查看SELinux是什么?SELinux简介
运行:setsebool ftpd_disable_trans 1
再重启vsftpd,/etc/init.d/vsftpd restart ,就OK了
如果希望这个设置在重启后仍然有效,可以使用setsebool –P ftpd_disable_trans 1
修改默认端口 /etc/vsftpd/vsftpd.conf里加listen_port=xxx