在 Debian 上排错 FTP Server(常见如 vsftpd、proftpd、pure-ftpd),可以按下面思路系统排查。
dpkg -l | grep -E "vsftpd|proftpd|pure-ftpd"
systemctl status vsftpd
# 或
systemctl status proftpd
如果没运行:
systemctl start vsftpd
systemctl enable vsftpd
/etc/vsftpd.conf
listen=YES
anonymous_enable=NO
local_enable=YES
write_enable=YES
chroot_local_user=YES
修改后重启:
systemctl restart vsftpd
tail -f /var/log/vsftpd.log
# 或
journalctl -u vsftpd -f
tail -f /var/log/auth.log
常见错误:
530 Login incorrect → 用户名/密码或 PAM 问题500 OOPS: chroot → 目录权限问题Permission denied → 文件系统权限ufw status
开放 FTP:
ufw allow 20/tcp
ufw allow 21/tcp
如果是 被动模式(PASV),还需开放被动端口范围(vsftpd 示例):
pasv_min_port=30000
pasv_max_port=31000
ufw allow 30000:31000/tcp
pasv_address=公网IP
否则客户端会卡在:
读取目录失败 / 连接超时
id ftpuser
chmod 755 /home/ftpuser
⚠️ chroot 目录下 不能可写(vsftpd 安全要求)
Debian 通常不用 SELinux,如果是特殊情况:
getenforce
ftp localhost
ftp -p localhost
| 现象 | 原因 |
|---|---|
| 530 Login incorrect | 用户/PAM/密码 |
| 500 OOPS chroot | 目录权限 |
| 连接超时 | 防火墙/PASV |
| 能登录不能列目录 | 被动端口 |
| 上传失败 | write_enable |
如果你能告诉我:
我可以给你更精准的排错步骤。