这两个协议经常被混淆——都以"S"结尾,都声称能加密 FTP 传输。但 SFTP 和 FTPS 是完全不同的技术,底层架构毫无共同之处。了解区别,才能在有选择时做出正确决策。

名字的由来

SFTP 全称是 SSH File Transfer Protocol(SSH 文件传输协议),与传统 FTP 没有关系。它建立在 SSH 协议之上,通过一条加密连接同时处理文件传输和文件管理(列表、删除、重命名等)。

FTPS 全称是 FTP over SSL,是在传统 FTP 协议基础上增加了 TLS 加密层。它本质上是 FTP 的安全扩展,保留了原有的 FTP 架构。

技术对比

对比项 SFTP FTPS
底层技术 SSH 子系统 FTP + TLS/SSL
默认端口 22 990(隐式)或 21(显式)
连接数量 1 条(命令与数据共用) 2 条(控制连接 + 数据连接)
防火墙穿透 友好(只需开放端口 22) 被动模式可能需要额外配置
认证方式 密码 或 SSH 密钥 密码 或 客户端证书
加密强制性 始终加密 显式模式下加密为可选协商

FTPS 的两种模式

隐式模式(FTPS Implicit)

连接建立时立即启用加密,使用端口 990。这是较旧的标准,行为清晰——连接即加密,没有协商过程。

显式模式(FTPS Explicit / FTPES)

先以普通 FTP 方式连接(端口 21),客户端发送 AUTH TLS 命令请求升级到加密连接。这是更现代的标准。需要注意的是,服务器配置不当时可能允许不加密的连接通过。

实用提示:连接 FTPS 服务器时,务必确认使用的是隐式还是显式模式——这影响端口选择。FTPull 和 FTPush 均支持两种模式,在连接设置中选择即可。

该选哪个?

如果你有选择权,通常推荐 SFTP,原因很直接:

但如果服务器只支持 FTPS(常见于虚拟主机和遗留系统),FTPS 同样完全够用。两者只要配置正确,安全性都有保障。

在 FTPull 和 FTPush 中使用

FTPull 和 FTPush 完整支持 FTP、SFTP 和 FTPS(隐式与显式)。在连接设置中选择协议,其余由应用自动处理。SFTP 还支持 SSH 密钥文件认证,指定密钥路径即可实现无密码登录。