首页/网络/协议速查/FTP 命令速查

FTP 命令速查

常用命令围绕三个动作:认证(USER/PASS)、导航(CWD/PWD/LIST)、传输(RETR/STOR);每条命令都有对应的三位应答码。

协议速查网络更新于 2026-10-13

命令围绕三个动作

FTP 命令分三组:认证(USER 与 PASS)、导航(PWD、CWD、LIST)、传输(RETR 与 STOR)。每条命令都会得到三位数字应答码,第一位数字表达类别(2 成功、3 需要更多信息、4 暂时失败、5 永久失败)。与控制命令分开的另一条数据连接负责真正搬运数据,这是 FTP 与其它文件协议最大的区别。

基本信息

控制端口TCP 21(FTPS 显式模式同为 21,隐式模式 990)
数据连接每次传输临时建立,模式由 PORT、PASV 或 EPSV 决定
应答码三位数字,首位表示类别,1xx 表示还需要后续应答
传输类型TYPE I 二进制、TYPE A 文本(会做换行转换)

常用命令

命令类别说明
USER 与 PASS认证用户名与口令
PWD 与 CWD 与 CDUP导航当前目录、切换目录、回上级
LIST 与 NLST导航目录详情与仅文件名列表
TYPE传输I 为二进制、A 为文本
RETR 与 STOR传输下载与上传
STOU 与 APPE传输唯一命名上传与追加写入
REST传输断点续传起点偏移
ABOR传输中断当前传输
DELE 与 RNFR 与 RNTO文件删除与改名,改名需两步
MKD 与 RMD目录建目录与删目录
SIZE 与 MDTM查询取文件大小与修改时间
FEAT 与 OPTS能力查询扩展与设置选项
QUIT结束退出登录

二进制模式下传

二进制模式下传
TYPE I
200 Switching to Binary mode.
PASV
227 Entering Passive Mode (203,0,113,9,195,80)
RETR backup.tar.gz
150 Opening BINARY mode data connection for backup.tar.gz
226 Transfer complete.              # 226 表示数据连接正常结束
# 若出现 425 通常是数据连接没能建立,先查被动端口是否放行

典型使用场景

  • 批量下载日志后做离线分析,用 NLST 先取文件名清单
  • 断点续传大文件:REST 指定偏移后再 RETR
  • 上传后核对 SIZE 与本地字节数,快速确认是否被文本模式改写
  • 用 FEAT 判断服务端是否支持 SIZE、MDTM、UTF8 等扩展
文本模式(TYPE A)会做换行转换:传压缩包、图片、可执行文件一律用 TYPE I,否则文件字节数改变、校验失败。
FTPS 与 SFTP 是两回事:FTPS 是 FTP 加 TLS,仍保留双连接结构;SFTP 是 SSH 之上的子系统,只有一条连接。防火墙复杂的环境优先选 SFTP。

易错点

  • 上传后文件字节数对不上:TYPE A 把换行改写成了回车加换行,二进制文件必须 TYPE I
  • 改名只发 RNFR 不发 RNTO:服务端一直等待确认,操作从未生效,却看不到明确报错
  • 混淆 226 与 250:226 表示数据连接正常结束,250 是控制命令成功,判断传输是否完成必须看 226
  • 用 LIST 解析文件名做自动化:各服务端输出格式不同,应该用 NLST 或 MLSD 获取结构化结果

数据来源与参考

  • RFC 959 §4(命令)

相关工具

​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌