首先确认CentOS主机的网络连通性,使用ping <服务器IP>命令测试是否能访问目标服务器。若网络不通,需检查虚拟机网络设置(如NAT模式需配置静态IP)或物理网络连接。静态IP配置需编辑/etc/sysconfig/network-scripts/ifcfg-ens33文件,设置BOOTPROTO=static并填写IPADDR、NETMASK、GATEWAY、DNS1等参数,保存后重启网络服务(sudo systemctl restart network)。
确保CentOS上的FTP服务(如vsftpd)已启动并运行。使用以下命令检查服务状态:
sudo systemctl status vsftpd
若服务未启动,执行sudo systemctl start vsftpd启动服务;若需开机自启,执行sudo systemctl enable vsftpd。
CentOS的firewalld或ufw可能阻止FTP流量。需开放FTP端口(默认21)及被动模式端口范围(如10060-10070):
# 使用firewalld(推荐)
sudo firewall-cmd --permanent --add-port=21/tcp
sudo firewall-cmd --permanent --add-port=10060-10070/tcp
sudo firewall-cmd --reload
# 或使用ufw(若已安装)
sudo ufw allow 21/tcp
sudo ufw allow 10060:10070/tcp
临时关闭防火墙测试是否为防火墙导致的问题(sudo systemctl stop firewalld),若关闭后连接成功,需按上述命令配置永久规则。
确保FTP用户对目标目录有访问权限。可通过以下命令修改目录权限(如/var/www/html):
sudo chown -R ftpuser:ftpgroup /var/www/html
sudo chmod -R 755 /var/www/html
其中ftpuser为FTP登录用户名,ftpgroup为用户所属组。若用户被限制在特定目录(如chroot),需确认目录路径正确且具备读写权限。
/var/log/secure文件(SSH登录日志)或/var/log/vsftpd.log(vsftpd日志),获取服务器端的错误详情(如“530 Login incorrect”“500 OOPS: cannot change directory”)。