解决CentOS FTPServer连接问题可按以下步骤操作:
检查服务状态:确保vsftpd服务已启动并设置开机自启,使用命令:
sudo systemctl status vsftpd
sudo systemctl start vsftpd
sudo systemctl enable vsftpd
配置防火墙:开放FTP控制端口(21)及被动模式端口范围(如10060-10070),使用命令:
sudo firewall-cmd --zone=public --add-port=21/tcp --permanent
sudo firewall-cmd --zone=public --add-port=10060-10070/tcp --permanent
sudo firewall-cmd --reload
调整SELinux设置:临时禁用或配置允许FTP访问,命令如下:
sudo setenforce 0 # 临时禁用
sudo setsebool -P ftp_home_dir on # 允许访问用户主目录
sudo setsebool -P allow_ftpd_full_access on # 允许FTP完全访问
验证配置文件:检查/etc/vsftpd/vsftpd.conf关键参数:
anonymous_enable=NO # 禁止匿名登录
chroot_local_user=YES # 限制用户主目录
pasv_enable=YES # 启用被动模式
pasv_min_port=10060 # 被动模式最小端口
pasv_max_port=10070 # 被动模式最大端口
创建FTP用户:添加专用FTP用户并设置权限,命令示例:
sudo useradd -d /data/ftp/ftpuser -s /sbin/nologin ftpuser
sudo passwd ftpuser
sudo chown -R ftpuser:ftpuser /data/ftp/ftpuser
sudo chmod 755 /data/ftp/ftpuser
测试连接:使用FTP客户端(如FileZilla)连接,选择被动模式,输入IP、端口(21)、用户名和密码。
排查日志:若仍无法连接,查看/var/log/secure或/var/log/xferlog获取错误信息。
注意:配置前建议备份配置文件,被动模式需确保客户端防火墙允许对应端口通信。