这里把我安装vsftpd遇到的问题做一个笔记,这里出现的问题应该比较全面的了,本文都是以centos系统为例:
一、主动模式PORT和被动模式pasv 出现的访问
停留在Entering Passive Mode (220,248,xx,xx,179,151) 模式情况
1、修改 vsftpd.conf 配置文件,可以在最后添加
pasv_enable=YES
pasv_min_port=65000
pasv_max_port=65100
2、防火墙里开放 65000:65100 之间的端口
iptables -L -n 查看防火墙状态
修改添加防火墙配置文件 vi /etc/sysconfig/iptables
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 21 -j ACCEPT(允许21端口通过防火墙)
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 65000:65100 -j ACCEPT(设置ftp被动模式的端口范围)
/etc/init.d/iptables restart 或者 service iptables restart 重启防火墙
service vsftpd rstart * 这个相当重要。必须Restart一下。
二、如果生成虚拟用户数据文件的时候出现以下错误
users.db-bash: db_load: command not found
记得安装db工具,执行以下命令:yum install db4 db4-utils
生成db文件,源文件最后一行必须为回车行,就是最后空一行
三、500 OOPS: cannot change directory:/xxxxLogin failed.
一般都是因为SELinux 阻止导致的,首先查看 SELinux 的状态: sestatus -b | grep ftp 确切地说,只是查看了ftp的状态。其他状态可以sestatus -v查看
在出现的结果中可以看到
allow_ftpd_anon_write on
allow_ftpd_full_access on
allow_ftpd_use_cifs off
allow_ftpd_use_nfs off
allow_tftp_anon_write off
ftp_home_dir on
ftpd_connect_db off
ftpd_disable_trans on
ftpd_is_daemon on
httpd_enable_ftp_server off
tftpd_disable_trans off
可以使用命令setsebool allow_ftpd_full_access 1或者setsebool -P ftpd_disable_trans on 打开开关
按照以上内容打开即可
service vsftpd rstart * 这个相当重要。必须Restart一下。
四、500 OOPS: failed to open xferlog log file:/var/log/xferlog
解决方法:rm -f /var/log/xferlog or mv
然后,service vsftpd restart.
五、553 Could not create file
一般都是SELinux的问题,设置SELinux的一个值,重启服务器即可。
setsebool -P ftpd_disable_trans 1
service vsftpd restart
六、虚拟用户上传后默认权限为:600,用户无法下载文件
在配置文件中添加或修改anon_umask项的值。如anon_umask=022或000
七、vsftd上传大文件的时候出现连接中断、连接被同位体重置、卡住或者断断续续等
这时候可以尝试更换ftp上传工具,本人改用filezilla3.53解决问题。
八、在windows上使用filezilla3.53上传中文名称的文件出现乱码
只需要在站点管理-字符集设置为GB2312就可以了
(责任编辑:ken)