引言:在阿里云香港地域部署的ECS上搭建FTP服务时,常见连接失败来自网络、安全组、防火墙或服务配置异常。本文从Windows与Linux客户端与服务器双向排查,提供实用检查清单和诊断方法,帮助迅速定位根因并恢复FTP访问。
首先确认基础网络连通性:使用ping检查域名或弹性公网IP是否可达,使用telnet或nc测试21端口连通性。若ping失败需确认DNS和公网IP绑定;若21端口关闭,说明在云端或实例防火墙存在阻断。
在阿里云控制台检查实例是否绑定弹性公网IP、VPC与子网配置是否正确,并核对安全组规则是否放通TCP 21及被动端口范围。安全组需要允许目标客户端公网IP或0.0.0.0/0的入站策略,避免仅放行内网。
登录Linux实例,检查firewalld/iptables/ufw是否阻断21或PASV端口,使用ss -ltnp或lsof -i查看服务监听情况。确认FTP服务(如vsftpd、proftpd)已启动并绑定正确IP,systemctl status可快速定位服务异常。
Windows客户端检查系统防火墙或安全软件是否拦截FTP程序(例如FileZilla、Windows Explorer)。切换被动/主动模式并使用命令行ftp或PowerShell尝试连接,确认本地网络或公司出口策略未阻断FTP数据端口。
FTP主动模式需要客户端监听高位端口并允许外部回连,常被NAT与防火墙阻断;被动模式需服务端开放并在配置中指定pasv_address与端口范围,且该端口范围同时在安全组与实例防火墙放行。
检查配置项如listen、pasv_enable、pasv_min_port、pasv_max_port、pasv_address等是否正确,查看/var/log/vsftpd.log或系统日志获取握手与登录错误信息。常见问题包括匿名设置、用户权限和chroot限制导致的拒绝。
端口测试可用telnet、nc或curl进行,若握手阶段异常建议在服务器侧用tcpdump抓包,分析21端口与被动数据端口是否有SYN/ACK响应。抓包可定位是握手被丢弃、RST重置还是网络丢包问题。
若实例在私有子网需通过NAT网关或负载均衡转发,确保端口映射或转发规则覆盖21和PASV范围,且对外公布的pasv_address为弹性公网IP或域名,否则客户端会连接错误内网地址导致数据通道建立失败。
推荐按顺序排查:1) DNS/弹性IP;2) 安全组与云端网络;3) 实例防火墙与服务监听;4) FTP配置与日志;5) 客户端模式切换与抓包。常用工具:ping、telnet/nc、ss/lsof、tcpdump、FileZilla及系统日志。
总结:FTP连接问题多因安全组、防火墙、PASV配置或NAT映射不一致导致。排查应从云端网络向实例与客户端逐层验证,并充分利用日志与抓包定位。建议生产环境尽量使用SFTP/FTPS或通过专用文件传输方案替代明文FTP,提高安全性与稳定性。