在 Ubuntu 上排查 vsftpd(Very Secure FTP Daemon) 问题,可以按下面系统化的思路来排错。
dpkg -l | grep vsftpd
未安装则:
sudo apt update
sudo apt install vsftpd
systemctl status vsftpd
常见状态:
active (running) ✅failed ❌(看日志)启动 / 重启:
sudo systemctl restart vsftpd
journalctl -u vsftpd -xe
或
tail -n 50 /var/log/syslog
在 /etc/vsftpd.conf 中:
xferlog_enable=YES
xferlog_file=/var/log/vsftpd.log
查看:
tail -f /var/log/vsftpd.log
可能原因:
检查端口:
sudo netstat -tulnp | grep ftp
或
ss -tulnp | grep ftp
防火墙(UFW):
sudo ufw allow 20/tcp
sudo ufw allow 21/tcp
常见原因:
检查配置:
local_enable=YES
write_enable=YES
如仍不行,查看:
tail /var/log/auth.log
通常是 SELinux / 权限 / 家目录问题
Ubuntu 默认无 SELinux,但注意:
ls -ld /home/username
用户家目录不能被其他用户写:
chmod 755 /home/username
客户端能登录但不能列目录。
在 /etc/vsftpd.conf:
pasv_enable=YES
pasv_min_port=40000
pasv_max_port=50000
防火墙:
sudo ufw allow 40000:50000/tcp
chroot_local_user=YES
allow_writeable_chroot=YES
否则会报:
500 OOPS: vsftpd: refusing to run with writable root inside chroot()
sudo vsftpd /etc/vsftpd.conf
(前台运行,直接看错误)
listen=YES
anonymous_enable=NO
local_enable=YES
write_enable=YES
chroot_local_user=YES
allow_writeable_chroot=YES
pasv_enable=YES
pasv_min_port=40000
pasv_max_port=50000
✅ 服务运行
✅ 端口开放
✅ 日志无报错
✅ 用户权限正确
✅ 被动端口开放
✅ chroot 配置合理
如果你愿意,可以把:
vsftpd.confsystemctl status vsftpd 输出贴出来,我可以直接帮你定位问题。