You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

AWS添加安全组TCP 21规则后FTP端口仍关闭,求排查原因

Troubleshooting: FTP Port 21 Open in AWS Security Group but Still Unreachable Externally

我来帮你梳理下可能导致这个问题的几个常见原因,毕竟我之前也踩过类似的FTP端口开放但外部连不上的坑:

  • 被动模式端口未开放(最常见原因)
    FTP协议分主动和被动两种模式:21端口只是控制端口,被动模式下还需要额外的数据端口范围来传输文件/目录列表。FileZilla服务器默认会用被动模式,如果你只在安全组开了21端口,外部客户端发起被动连接时,数据端口的流量会被拦截。
    解决步骤:

    1. 打开FileZilla Server,进入「设置」→「被动模式设置」
    2. 勾选「使用自定义端口范围」,比如设置49152-65535(常用的被动端口段)
    3. 回到AWS安全组,添加一条入站规则:协议选TCP,端口范围填你刚才设置的49152-65535,来源设为0.0.0.0/0(或你的客户端公网IP,更安全)
  • 实例内部防火墙拦截
    AWS安全组是实例级的防护,但实例本身的操作系统防火墙也可能会挡住流量:

    • 如果你用的是Linux实例:执行sudo ufw status(如果用ufw)或sudo iptables -L检查是否放行TCP 21和被动端口的入站流量,没有的话添加对应规则。
    • 如果你用的是Windows实例:打开「Windows Defender防火墙高级设置」,确认是否有允许FileZilla Server或TCP 21、被动端口的入站规则,没有的话手动创建。
  • FileZilla服务器绑定地址错误
    确认FileZilla服务器是否监听了实例的公网IP或0.0.0.0(所有网卡):
    进入FileZilla Server的「设置」→「监听地址」,如果只绑定了localhost或内网IP,外部请求到公网IP时,服务器根本没在这个IP上监听,自然连不上。改成0.0.0.0就能监听所有网卡的请求。

  • AWS子网网络ACL限制
    安全组是实例级的,而网络ACL是子网级的防火墙,如果你的实例所在子网的网络ACL没放行入站的21端口和被动端口,也会导致连接失败:
    进入AWS控制台的VPC服务,找到实例所在的子网,查看对应的网络ACL,确保入站规则允许TCP 21和被动端口的流量,出站规则允许对应的返回流量(网络ACL是双向的,不像安全组是状态化的)。

  • ISP封禁21端口
    有些家用ISP会默认封禁FTP的21端口(出于安全或带宽限制),可以试试用手机热点连接测试,或者临时把FileZilla服务器的控制端口改成非21的端口(比如2121),然后在安全组开2121端口,再用外部客户端连接这个新端口验证。

建议按上面的顺序排查,先从被动模式端口这个最常见的原因开始,一般就能解决问题。

内容的提问来源于stack exchange,提问作者Juan Carlos Oropeza

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.19 08:19:50