Debian 上 vsftpd(Very Secure FTP Daemon) 报错的原因很多,下面我按最常见场景给你系统梳理一下,并给出排查思路。你可以对照看看属于哪一类。
vsftpd 对配置文件非常敏感,一个拼写错误就起不来。
典型报错:
vsftpd: error parsing config file
检查方式:
vsftpd -olisten=NO /etc/vsftpd.conf
或:
systemctl status vsftpd
journalctl -xe
✅ 解决建议:
/etc/vsftpd.confYES
NO
报错示例:
500 OOPS: could not bind listening IPv4 socket
原因:
排查:
ss -lntp | grep 21
解决:
systemctl stop proftpd
systemctl disable proftpd
或改端口:
listen_port=2121
典型报错:
500 OOPS: cannot change directory
原因:
解决:
chmod 755 /home/ftpuser
如果是虚拟用户:
chown root:root /home/ftpuser
报错:
530 Login incorrect
原因:
/etc/pam.d/vsftpd 配置错误检查:
cat /etc/passwd | grep ftpuser
如果用户 shell 是:
/bin/false
/usr/sbin/nologin
✅ 解决:
chsh -s /bin/bash ftpuser
或允许 nologin(不推荐):
check_shell=NO
现象:
EAI_NONAME解决(Debian 常用):
pasv_enable=YES
pasv_min_port=30000
pasv_max_port=31000
防火墙放行:
ufw allow 30000:31000/tcp
报错:
500 OOPS: priv_sock_get_cmd
排查:
aa-status
临时关闭测试:
systemctl stop apparmor
✅ 正确做法:
修改 /etc/apparmor.d/usr.sbin.vsftpd
systemctl status vsftpd
journalctl -u vsftpd -n 50
ss -lntp | grep 21
vsftpd -olisten=NO /etc/vsftpd.conf
请把以下信息发我(越全越好):
cat /etc/debian_version
我可以直接帮你逐行改配置,保证能跑 ✅