Debian 下 vsftpd 故障排查步骤
一 服务与端口检查
apt list --installed | grep vsftpd、sudo systemctl status vsftpd、sudo systemctl start vsftpd、sudo systemctl enable vsftpdss -ltnp | grep :21、sudo ufw status、sudo ufw allow 21/tcp、telnet 服务器IP 21 或 nc -vz 服务器IP 21systemctl status vsftpd.service、journalctl -xe、netstat -tulpen | grep :21、sudo vsftpd -t二 配置与权限核查
sudo vsftpd -t、sudo systemctl restart vsftpdlisten=YES、anonymous_enable=NO、local_enable=YES、write_enable=YES、chroot_local_user=YESsudo chown root:root /etc/vsftpd.conf、sudo chmod 644 /etc/vsftpd.confsudo mkdir -p /var/log/vsftpd、sudo chown vsftpd:vsftpd /var/log/vsftpd、sudo chmod 755 /var/log/vsftpd/etc/pam.d/vsftpd 配置是否正确;用户不在 /etc/vsftpd/ftpusers 中;如使用 userlist_enable=YES,核对 userlist_file 与 userlist_deny 的语义。三 被动模式与防火墙
pasv_enable=YES、pasv_min_port=60000、pasv_max_port=61000sudo ufw allow 60000:61000/tcp四 日志分析与常见错误对照
sudo tail -f /var/log/vsftpd.log、sudo journalctl -u vsftpd -f| 现象 | 日志关键词 | 快速检查 | 处理建议 |
|---|---|---|---|
| 连接被拒/超时 | 无响应或连接超时 | `ss -ltnp | grep :21`、云安全组/UFW |
| 530 Login incorrect | “530 Login incorrect” | /etc/pam.d/vsftpd、/etc/vsftpd/ftpusers |
校验用户名密码与 PAM;确保用户不在黑名单 |
| 500 OOPS 配置/权限类 | “500 OOPS: …” | sudo vsftpd -t、配置文件属主/权限 |
修正语法;chown root:root /etc/vsftpd.conf; chmod 644 |
| 无法写入日志 | “cannot open xferlog log file” | /var/log/vsftpd 权限 |
chown vsftpd:vsftpd /var/log/vsftpd; chmod 755 |
| 553 Could not create file | “553 Could not create file” | 家目录与上传目录权限 | 为用户可写目录赋权(如 755/700),避免根目录可写 |
| chroot 后无法登录/切换目录 | “cannot change directory” | chroot_local_user=YES 与目录权限 |
确保用户家目录不可写或按规范设置可写子目录 |
journalctl 排查。五 验证与最小化配置示例
ftp localhost 或 ftp 服务器IP,登录后执行 ls、put/get 测试listen=YES、anonymous_enable=NO、local_enable=YES、write_enable=YES、chroot_local_user=YES、pasv_enable=YES、pasv_min_port=60000、pasv_max_port=61000sudo systemctl restart vsftpd && sudo systemctl status vsftpd