调试 Debian 上的 FTP 服务器(通常是 vsftpd、proftpd 或 pure-ftpd)时,建议按“从外到内”的思路排查。下面以最常见的 vsftpd 为主,兼顾通用方法。
systemctl status vsftpd
如果没启动:
systemctl start vsftpd
systemctl enable vsftpd
查看端口是否监听:
ss -tlnp | grep 21
# 或
netstat -tlnp | grep 21
/var/log/vsftpd.log
/var/log/syslog
实时查看:
tail -f /var/log/vsftpd.log
tail -f /var/log/syslog
常见错误示例:
connection refused → 服务没起 / 端口不对530 Login incorrect → 用户或密码 / PAM 问题500 OOPS → 配置错误Permission denied → 目录权限问题ftp localhost
或:
ftp 服务器IP
如果本地能连、远程不能连 → 防火墙 / 网络问题
iptables -L -n
# 或
ufw status
允许 FTP:
ufw allow 21/tcp
vsftpd 需要被动端口范围:
pasv_min_port=30000
pasv_max_port=31000
防火墙放行:
ufw allow 30000:31000/tcp
并在 /etc/vsftpd.conf 中:
pasv_enable=YES
pasv_address=你的公网IP
local_enable=YES
write_enable=YES
chroot_local_user=YES
allow_writeable_chroot=YES
检查:
/etc/pam.d/vsftpd
用户是否锁定:
passwd -S 用户名
Debian 通常 不用 SELinux,但如果你启用了:
getenforce
临时前台运行:
vsftpd /etc/vsftpd.conf
会直接输出错误信息,非常适合排查配置错误。
如果你愿意,可以:
我可以直接帮你定位到具体配置行。