首页/网络/协议速查/FTPS:显式与隐式 TLS

FTPS:显式与隐式 TLS

FTPS = FTP + TLS:显式(21 上 AUTH TLS)先明文再升级,隐式(990)连接即握手;与 SFTP 完全无关,名字像而已。

协议速查网络更新于 2026-10-13

FTPS 是什么

它是在传统文件传输协议之上叠加加密层:显式方式在标准端口上先明文打招呼、再协商升级,隐式方式则是一连上就握手(RFC 4217)。它与基于 SSH 的文件传输完全无关,只是名字相近,最容易被混为一谈。

两个通道都要保护

控制通道与数据通道是分开的。只对控制通道加密、数据通道仍然明文,文件内容依旧暴露在链路上——这是配置中最常见也最危险的半吊子做法。

基本信息

显式方式在标准端口上通过升级命令协商加密
隐式方式在另一个端口上连接即进行握手
规范RFC 4217 与 RFC 2228
关键设置数据通道也要显式设置为私有保护级别

典型使用场景

  • 合规要求必须加密的传统文件传输场景
  • 对接只支持这类协议的老系统
  • 排查握手失败与证书信任问题
  • 排查「能登录但文件传不动」

显式升级流程

显式升级流程
C: AUTH TLS
S: 234 AUTH TLS successful
(进行加密握手)
C: PBSZ 0
S: 200 PBSZ=0
C: PROT P
S: 200 Protection set to Private
(此后数据连接同样加密)

两种方式对比

类型端口触发方式
显式加密标准控制端口先用升级命令协商,再进入加密
隐式加密约定的专用端口连接建立即开始握手
基于 SSH 的方案单端口不是这个协议族,需单独配置与排障
只做控制通道升级而不设置数据保护级别:控制通道加密了,数据通道仍然明文,文件内容照样暴露。
自签证书场景需要客户端手工信任:先分清是握手失败还是证书校验失败,别急着改服务端配置。
被动模式下数据连接由客户端发起:防火墙要放行服务端约定的端口范围,否则会出现「登录与列目录正常、传输卡住」的分裂现象。

易错点

  • 只加密控制通道不设置数据保护:文件内容仍然明文传输
  • 把它当成另一种基于 SSH 的方案:客户端与排障方式完全不同
  • 自签证书没分发到客户端:表现为握手失败,实质是校验不通过
  • 被动模式端口范围未放行:控制通道正常,数据传输建立不起来
  • 只在一端排查:证书与保护级别是两端协商的结果,需要两侧配置一并核对

数据来源与参考

  • RFC 4217(Securing FTP with TLS)
  • RFC 2228(安全扩展)

相关工具

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