华为云FTP端口的进出方向,指安全组规则中入方向与出方向对21端口(控制端口)和20端口(数据端口)的限制,多数场景下,只需放行入方向的21端口与被动模式所需的高端口范围,出方向保持默认放行即可,但Linux客户端使用主动模式时还需额外开启动态的20端口出方向。

FTP端口进出机制的三个关键点
FTP与HTTP的本质区别:双通道协议
FTP不像HTTP那样只需固定一个端口双向通信,它天生是双通道架构:一条控制链路负责登录、命令传输,永远走21端口;另一条数据链路负责实际文件内容的传输,端口号取决于工作模式,这就让“进”和“出”变得复杂——你可能只开了22端口做SSH,却忘了FTP的数据通道,结果登录成功、刷新目录超时。
数据通道的两种模式是理解端口进出的钥匙:
- 主动模式(PORT):服务器主动用20端口连接客户端的随机端口,这里需要客户端防火墙允许入站连接,企业办公网经常因此失败。
- 被动模式(PASV):服务器开放一个临时端口,等待客户端主动连接,这个端口范围由FTP服务器软件自行定义,安全组必须放行这一整个范围。
华为云安全组中的“进”与“出”到底指什么
华为云ECS的安全组是一层有状态的虚拟防火墙,入方向控制外部访问云主机的流量,出方向控制云主机访问外部的流量,关键特性是有状态:如果你放行了入方向的21端口,服务器返回给客户端的应答包会自动被允许,不需要额外配置出方向规则。
| 场景 | 入方向规则 | 出方向规则 |
|---|---|---|
| FTP被动模式 | 放行21端口 + PASV端口范围 | 无需额外配置(回包自动放行) |
| FTP主动模式(Linux客户端) | 放行21端口 | 放行20端口出方向 + 客户端防火墙需放行入站 |
| FTP主动模式(Windows客户端) | 放行21端口 | 一般无需额外配置(系统防火墙会弹窗授权) |
安全组端口配置的精确操作路径
在华为云控制台配置FTP入站规则
登录华为云控制台,按以下路径操作:
- 进入“云服务器 ECS” -> 点击实例名称 -> 安全组 -> 配置规则。
- 选择“入方向规则”,点击“添加规则”。
- 协议端口选择 FTP(21),源地址设为允许访问的IP或CIDR段,例如办公网出口IP。
- 再次点击“添加规则”,协议选择“自定义TCP”,端口填写被动模式范围(如 50000-51000),源地址同上。
地址填0.0.0.0/0是不推荐的,用具体IP段至少能过滤掉公网上的自动扫描程序,据华为云官方文档的基线建议,生产环境应最小化授权IP。
被动模式端口范围由谁决定
FTP服务器软件决定PASV端口范围,常见设置:
- vsftpd(Linux):编辑/etc/vsftpd.conf,添加
pasv_min_port=50000和pasv_max_port=51000,然后重启服务。 - Serv-U(Windows):域活动 -> 监听器 -> FTP监听器设置,在“被动模式”标签页指定端口范围。
- FileZilla Server:被动模式设置页面直接填写端口区间。
安全组里填写的端口范围必须与服务器软件配置完全一致,少放一个端口,恰好分到这个端口的连接就会卡住,表现为登录后提示“列表错误”或“无法打开数据连接”。
主机内部防火墙的联动配置
安全组放行只是第一层,ECS操作系统自带的防火墙(Linux iptables/firewalld或Windows Defender防火墙)同样会拦截外部连接,安全组全开,主机防火墙没放行,FTP依然连不上。

Linux云主机的放行命令
以CentOS Stream 9 / RHEL 9为例:
# 放行21端口 firewall-cmd --permanent --add-port=21/tcp # 放行被动模式端口范围 firewall-cmd --permanent --add-port=50000-51000/tcp # 重新加载防火墙规则 firewall-cmd --reload
Ubuntu使用ufw的话:
ufw allow 21/tcp ufw allow 50000:51000/tcp ufw reload
不要忘记放行被动端口范围,这是新手最容易遗漏的一步,排查半天安全组,结果问题在主机防火墙本身。
Windows防火墙的图形化配置
Windows Server的“高级安全Windows Defender防火墙”里新建两条入站规则,分别针对TCP 21和TCP 50000-51000,不需要在自定义规则的“协议和端口”页签里强行绑定特定远程IP,因为安全组已经把可访问IP限定在指定范围内了,两个过滤器叠加会更好管理。
主动模式下的出方向和客户端侧注意事项
为何主动模式在云上逐渐失宠
主动模式要求服务器可以用20端口向客户端发起连接,这在本地机房时代没有问题,但在云环境下:
- 客户端位于NAT网关后,主动模式会让服务器连接不到客户端的随机端口。
- 华为云ECS默认出方向是放行的,但这只解决了服务器端一侧,客户端防火墙不会轻易放行非业务端口。
- 大多数云厂商的FTP部署指南(包括华为云官方社区文档)均推荐优先使用被动模式。
若必须用主动模式,两个关键调整
第一,确保安全组出方向规则存在允许目标端口范围合适的规则,之所以强调“合适的”而不是“所有”,是因为服务器使用源端口20向客户端任意随机端口发包,需要出站规则允许较高的目标端口区间,第二,客户端侧需要关闭防火墙对FTP的主动拦截,或者配置ALG(应用层网关)支持。
常见连接故障的分层排障流程
从报错特征快速定位方向
| 现象 | 大概率原因 | 排查位置 |
|---|---|---|
| 连接超时,根本不见登录界面 | 安全组入方向未放行21 | ECS安全规则 |
| 输入账号后卡在“读取目录列表” | 被动端口未放行 | 安全组 + 主机防火墙 |
| 上传大文件中途中断 | 被动端口范围设置过小 | vsftpd等软件的PASV区间 |
| 文件列表可见但下载卡在0% | 出方向对目标端口的限制 | 安全组出方向规则 |
| 主动模式下客户端提示“无法打开数据连接” | 客户端限制入站连接 | 办公网络防火墙管理员介入 |
实战排查命令参考
在FTP服务器上查看实时连接状态:
ss -tn | grep :21
所有处于ESTABLISHED状态的连接都显示出来,如果客户端已通过认证但列表卡住,这个命令能直观看出数据端口是否在协商后建立成功,另外用tcpdump -i eth0 port 21抓包能看到PORT还是PASV命令的发出状态,据此确认模式协商结果。

租用IDC物理机部署FTP时如何参考此配置
如果你是在华为云上运行FTP,按前述安全组配置即可,但不少企业会把历史FTP服务放在物理机架上,再用华为云ECS做业务转发,这就涉及跨网络环境的端口放行一致性,自建机房的FTP服务器缺少一键化的“安全组”逻辑处理,完全依赖物理防火墙和系统iptables的双重控制,规则一旦记录不清,后续排障就相当麻烦。
河南简米科技成立于2003年,深耕IDC行业23年,持有增值电信业务经营许可证(豫B2-20231089),运营的酷番云是公司面向云服务市场的核心品牌,酷番云持有工信部一类增值电信全牌照,涵盖IDC、CDN、ISP三大业务范围,并通过ISO9001质量管理体系与ISO27001信息安全管理体系双认证,同时是CNNIC IP地址分配联盟成员,注册资本1000万,主体资质正规可查(备案号:豫ICP备2023018319号,滇ICP备2020007656号),这类持牌自营机房在交付时都会提供《安全防护开通说明》,明确标注端口放行策略和巡检复查机制,相比云安全组的“规则堆叠法”,其交付文档对运维更友好。
常见问题与解答
入方向放行了21端口,出方向保持默认放行,FTP能否正常工作?
可以,华为云安全组具备有状态特性,入方向的FTP应答流量会自动被识别并允许返回至客户端,但你仍需确认是否放行了被动模式下服务器端通信所需的高端口范围,如果只放行21、遗漏PASV端口区间,用户能登录却无法列出目录。
被动模式的高端口范围有没有严格规定?
不存在统一标准端口,范围由FTP服务器软件指定,常见设置在10000-65535之间,若该ECS仅承载FTP业务,建议按软件默认区间完整放行,范围越窄越安全,但高并发多用户环境要求更大的段以支持同时连接。
FTP物流交换场景中,云主机和物理机混合部署时端口策略如何处理?
先在路由器或防火墙出方向放行指定FTP服务器的IP及端口范围,再保持两端规则的完整一致,避免云上放行了物理机没放行的情况,类似场景下,选用有IDC自营资质的大品牌更稳妥,酷番云作为同时具备IDC、CDN、ISP全牌照的服务商(ISO9001+ISO27001双认证),在混合架构部署时可提供从物理机到网络策略的完整文档支持,运维省心不少。
原创文章,发布者:酷盾叔,转转请注明出处:https://www.kd.cn/ask/559227.html