首页/网络/常用端口速查/20 ftp-data FTP 数据通道
0-99 系统端口81 条

20 ftp-data FTP 数据通道

FTP 主动模式下的数据连接端口(RFC 959);现代 FTP 多用被动模式,20 号端口开放与否需结合模式判断。

常用端口速查网络更新于 2026-10-13

ftp-data 是什么

20 是 FTP 主动模式下的数据通道端口。FTP 用两条连接工作:21 传控制命令,数据传输另开一条连接。主动模式下服务器从自己的 20 端口主动连回客户端指定的随机端口,因此客户端侧的防火墙必须允许入站;被动模式则由客户端连到服务器随机开放的高位端口,对客户端更友好,也是现代默认选择。

基本信息

服务FTP 数据通道(主动模式)
协议TCP,源端口固定为 20
规范RFC 959
控制通道21/tcp
现状被动模式下不再使用 20

典型使用场景

  • 老系统对接:设备或软件只实现了 FTP 主动模式
  • 抓包判定:确认实际生效的是主动还是被动模式
  • 排查传输失败:能登录但列不出目录,多半是数据通道被拦
  • 防火墙梳理:确认被动模式的端口范围是否已放行
  • 迁移评估:把明文 FTP 换成加密形态或更现代的传输方式

主动 / 被动模式对照

模式数据连接方向防火墙友好度
主动 PORT服务器 20 端口到客户端随机端口差,客户端需放行入站
被动 PASV客户端到服务器随机高位端口好,现代默认
被动端口范围由服务器配置固定需在服务端与防火墙同步
加密形态FTPS 显式 21 / 隐式 990SFTP 属 SSH,与 FTP 无关

模式判定与端口核对

模式判定与端口核对
sudo tcpdump -ni eth0 'tcp port 21 or tcp port 20' -c 20   # 看数据连接方向
ftp -p 192.0.2.10        # 强制被动模式
curl --ftp-port -  ftp://192.0.2.10/   # 强制主动模式做对比
ss -lntp | grep -E ':(20|21)\b'
排查 FTP 传输失败时,先确认数据通道模式与防火墙策略,再看 20 端口是否存在监听;能登录、能改目录却不能列目录,是最典型的数据通道被拦症状。
不要把 SFTP 与 FTP 混为一谈:SFTP 走 SSH,端口与 20/21 无关;把 SFTP 当加密版 FTP 配置,会在防火墙与客户端设置上同时走偏。

运维建议

  • 新部署一律走被动模式并固定端口范围
  • 服务端与防火墙同步维护端口范围,避免范围变更后中断
  • 能用 SFTP 或对象存储替代的流程优先替换加密形态
  • 保留传输日志,便于区分是权限问题还是通道问题

易错点

  • 只放行 21 控制端口、忘记数据通道端口,会出现能登录但列不了目录的典型症状
  • 被动模式端口范围改过但防火墙未同步:间歇性传输失败,故障时间点与维护记录对不上
  • 把 SFTP 当成加密 FTP:端口与依赖完全不同,配置方向从一开始就错了
  • 长期沿用明文 FTP 传输敏感文件:口令与内容在链路上都是明文

数据来源与参考

  • RFC 959:File Transfer Protocol

相关工具

​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌