Debian 上 FTP 服务器登录失败的原因很多,下面按最常见原因 → 排查方法给你一个系统清单。你可根据自己用的 FTP 服务(vsftpd / proftpd / pure-ftpd)逐一对照。
Debian 默认:
/usr/sbin/nologin 或 /bin/false检查
grep ftpuser /etc/passwd
如果看到:
ftpuser:x:1001:1001::/home/ftpuser:/usr/sbin/nologin
vsftpd 默认会拒绝。
解决
chsh -s /bin/bash ftpuser
或
# /etc/vsftpd.conf
local_enable=YES
vsftpd 示例:
local_enable=NO
会导致所有系统用户登录失败。
确认
grep -E "local_enable|anonymous_enable" /etc/vsftpd.conf
ftp localhost
或
lftp -u user 127.0.0.1
验证用户密码
passwd ftpuser
Debian 默认用 AppArmor,一般不会直接拒绝登录,但可能限制目录。
检查:
aa-status
chroot 导致登录失败典型错误:
500 OOPS: vsftpd: refusing to run with writable root inside chroot()
原因
解决
allow_writeable_chroot=YES
或修改目录权限:
chmod a-w /home/ftpuser
anonymous_enable=YES
local_enable=NO
现象:
解决(vsftpd)
pasv_enable=YES
pasv_min_port=30000
pasv_max_port=31000
防火墙:
ufw allow 20:21/tcp
ufw allow 30000:31000/tcp
systemctl status vsftpd
ss -tlnp | grep -E ':21'
/var/log/vsftpd.log
/var/log/auth.log
典型错误示例:
authentication failureUSER ftpuser [192.168.1.10] FAILrefusing to run with writable root/var/log/auth.log如果你愿意,可以直接贴:
我可以帮你精确定位是哪一条导致的登录失败。