解决Ubuntu上vsftp连接问题可按以下步骤排查:
检查服务状态
确保vsftpd服务已启动并运行:
sudo systemctl status vsftpd
sudo systemctl start vsftpd # 若未启动
配置防火墙
允许FTP端口(默认21)及被动模式端口(若配置):
sudo ufw allow 21/tcp
sudo ufw allow 20/tcp # 数据传输端口(可选)
sudo ufw allow 40000:50000/tcp # 被动模式端口范围(若配置)
sudo ufw reload
验证配置文件
检查/etc/vsftpd.conf
关键设置:
listen=YES
:确保服务监听正确IP和端口。anonymous_enable=NO
:禁止匿名访问(若需本地用户登录)。local_enable=YES
:允许本地用户登录。write_enable=YES
:允许用户上传文件。chroot_local_user=YES
:限制用户至主目录(可选)。sudo systemctl restart vsftpd
检查客户端设置
确保客户端地址、端口、用户名、密码与服务器配置一致,被动模式需在客户端取消勾选(若服务器配置了被动模式)。
查看日志文件
通过/var/log/vsftpd.log
或/var/log/auth.log
获取错误详情,定位问题根源(如认证失败、权限不足等)。
处理权限问题
确保上传目录对FTP用户有写权限:
sudo chown ftpuser:ftpuser /path/to/upload
sudo chmod 755 /path/to/upload
被动模式配置(可选)
若使用被动模式,需在配置文件中指定pasv_address
(服务器公网IP)和端口范围,并在防火墙中放行。
常见错误及解决:
/etc/ftpusers
是否禁止该用户。ssl_enable=YES
。若问题仍未解决,可参考官方文档或社区论坛进一步排查。