FTP、FTPS 和 SFTP 的区别

FTP、FTPS 和 SFTP 的区别


一、基本定义

协议 全称 说明
FTP File Transfer Protocol 最早的文件传输协议(1971年),无加密,明文传输
FTPS FTP Secure(或 FTP over SSL/TLS) 在 FTP 基础上增加 SSL/TLS 加密层,支持加密控制和数据通道
SFTP SSH File Transfer Protocol(注意:不是 "Secure FTP") 基于 SSH 协议 的文件传输子系统,完全独立于 FTP,所有通信通过加密 SSH 通道进行

常见误区:

  • SFTP ≠ Secure FTP("Secure FTP" 是某些厂商对 FTPS 的营销叫法)
  • SFTP 与 FTP 完全无关,只是名字相似

二、核心对比表

特性 FTP FTPS SFTP
是否加密 明文(用户名、密码、数据均可见) 可选加密(显式/隐式 TLS) 强制全程加密
底层协议 独立应用层协议(基于 TCP) FTP + SSL/TLS SSH 协议的一部分
默认端口 控制:21 数据:20(主动)或动态(被动) 控制:990(隐式)或 21(显式) 数据:动态 22(复用 SSH 端口)
连接方式 双通道(控制 + 数据) 双通道 + TLS 握手 单通道(所有操作在 SSH 会话中)
防火墙/NAT 友好性 差(尤其主动模式,常用被动模式) 较差(需开放多端口) 好(仅需 22 端口)
身份认证 用户名/密码(明文) 密码 + 可选客户端证书 密码 / SSH 密钥 / 双因素
文件操作能力 基础(上传、下载、列表) 同 FTP 更丰富(权限修改、符号链接、断点续传等)
标准化组织 IETF (RFC 959) IETF (RFC 4217) IETF (SSH 协议扩展,非独立 RFC)
典型客户端支持 所有系统原生支持 FileZilla、WinSCP、curl OpenSSH、WinSCP、scp/sftp 命令

三、安全性详解

1. FTP

  • 所有数据(包括账号密码)以明文在网络中传输
  • 极易被中间人攻击(MITM)、嗅探
  • 不适用于任何敏感数据传输
  • 在部署时需要开通多个端口:控制连接的21端口,数据连接的多个端口(常用50000之后的100个端口,如:50000-50100,我遇到也有开10个端口的FTP)

2. FTPS

  • 分两种模式:
    • 显式 FTPS(FTPES) :客户端先连 21 端口,再协商升级为 TLS(AUTH TLS 命令)
    • 隐式 FTPS:直接连 990 端口,强制 TLS(已基本淘汰)
  • 可选择仅加密控制通道 (命令)或控制+数据通道
  • 仍使用双通道,防火墙配置复杂
  • 证书管理较麻烦(需 CA 或自签名)

3. SFTP

  • 基于 SSH,所有通信(认证 + 数据)全程加密
  • 使用成熟的 SSH 密钥体系,支持免密登录
  • 单连接,易于穿越防火墙
  • 与系统用户集成紧密,权限控制精细

安全等级排序SFTP > FTPS > FTP


四、使用场景建议

场景 推荐协议 理由
内部可信网络,传输公开文件(如软件镜像) FTP 简单、高效、兼容性好
需要兼容旧系统,但要求加密 FTPS 某些金融/医疗系统遗留要求
互联网环境、传输敏感数据、现代系统 SFTP 安全、简单、标准、易运维
自动化脚本、CI/CD 流水线 SFTP(配合 SSH 密钥) 无需交互,安全可靠
需要图形化客户端且支持加密 SFTP 或 FTPS(如 FileZilla) 两者都支持,但 SFTP 配置更简单

注:SFTP 是 SSH 的一部分,不是 FTP 的升级版!


五、简单区分

  • FTP :老式、快、不安全 ,内网环境下自用
  • FTPS:FTP + 加密外套,兼容旧系统但配置复杂
  • SFTP :基于 SSH 的现代安全文件传输,推荐首选

六、最佳实践建议

  1. 永远不要在公网使用纯 FTP
  2. 若必须用 FTPS,优先选择 显式模式(FTPES)
  3. 新项目一律使用 SFTP
  4. SFTP 用户应限制 Shell 权限(如 ChrootDirectory + /sbin/nologin
  5. 结合 SSH 密钥 + fail2ban 实现高安全自动化传输

相关博客
FTP、FTPS 和 SFTP 的区别
CentOS 搭建 SFTP 服务器(一)
CentOS 搭建 SFTP 服务器(二)
CentOS 搭建 SFTP 服务器(三)
FTP服务器安装与配置(超详细)

相关推荐
雪域迷影8 小时前
Windows11中使用VS2022编译运行libevent网络库
网络·github·cmake·visual studio·libevent
遇见火星8 小时前
常见Nmap语句
网络·nmap
网络研究院8 小时前
英国对LastPass处以120万英镑罚款,原因是其在2022年发生数据泄露事件,影响了160万用户
网络·安全·数据·泄露·用户
小明的小名叫小明8 小时前
Go从入门到精通(28) -再谈GMP和starvation
网络·golang
元气满满-樱8 小时前
docker网络模式详解
网络·docker·容器
夜来小雨9 小时前
华为防火墙特征库无法升级
网络
盼哥PyAI实验室10 小时前
12306反反爬虫策略:Python网络请求优化实战
网络·爬虫·python
znhy605810 小时前
分布计算系统
网络·分布式
liebe1*111 小时前
第七章 防火墙地址转换
运维·服务器·网络