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服务器安装与配置(超详细)

相关推荐
星辰烈龙1 小时前
黑马程序员JavaSE基础加强d5
服务器·网络·php
单片机系统设计1 小时前
基于STM32的水质检测系统
网络·stm32·单片机·嵌入式硬件·毕业设计·水质检测
mangge081 小时前
ESP8266 温湿度监测系统教程(SHT30+MAX7219+LeanCloud+HTTP 服务)
网络·网络协议·http
牛奶皮子1 小时前
合并 CSS 文件可以减少 HTTP 请求数,因为每个请求都会带来额外的网络开销
css·网络·http
阿巴~阿巴~2 小时前
“可达”方能“可靠”:深入解析网络层在TCP通信中的基石作用
运维·服务器·网络·网络协议·tcp/ip·ip·tcp
数据雕塑家2 小时前
【网络故障排查实战】多台机器互ping异常:MAC地址冲突引发的网络“薛定谔猫“现象
网络·macos
闲人编程3 小时前
商品管理与库存系统
服务器·网络·数据库·python·api·数据模型·codecapsule
2501_939909053 小时前
flannel vs calico网络
网络
一只小鱼儿吖3 小时前
携趣HTTP代理浏览器设置器(PC版)使用指南
网络·网络协议·http
进击切图仔3 小时前
Realsense 相机测试及说明
网络·人工智能·深度学习·数码相机