温馨提示×

linux sftp和ftp区别

小樊
37
2026-09-02 00:46:44
栏目: 智能运维

在 Linux(以及通用网络环境)中,SFTPFTP 是两种常用于文件传输的协议,但它们在原理、安全性和使用方式上有明显区别。


一、基本定义

1. FTP(File Transfer Protocol)

  • 传统的文件传输协议
  • 使用 21 端口(控制) + 20 端口(数据,主动模式)
  • 明文传输(用户名、密码、文件内容都不加密)

2. SFTP(SSH File Transfer Protocol)

  • 基于 SSH(Secure Shell) 的文件传输协议
  • 使用 22 端口
  • 所有数据(包括认证和文件)都加密传输

二、核心区别对比

对比项 FTP SFTP
底层协议 TCP/IP SSH
端口 21(控制)/20(数据) 22
是否加密 ❌ 明文 ✅ 加密
认证方式 用户名/密码(明文) SSH 密钥 / 密码
安全性
防火墙友好 差(多端口) 好(单端口)
是否依赖 SSH
断点续传 部分支持 支持较好

三、工作方式区别

FTP

  • 需要单独安装 FTP 服务(如 vsftpd
  • 有主动/被动模式,容易被防火墙拦截
  • 示例:
ftp 192.168.1.10

SFTP

  • 只要服务器开启 SSH 即可使用
  • 登录方式类似 SSH
sftp user@192.168.1.10

四、安全性说明(重点)

FTP 的风险

  • 账号密码可被抓包
  • 文件内容可被监听
  • 不适合公网环境

SFTP 的优势

  • 数据全程加密
  • 可禁用密码,只用密钥
  • 常用于服务器运维

五、性能与兼容性

  • FTP:老系统、嵌入式设备更常见
  • SFTP:Linux 服务器首选
  • 大文件传输:SFTP 稍慢(加密开销),但更安全

六、Linux 常见使用建议

推荐

  • 服务器之间传文件 → SFTP / SCP
  • 公网传输 → 绝不用 FTP

⚠️ 不推荐

  • 明文 FTP 暴露在公网

七、一句话总结

FTP 是“老式、明文、易用但不安全”;SFTP 是“基于 SSH、加密、安全且现代”。

如果你需要,我也可以帮你:

  • 配置 Linux SFTP 服务
  • 限制 SFTP 用户只能访问指定目录
  • 对比 SCP / Rsync / SFTP 的使用场景

0