在 Debian 上排查 FTP Server 问题,通常可以按下面几个层次来一步一步来。下面以最常见的 vsftpd为例,如果你用的是 proftpd / pure-ftpd 也可以类比。
dpkg -l | grep ftp
常见服务名:
systemctl status vsftpd
或
service vsftpd status
如果没启动:
systemctl start vsftpd
systemctl enable vsftpd
FTP 默认端口:
查看监听:
ss -tulnp | grep -E ':21|:20'
或
netstat -tulnp | grep ftp
如果没监听 21:
tail -f /var/log/syslog
vsftpd 专用日志(如果开启):
tail -f /var/log/vsftpd.log
常见错误示例:
connection refused → 服务没起 / 端口不对login failed → 用户/密码/权限问题refused to connect → 防火墙 / PASV 问题iptables -L -n
或(ufw):
ufw status
FTP 需要:
开放示例:
ufw allow 21/tcp
ufw allow 30000:31000/tcp
vim /etc/vsftpd.conf
确保有:
pasv_enable=YES
pasv_min_port=30000
pasv_max_port=31000
pasv_address=你的公网IP
改完重启:
systemctl restart vsftpd
客户端建议先用被动模式连接。
id ftpuser
grep ftpuser /etc/passwd
shell 不能是 /sbin/nologin 除非配置允许
ls -ld /home/ftpuser
FTP 用户必须对目录有读写权限。
local_enable=YES
write_enable=YES
chroot_local_user=YES
allow_writeable_chroot=YES
anonymous_enable=NO # 建议关闭
ftp localhost
或
ftp 服务器IP
看是否能:
✅ 服务是否运行
✅ 端口是否监听
✅ 防火墙是否放行
✅ 被动模式是否配置
✅ 日志有无报错
✅ 用户权限是否正确
如果你愿意,可以把具体报错信息 + vsftpd.conf 配置 + 客户端现象发出来,我可以直接帮你定位是哪一步的问题。