在 Debian 上 vsftpd 无法启动,通常可以按下面步骤逐步排查和解决。
sudo systemctl status vsftpd
sudo journalctl -xeu vsftpd
或者尝试前台运行(能看到直接报错):
sudo /usr/sbin/vsftpd /etc/vsftpd.conf
常见错误会直接显示在这里。
vsftpd 对配置非常严格。
检查配置:
sudo vsftpd /etc/vsftpd.conf &
若直接退出,通常是配置问题。
常见错误:
listen = YES)YES/NO✅ 正确示例:
listen=YES
anonymous_enable=NO
local_enable=YES
write_enable=YES
如果同时启用了 listen=YES 和 listen_ipv6=YES,会冲突。
解决:
listen=YES
listen_ipv6=NO
或修改后重启:
sudo systemctl restart vsftpd
某些环境不支持 IPv6。
编辑配置:
sudo nano /etc/vsftpd.conf
改为:
listen_ipv6=NO
listen=YES
vsftpd 不能以 root 运行某些目录
检查:
ls -ld /var/ftp
若使用匿名目录,确保:
sudo chown root:root /var/ftp
sudo chmod 755 /var/ftp
查看是否被拦截:
sudo aa-status
临时测试:
sudo systemctl stop apparmor
sudo systemctl restart vsftpd
which vsftpd
dpkg -l | grep vsftpd
重装:
sudo apt update
sudo apt install --reinstall vsftpd
listen=YES
listen_ipv6=NO
anonymous_enable=NO
local_enable=YES
write_enable=YES
然后:
sudo systemctl restart vsftpd
sudo ufw allow 21/tcp
被动模式还需:
pasv_min_port=30000
pasv_max_port=31000
并放行端口。
systemctl status vsftpd 无报错listen 和 listen_ipv6 不冲突如果你愿意,可以把 systemctl status vsftpd 或 journalctl 的报错内容 发出来,我可以直接帮你定位具体原因。