解决Ubuntu上vsftpd连接失败问题,可按以下步骤排查:
检查服务状态
确保vsftpd服务已启动:
sudo systemctl status vsftpd
若未启动,使用命令启动:
sudo systemctl start vsftpd
检查防火墙设置
允许FTP端口(21、20)通过防火墙:
sudo ufw allow 21/tcp
sudo ufw allow 20/tcp
sudo ufw reload
检查配置文件
编辑/etc/vsftpd.conf
,确认以下关键设置:
listen=YES
:确保服务监听连接。local_enable=YES
:允许本地用户访问。write_enable=YES
:允许文件上传。chroot_local_user=YES
:限制用户至主目录(可选)。sudo systemctl restart vsftpd
验证用户权限
确保用户主目录权限正确(755),且属于ftp
组:
sudo chown username:ftp /home/username
sudo chmod 755 /home/username
查看日志文件
通过/var/log/vsftpd.log
获取连接失败的详细错误信息:
sudo tail -f /var/log/vsftpd.log
处理特殊场景
pasv_min_port
和pasv_max_port
,并开放对应防火墙端口。permissive
模式或调整FTP相关策略:sudo setenforce 0 # 临时关闭
sudo setsebool ftpd_disable_trans 1 # 允许FTP传输
测试客户端连接
使用FTP客户端(如FileZilla)输入正确IP、端口、用户名和密码测试连接,尝试切换主动/被动模式。
若以上步骤无效,需根据日志中的具体错误进一步排查网络配置或软件依赖问题[1,2,3,4,5,6,7,8,9,10]。