在 Ubuntu 上用 vsftpd 时“报错”原因很多,下面按最常见场景 + 对应报错现象 + 解决办法给你梳理一下,你对照看看是哪一种。
Job for vsftpd.service failed可能原因:
排查
sudo systemctl status vsftpd
sudo journalctl -xe
常见解决
编辑 /etc/vsftpd.conf:
listen=YES
# listen_ipv6=YES # 如果有这个,注释掉
然后:
sudo systemctl restart vsftpd
530 Login incorrect原因:
检查
local_enable=YES
如果是虚拟用户,需要:
guest_enable=YES
guest_username=ftp
500 OOPS: vsftpd: refusing to run with writable root inside chroot()这是非常经典的错误。
原因:
解决(二选一)
✅ 推荐:
allow_writeable_chroot=YES
或限制目录权限:
sudo chmod a-w /home/ftpuser
原因:
配置
pasv_enable=YES
pasv_min_port=30000
pasv_max_port=31000
防火墙
sudo ufw allow 20:21/tcp
sudo ufw allow 30000:31000/tcp
云服务器还要开安全组。
sudo aa-status | grep vsftpd
临时测试:
sudo systemctl stop apparmor
如果你能告诉我:
vsftpd.conf 关键配置我可以直接帮你定位到具体那一行配置错了。