首页/网络/常用端口速查/21 FTP 文件传输(控制通道)
0-99 系统端口81 条

21 FTP 文件传输(控制通道)

经典的文件传输协议控制端口;明文口令传输与匿名访问是其主要安全隐患之一,新系统建议改用 SFTP/FTPS。

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

FTP 与 21 端口

21 是 FTP 的控制通道端口,登录、切换目录与传输命令都在这里交互;真正的数据由另一条连接承载:主动模式使用服务端 20 端口发起连接,被动模式则由服务端给出一个随机高位端口等待客户端连接。整个过程默认明文,抓包即可还原口令与文件内容,因此新系统建议改用 SFTP;确需保留时至少启用 TLS 并关闭匿名访问。

基本信息

服务FTP 服务端(vsftpd、ProFTPD、IIS FTP 等)
协议TCP(控制通道 21,数据通道另开)
规范RFC 959;加密扩展见 RFC 4217
权限要求监听 21 需 root;虚拟用户按目录授权
常见客户端lftp、curl、FileZilla、资源管理器
安全等级不建议公网明文使用

典型使用场景

  • 内网批量分发安装包与配置文件,用脚本化客户端自动上传下载
  • 日志与备份文件回传:设备或应用把文件推到指定目录
  • 老旧设备固件上传与配置下载,这些设备往往只支持 FTP
  • 第三方按约定目录交换数据文件,接口简单但需要固定目录与账号
  • 历史系统改造过渡期,先用受限 FTP 承接,再逐步迁移到 SFTP

主动与被动模式对照

模式数据连接方向常见卡点
主动 PORT服务端 20 主动连客户端高位口客户端防火墙或 NAT 拦截入向连接
被动 PASV客户端连服务端给出的高位口服务端防火墙未放行被动端口范围
带 TLS 的显式加密控制通道先明文后升级客户端与服务端加密支持不一致
隐式加密连接即加密,使用独立端口端口与模式配置错位导致连不上

连通性探测与调试

连通性探测与调试
curl -v ftp://192.0.2.10/ --user anonymous:test@example.com   # 试探是否允许匿名登录
lftp -u user,pass -p 21 192.0.2.10 -e 'ls; bye'                # 脚本化列目录
ftp -d 192.0.2.10                                              # -d 打印每条命令与响应码
watch -n 1 'ss -tnp | grep :21'                                # 另开终端观察控制连接状态

vsftpd 加固要点

vsftpd 加固要点
anonymous_enable=NO             # 关闭匿名访问
local_enable=YES
write_enable=YES
ssl_enable=YES                   # 启用 TLS
pasv_min_port=30000              # 固定被动端口范围,便于防火墙放行
pasv_max_port=30100
pasv_address=203.0.113.10        # 服务端在 NAT 后时必须填写对外地址
必须保留 FTP 时,请启用 TLS、禁用匿名、固定被动端口范围并只对管理网段开放;否则改用 SFTP,避免口令与文件内容在链路上明文传输。
被动模式应答里的地址与端口由服务端给出:服务端位于 NAT 之后且未配置对外地址时,客户端会尝试连接内网地址而超时,这是外网 FTP 最常见的故障原因。
排障时分开看两条连接:控制通道一旦建立就会一直存在,传输失败往往发生在数据通道;先抓包确认数据连接的目标地址与端口,再决定是改防火墙还是改被动模式配置。

易错点

  • 明文 FTP 的口令在公网有被嗅探的实际风险,合规检查通常直接判为高危
  • 被动端口范围未固定,防火墙放行困难且容易被其他服务占用
  • 服务端在 NAT 后未配置对外地址,客户端连内网地址导致传输阶段超时
  • 为图方便继续开放匿名访问,目录内容对所有人可见

数据来源与参考

  • RFC 959:File Transfer Protocol
  • RFC 4217:Securing FTP with TLS
  • vsftpd 官方文档

相关工具

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