解决Ubuntu上VSFTPD连接问题可按以下步骤操作:
检查服务状态
sudo systemctl status vsftpd
若未运行,启动服务:
sudo systemctl start vsftpd
检查防火墙设置
确保允许FTP端口(默认21):
sudo ufw allow 21/tcp
sudo ufw reload
若使用被动模式,需开放被动端口范围(如40000-50000)。
验证配置文件
编辑 /etc/vsftpd.conf,确认关键参数:
listen=YES
anonymous_enable=NO
local_enable=YES
write_enable=YES
chroot_local_user=YES
修改后重启服务:
sudo systemctl restart vsftpd
检查端口占用
sudo netstat -tuln | grep 21
若端口被占用,修改 listen_port 并更新防火墙。
排查权限问题
确保FTP用户对目标目录有写权限:
sudo chown -R ftpuser:ftpuser /path/to/directory
sudo chmod -R 755 /path/to/directory
处理SELinux限制(若启用)
sudo setsebool -P ftp_home_dir on
sudo setsebool -P allow_ftpd_full_access on
查看日志定位问题
sudo tail -f /var/log/vsftpd.log
根据日志中的错误信息进一步排查。
常见场景:
write_enable=YES 且目录权限正确。