解决CentOS上VSFTP连接问题可按以下步骤操作:
-
检查服务状态:确保vsftpd服务已启动并运行
sudo systemctl status vsftpd sudo systemctl start vsftpd # 若未启动 -
验证配置文件:
- 编辑
/etc/vsftpd/vsftpd.conf,确认关键参数:
anonymous_enable=NO(禁用匿名登录)
local_enable=YES(允许本地用户登录)
chroot_local_user=YES(限制用户主目录)
pasv_enable=YES(启用被动模式,需设置端口范围如pasv_min_port=10060 pasv_max_port=10070) - 检查配置语法:
sudo vsftpd -t
- 编辑
-
配置防火墙:
- 开放FTP端口(默认21)及被动模式端口范围:
sudo firewall-cmd --permanent --add-port=21/tcp sudo firewall-cmd --permanent --add-port=10060-10070/tcp # 若使用被动模式 sudo firewall-cmd --reload
- 开放FTP端口(默认21)及被动模式端口范围:
-
处理SELinux限制:
- 临时禁用SELinux对FTP的限制:
sudo setsebool -P ftpd_disable_trans 1 sudo setsebool -P ftp_home_dir on - 若需永久修改,编辑
/etc/selinux/config,将SELINUX=enforcing改为disabled,重启服务器。
- 临时禁用SELinux对FTP的限制:
-
检查用户权限与目录:
- 确保FTP用户主目录存在且权限正确:
sudo useradd -d /path/to/ftpdir ftpuser sudo chown -R ftpuser:ftpuser /path/to/ftpdir sudo chmod -R 755 /path/to/ftpdir
- 确保FTP用户主目录存在且权限正确:
-
测试连接:
- 使用FTP客户端(如FileZilla)连接,选择被动模式,输入服务器IP、端口(默认21或被动模式端口)、用户名和密码。
-
查看日志排查:
- 若仍无法连接,查看
/var/log/vsftpd.log或/var/log/secure,定位具体错误(如权限不足、端口冲突等)。
- 若仍无法连接,查看
常见错误及解决:
- 530错误:登录凭据错误或用户被限制,检查用户名密码及
/etc/vsftpd.conf中的userlist_enable配置。 - 连接超时:检查防火墙、网络连通性(
ping服务器IP)及端口是否开放。