在 Ubuntu 上调试 FTP 服务器(常见的是 vsftpd,也可能是 proftpd / pure-ftpd),可以按下面思路逐步排查。
which vsftpd
# 或
dpkg -l | grep vsftpd
systemctl status vsftpd
如果没有运行:
sudo systemctl start vsftpd
sudo systemctl enable vsftpd
sudo tail -f /var/log/vsftpd.log
(如果没有,可能在 /var/log/syslog)
sudo tail -f /var/log/syslog | grep ftp
530 Login incorrect500 OOPS: cannot change directoryConnection refusedsudo ufw allow 21/tcp
sudo ufw status
如果是云服务器,还要在安全组放行 21 和 PASV 端口。
编辑配置文件:
sudo nano /etc/vsftpd.conf
建议打开:
listen=YES
log_ftp_protocol=YES
debug_ssl=YES # 如果用 SSL
xferlog_enable=YES
重启服务:
sudo systemctl restart vsftpd
pasv_enable=YES
pasv_min_port=30000
pasv_max_port=31000
并放行端口:
sudo ufw allow 30000:31000/tcp
ftp localhost
或
lftp localhost
sudo cat /etc/passwd | grep ftpuser
ls -ld /home/ftpuser
避免 777 权限(vsftpd 会拒绝):
chmod 755 /home/ftpuser
chroot_local_user=YES
allow_writeable_chroot=YES
telnet localhost 21
ftp -d localhost
| 现象 | 原因 |
|---|---|
| 530 Login incorrect | 用户被禁 / PAM 问题 |
| 500 OOPS | 目录权限问题 |
| 无法列目录 | 被动端口未开 |
| 连接超时 | 防火墙 / 安全组 |
如果你能告诉我:
我可以帮你精确定位问题。