在 Debian 上使用 vsftpd(Very Secure FTP Daemon) 时,常见问题包括无法启动、无法登录、被动模式失败、权限不足等。下面按排错思路 + 常用命令 + 典型问题来说明。
systemctl status vsftpd
或(老版本):
service vsftpd status
如果没启动:
systemctl start vsftpd
journalctl -u vsftpd -xe
vsftpd 对配置错误非常敏感:
vsftpd /etc/vsftpd.conf
若直接前台运行,能看到明确报错
Debian 默认日志位置:
tail -f /var/log/vsftpd.log
如果没有:
tail -f /var/log/syslog | grep vsftpd
可能原因
检查
ss -tlnp | grep :21
若无输出,说明没监听。
防火墙
ufw allow 21/tcp
# 被动端口(如 30000-31000)
ufw allow 30000:31000/tcp
配置文件关键项:
anonymous_enable=NO
local_enable=YES
write_enable=YES
修改后:
systemctl restart vsftpd
检查
ls -ld /home/ftpuser
配置:
write_enable=YES
若使用 chroot:
chroot_local_user=YES
allow_writeable_chroot=YES
常见原因
检查
grep ftpuser /etc/passwd
shell 应为:
/bin/bash 或 /usr/sbin/nologin(需允许)
PAM 文件:
cat /etc/pam.d/vsftpd
症状
解决
在 /etc/vsftpd.conf:
pasv_enable=YES
pasv_min_port=30000
pasv_max_port=31000
pasv_address=你的公网IP
重启服务并开放端口。
Debian 默认无 SELinux,但如有:
setsebool -P ftp_home_dir on
systemctl status vsftpd
journalctl -u vsftpd -xe
ss -tlnp | grep :21
tail -f /var/log/vsftpd.log
vsftpd /etc/vsftpd.conf
listen=YES
anonymous_enable=NO
local_enable=YES
write_enable=YES
chroot_local_user=YES
allow_writeable_chroot=YES
pasv_enable=YES
pasv_min_port=30000
pasv_max_port=31000
如果你愿意,可以把:
vsftpd.conf发出来,我可以帮你精准定位问题。