以下是Ubuntu vsftpd故障排查核心技巧:
服务状态检查
sudo systemctl status vsftpd # 确认服务是否运行,未运行则启动
sudo systemctl restart vsftpd # 修改配置后重启服务
防火墙与端口验证
sudo ufw status # 确保允许21端口(控制连接),数据端口(20)若使用被动模式需开放
sudo ufw allow 21/tcp
sudo ufw reload
sudo netstat -tuln | grep 21 # 确保无其他进程占用FTP端口
配置文件校验
/etc/vsftpd.conf 关键参数:listen=YES # 确保监听正确IP和端口
anonymous_enable=NO # 通常禁用匿名访问(根据需求设置)
local_enable=YES # 允许本地用户登录
write_enable=YES # 允许上传文件
chroot_local_user=YES # 限制用户至主目录(需配合权限设置)
sudo dpkg-reconfigure vsftpd # 或手动编辑后重启服务
用户权限与目录设置
sudo chown -R ftpuser:ftpuser /home/ftpuser
sudo chmod 755 /home/ftpuser # 或777(测试时使用,生产环境需谨慎)
pasv_min_port/pasv_max_port 并开放防火墙对应端口段。日志与调试分析
sudo tail -f /var/log/vsftpd.log # 或 journalctl -xe(部分系统)
debug_enable=YES,重启后查看详细日志。特殊场景处理
sudo setenforce 0 # 临时设为permissive模式
提示:修改配置后务必重启服务,优先通过日志定位具体错误,复杂问题可参考vsftpd官方文档或社区论坛(如Stack Overflow)。