FTP 与 SFTP:明文传输的风险
发布时间:2026-06-23 22:08       
更新时间:2026-06-24 05:00
FTP 登录那一刻,你的密码在网络上以明文飞过去。这句话可以当场验证:任意一台同网段的 Linux 机器执行 tcpdump -A port 21 抓包,等有人登录,USER 和 PASS 两行连同口令原样躺在输出里。这就是 FTP 和 SFTP 最本质的差别。
## 两个协议根本不是一回事
名字只差一个字母,内核完全不同。FTP 是专用的文件传输协议,跑两个通道:21 端口传指令,数据通道按模式另开端口,全程不加密。SFTP 是 SSH 文件传输协议,属于 SSH(加密的远程管理协议)的一个子系统,只用 22 一个端口,指令和数据都在加密通道里,登录还支持密钥认证。把 SFTP 理解成"加密版 FTP"并不准确,两者的服务端实现也是完全两套。
## 逐维度对比
安全性:FTP 指令明文,口令能被网络路径上任何节点截获,文件内容同样裸奔;SFTP 全程加密,配合密钥登录还能关掉口令猜测这条路。防火墙友好度:SFTP 一个端口搞定,安全组和防火墙各放一行;FTP 要 21 加一整段被动端口,云环境配起来繁琐还容易漏。功能面:FTP 的目录列表语法老而杂,不同服务端实现互有出入;SFTP 行为统一,断点续传、目录递归都是标配。兼容性:这是 FTP 唯一占优的维度,一些老设备、老系统自带的客户端只认 FTP。
## 迁移到 SFTP 的注意点
服务端:较新的 Windows Server 内置 OpenSSH 组件,在功能里启用并打开 SFTP 子系统配置即可;目录权限按 Windows 账号体系管理,FTP 时代的隔离用户目录结构要重新映射。客户端:连接协议从 FTP 切成 SFTP,端口改 22;第一次连接会提示主机指纹,核对无误后确认,之后不再弹。对接方实在不支持 SFTP 的老系统,可以临时保留 FTPS(FTP over TLS,给 FTP 套加密层的兼容方案),并把它的暴露面收到最小。
## 结论
公网传文件没有理由再用明文 FTP,新需求一律 SFTP;FTP 只保留在内网临时使用或对接不支持加密的老设备,并且要有限期迁移的计划。安全这笔账是不对称的:切换到 SFTP 半小时,口令泄露之后的处理以天计。