一、防火墙与安全组配置
防火墙和安全组是云服务器FTP无法访问的首要排查点。需检查以下内容:
- 入站规则:确保FTP控制端口(21)和数据端口范围已开放,被动模式需额外开放随机高位端口。
- 系统防火墙:Linux系统需检查iptables或firewalld是否拦截FTP流量,可通过
firewall-cmd --list-all
查看规则。 - 云平台安全组:腾讯云、阿里云等平台需在控制台配置允许FTP协议的入站规则,避免仅设置服务器本地防火墙。
二、FTP服务状态确认
通过以下步骤验证FTP服务是否正常运行:
- 使用
systemctl status vsftpd
检查服务状态,若未启动则执行systemctl start vsftpd
。 - 查看配置文件(如
/etc/vsftpd.conf
),确认listen=YES
和local_enable=YES
等参数正确。 - 检查日志文件(如
/var/log/vsftpd.log
),定位连接失败的具体错误信息。
三、被动模式端口设置
被动模式(PASV)配置错误是跨网络访问失败的常见原因:
- 在FTP配置文件中指定被动模式端口范围,例如
pasv_min_port=50000
和pasv_max_port=51000
。 - 云服务器安全组和本地防火墙均需开放该端口范围。
- 客户端切换为被动模式,避免因NAT网络导致主动模式(PORT)连接失败。
四、用户权限与目录路径
权限问题可能导致连接后无法读写文件:
- 检查FTP用户的家目录权限,使用
chmod
确保用户具备读写权限。 - 验证
/etc/vsftpd/user_list
和/etc/vsftpd/chroot_list
中是否包含目标用户。 - 核对客户端输入的路径是否存在,避免因路径错误返回“550 Failed to open file”。
FTP访问故障需系统化排查网络、服务、权限三层面问题。建议按照防火墙→服务状态→被动模式→用户权限的顺序逐步验证,同时结合日志分析和客户端调试工具(如FileZilla)快速定位根源。