1. 检查FTP服务运行状态
首先确认vsftpd服务是否正在运行。使用命令sudo systemctl status vsftpd查看服务状态:若显示“active (running)”则表示服务正常;若为“inactive (dead)”,则启动服务(sudo systemctl start vsftpd)并设置开机自启(sudo systemctl enable vsftpd)。
2. 配置防火墙允许FTP流量
Ubuntu默认使用ufw防火墙,需开放FTP必需端口:
sudo ufw allow 21/tcp;sudo ufw allow 20/tcp;sudo ufw allow 1024:65535/tcp。sudo ufw enable)并检查状态(sudo ufw status)确认端口已开放。若使用iptables,需执行类似命令并保存规则(sudo netfilter-persistent save)。3. 验证FTP配置文件设置
编辑vsftpd主配置文件(/etc/vsftpd.conf),确保以下关键参数正确:
listen=YES(监听IPv4);listen_ipv6=NO(禁用IPv6,避免冲突);anonymous_enable=NO(禁止匿名登录,提升安全性);local_enable=YES(允许本地用户登录);write_enable=YES(允许用户上传/修改文件);chroot_local_user=YES(限制用户仅能访问其主目录);allow_writeable_chroot=YES(允许用户写入其chroot目录,避免权限错误)。sudo systemctl restart vsftpd)使配置生效。4. 检查用户权限与主目录设置
确保FTP用户存在且具备正确权限:
ftpuser)并设置密码:sudo adduser ftpuser;/home/ftpuser):sudo chown ftpuser:ftpuser /home/ftpuser、sudo chmod 755 /home/ftpuser。chmod设置为755或775)。5. 确认客户端连接设置正确
使用FTP客户端(如FileZilla)连接时,需检查:
6. 查看服务器日志定位问题
若以上步骤均无法解决,查看vsftpd日志获取详细错误信息:sudo tail -f /var/log/vsftpd.log(或/var/log/auth.log)。日志中会提示具体错误原因(如“530 Login incorrect”表示用户名/密码错误,“500 OOPS: cannot change directory”表示目录权限问题),根据日志调整配置。