首页/网络/协议速查/FTP 响应码速查

FTP 响应码速查

三位码:1xx 预告、2xx 成功、3xx 需要更多信息、4xx 临时失败(可重试)、5xx 永久失败;看懂首答码就能定位卡在哪一步。

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

三位码怎么读

FTP 对每个命令都返回三位应答码:第一位是结果大类(1 表示预备、2 表示成功、3 表示还需要更多信息、4 表示临时失败可以重试、5 表示永久失败),第二位表示子类,第三位是细分。看懂首答码就能判断卡在登录、目录切换还是数据传输这一步。

后两位提供什么信息

第二位与第三位把同一大类拆得更细:5xx 里 50x 多指语法或命令本身有问题,53x 与登录和权限相关,55x 则是文件系统层面的拒绝。同一个前缀下末位不同,往往对应同一类问题的不同成因。

基本信息

编码规则首位表示结果类别,中间位与末位表示子类
4xx临时失败,稍后重试有意义
5xx永久失败,重试通常无意义
常见成功码220 欢迎、230 登录成功、213 文件状态、226 传输完成

典型使用场景

  • 排查上传失败:先看 530 判断登录状态,再看 550 判断权限或路径
  • 排查数据连接:150 之后长时间不动多半是数据通道没建起来
  • 判断服务端是否强制加密:534 与 535 常出现在强制 TLS 的场景
  • 对接老旧系统时快速识别其行为差异

观察应答码

观察应答码
ftp -v ftp.example.com    # 交互登录并显示每一步应答码
quote SYST                # 查看服务器系统类型,返回 215
quote FEAT                # 查看服务器支持的扩展特性
quote SIZE filename       # 用 213 应答确认文件大小

FTP 应答码

码含义场景
120服务就绪(稍后)少见首答
125 与 150数据连接已打开或将打开列目录与取文件前的预告
200命令成功类型或端口设置
202命令冗余未执行无实际动作
211 与 212系统状态与目录状态状态查询应答
213文件状态大小与修改时间查询常用
214帮助文本帮助命令应答
215系统类型系统标识查询应答
220服务就绪(欢迎)连接后的首答
221退出登录退出应答
226数据连接完成传输成功的收尾码
227进入被动模式被动模式应答,含地址与端口
229进入扩展被动模式扩展被动模式应答
230登录成功口令校验之后
234安全升级就绪请求 TLS 升级后的应答
331需要口令用户名之后
332需要账号特殊计费场景
350等待进一步命令重命名第一步之后
421服务不可用,关闭控制连接临时性失败
425 与 426数据连接无法打开或连接中断被动模式失败或传输被中断
450 与 451 与 452临时失败、本地错误、空间不足稍后重试
500语法错误命令拼写问题
501参数错误参数格式不对
502命令未实现扩展不支持
503命令顺序错误未登录先取文件
504参数未实现参数本身不受支持
530未登录需要先完成登录
534 与 535策略拒绝、拒绝明文口令强制加密场景
550动作未执行(权限或不存在)最常见的拒绝码
552存储超限超出配额
553文件名不允许非法文件名
升级到加密传输后遇到 534 与 535,先确认服务端是否强制 TLS:强制加密的服务器会拒绝任何明文登录尝试。
把 425 当成认证问题查会白费功夫:它表示数据连接建不起来,排查方向在被动端口范围与地址映射上,与账号无关。

易错点

  • 把 425 当认证问题查:它是数据连接建不起来,方向在被动端口与地址映射
  • 4xx 与 5xx 不分就无脑重试:5xx 重试只会浪费时间与配额
  • 只看首行应答:多行应答需要读全,否则会误判服务器能力
  • 见到 550 就断定文件不存在:权限不足与路径不存在都回 550,需要进一步区分
  • 被动模式端口范围未放行:登录与列目录都正常,只有实际传输卡住

数据来源与参考

  • RFC 959 §4.2(应答)
  • RFC 4217(安全应答示例)

相关工具

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