FTP

基于 TCP 协议,是一种用于在计算机之间传输文件的协议,可以屏蔽操作系统和文件存储方式。

#status / growing #type / concept

[!info] related notes

FTP

FTP(File Transfer Protocol,文件传输协议):基于 TCP 协议,用于在计算机之间传输文件的协议,可以屏蔽操作系统和文件存储方式。

工作模式

FTP 使用双连接模型:

连接端口用途
控制连接TCP 21传输命令和响应(持续保持)
数据连接TCP 20(主动模式)或随机端口(被动模式)传输文件内容

主动模式 vs 被动模式

  • 主动模式(Active):服务器主动连接客户端的数据端口。问题:客户端在 NAT/防火墙后时,服务器无法主动连入。
  • 被动模式(Passive):客户端主动连接服务器的临时数据端口。现代环境中几乎都用被动模式。

传输模式

  • ASCII 模式:文本文件,自动转换换行符(Windows \r\n vs Unix \n
  • 二进制模式(Binary):图片、压缩包等,原样传输不做转换

[!warning] 选择错误的传输模式会导致文件损坏 二进制文件用 ASCII 模式传输会损坏;文本文件用二进制模式传输通常没问题。

安全隐患

[!important] 安全警告 FTP 是一种不安全的协议。用户名、密码和数据全部以明文传输,容易被中间人攻击窃取。

风险说明
明文传输凭据和数据可被嗅探
无加密中间人可篡改传输内容
弱认证仅用户名/密码,无密钥认证
无完整性校验无法检测传输是否被篡改

现代替代方案

FTP 已基本被淘汰,现代环境中应使用以下替代:

替代协议基础说明
SFTPSSH(TCP 22)通过 SSH 隧道传输,加密且防火墙友好
SCPSSH(TCP 22)简单的加密文件复制,适合一次性传输
FTPSFTP + TLSFTP 的加密版本,但配置复杂、防火墙不友好
HTTP/SHTTP/HTTPSWeb 文件下载/上传,最通用

SFTP 和 SCP 都基于 SSH 协议,只需要开放一个端口(22),配置简单且安全。在绝大多数场景下,SFTP 是 FTP 的直接替代品

创建于 2026/3/12 更新于 2026/5/27