以下是Debian系统vsftpd故障的排查步骤:
检查服务状态
sudo systemctl status vsftpd
查看服务是否运行,是否有错误提示。
查看日志文件
sudo tail -n 50 /var/log/vsftpd.log
sudo journalctl -xe
分析日志中的错误信息,定位问题根源。
检查配置文件
sudo vsftpd -t
listen=YES
(启用监听)local_enable=YES
(允许本地用户登录)write_enable=YES
(允许上传)chroot_local_user=YES
(限制用户主目录,需确保目录权限正确)sudo chown root:root /etc/vsftpd.conf
sudo chmod 644 /etc/vsftpd.conf
排查权限问题
/home/ftpuser
):sudo chown -R ftpuser:ftpuser /path/to/ftp/directory
sudo chmod -R 755 /path/to/ftp/directory
sudo setsebool ftpd_disable_trans 1
sudo setsebool ftp_home_dir 1
检查防火墙设置
确保开放FTP端口(默认21)及被动模式端口范围:
sudo ufw allow 21/tcp
sudo ufw allow [start-port]-[end-port]/tcp # 被动模式需额外端口
处理端口冲突
检查端口21是否被占用:
sudo netstat -tuln | grep :21
若冲突,修改/etc/vsftpd.conf
中的listen_port
并重启服务。
验证软件包和依赖
更新软件源并重新安装vsftpd:
sudo apt-get update
sudo apt-get install --reinstall vsftpd
调试模式(可选)
在配置文件中启用调试选项,重启后查看详细日志:
xferlog_enable=YES
connect_from_port_20=YES
xferlog_std_format=YES
常见错误示例:
chown
和chmod
修正。/etc/vsftpd.conf
中的userlist_enable
及用户是否在允许列表中。write_enable=YES
并确保目录权限为755或775。若问题仍未解决,可参考vsftpd官方文档或在社区论坛提供具体错误日志进一步排查。