FTP协议命令 + 返回值 + 返回值解析

FTP协议命令 + 返回值 + 返回值解析

FTP message format:

  FTP commands are Telnet strings terminated by the Telnet end of line code. The command codes themselves are alphabetic character strings terminated by the character <Space> if parameters follow and <CRLF> otherwise.转载自:https://blog.csdn.net/wanghaihao_1/article/details/38266433

一、需要注意的几点

    ①FTP是一种文件传输协议,基于TCP,所以客户端与服务器建立的连接是可靠、安全的,并且要经过三次握手的过程。

    ②FTP传输数据默认采用二进制模式,即将文件内容转换为二进制表示后再传送,而若HTML等文本文件传输时需要转换成ASCII模式。

    ③FTP客户端在连接服务器时需要用到两个端口,其中一个端口(默认为21)用作控制连接端口,负责发送命令和等待响应;另一个端口用作数据传输,用来建立数据传输通道,端口号为20或其他可用端口号。

    ④FTP有两种连接模式:主动模式与被动模式。主动模式命令为PORT,此模式下客户端需要向服务器提供一个IP地址和端口号,由服务器来连接客户端的指定端口;被动模式命令为PASV,此模式下由服务器向客户端提供IP地址与端口号,由此解决主动模式下服务器到客户端的数据端口的连接被防火墙过滤掉的问题。

    ⑤FTP的工作流程为:客户端连接服务器->服务器连接成功返回->客户端发送初始化命令->服务器响应命令成功返回->客户端发送用户验证消息->服务器返回验证结果->验证通过,客户端进行数据操作->服务器响应客户端操作命令->客户端发送关闭连接命令->服务器响应关闭连接命令。

    ⑥通常FTP服务器只负责进行数据连接,在客户端发送命令要求关闭连接时,服务器才会关闭连接。但在以下情况服务器也会关闭数据连接:

       1.服务器发送数据结束,通过EOF文件结束标志终止传送。

       2.客户端发送ABORT命令。

       3.客户端改变了端口号。

       4.控制连接通道被关闭。

       5.传输过程中发生严重错误。

    ⑦FTP命令与响应码:

FTP Commands:

命令    描述                                                                                  响应码
_________________________________________________________________________________________________________________
ABOR Abort.
           中断数据连接程序 
_________________________________________________________________________________________________________________
ACCT Account.                                                                             202,230,421,500,501,502,503,530
           系统特权账号       
_________________________________________________________________________________________________________________
ADAT Authentication/Security Data. 
_________________________________________________________________________________________________________________
ALLO Allocate.
          为服务器上的文件存储器分配字节 
_________________________________________________________________________________________________________________
APPE Append.
          添加文件到服务器同名文件
_________________________________________________________________________________________________________________
AUTH Authentication/Security Mechanism.
_________________________________________________________________________________________________________________
CCC Clear Command Channel. 
_________________________________________________________________________________________________________________
CDUP Change to parent directory.                                               250,421,500,502,530,550
           改变服务器上的父目录 
_________________________________________________________________________________________________________________
CONF Confidentiality Protected Command. 
_________________________________________________________________________________________________________________
CWD Change working directory.                                                   250,421,500,501,502,530,550
           改变服务器上的工作目录 
_________________________________________________________________________________________________________________
DELE Delete.                                                                                250,421,502,530,550
          删除服务器上的指定文件 
_________________________________________________________________________________________________________________
ENC   Privacy Protected Command. 
_________________________________________________________________________________________________________________
EPRT Extended Data port. 
_________________________________________________________________________________________________________________
EPSV Extended Passive. 
_________________________________________________________________________________________________________________
FEAT Feature. 
_________________________________________________________________________________________________________________
HELP Help.
          返回指定命令信息 
_________________________________________________________________________________________________________________
LANG Language negotiation. 
_________________________________________________________________________________________________________________
LIST List.                                                                                      125,150,226,250,421,425,426,450, 451,500,501,502,530
        如果是文件名列出文件信息,如果是目录则列出文件列表
_________________________________________________________________________________________________________________
LPRT Long data port. 
_________________________________________________________________________________________________________________
LPSV Long passive. 
_________________________________________________________________________________________________________________
MDTM File modification time. 
_________________________________________________________________________________________________________________
MIC Integrity Protected Command. 
_________________________________________________________________________________________________________________
MKD Make directory.
        在服务器上建立指定目录
_________________________________________________________________________________________________________________
MLSD 
_________________________________________________________________________________________________________________
MLST       列出指定目录内容                                                          同LIST命令
_________________________________________________________________________________________________________________
MODE Transfer mode.
             传输模式(S=流模式,B=块模式,C=压缩模式)
_________________________________________________________________________________________________________________
NLST   Name list. 
_________________________________________________________________________________________________________________
NOOP No operation.                                                                      200,421,500
            无动作,除了来自服务器上的承认 
_________________________________________________________________________________________________________________
OPTS Options. 
_________________________________________________________________________________________________________________
PASS Password.                                                                             202,230,332,421,500,501,530
          系统登录密码          
_________________________________________________________________________________________________________________
PASV Passive mode.                                                                     227,421,500,501,503
          请求服务器等待数据连接                             
_________________________________________________________________________________________________________________
PBSZ Protection Buffer Size. 
_________________________________________________________________________________________________________________
PORT Data port.                                                                           200,421,500,501,530
          IP 地址和两字节的端口 ID 
_________________________________________________________________________________________________________________
PROT Data Channel Protection Level. 
_________________________________________________________________________________________________________________
PWD Print working directory.                                                        257,421,500,501,502,550
        显示(打印)当前工作目录 
_________________________________________________________________________________________________________________
QUIT Logout.
         从 FTP 服务器上退出登录 
_________________________________________________________________________________________________________________
REIN Reinitialize.                                                                           120,220,421,500,502
         重新初始化登录状态连接 
_________________________________________________________________________________________________________________
REST Restart of interrupted transfer.                                            350,421,500,501,502,530
          由特定偏移量重启文件传递 
_________________________________________________________________________________________________________________
RETR Retrieve.                                                                             110,125,150,226,250,421,425,426, 450,451,500,501,504,530,550
          从服务器上找回(复制)文件                           
_________________________________________________________________________________________________________________
RMD Remove directory.
         在服务器上删除指定目录 
_________________________________________________________________________________________________________________
RNFR Rename from.
           对旧路径重命名 
_________________________________________________________________________________________________________________
RNTO Rename to.
           对新路径重命名 
_________________________________________________________________________________________________________________
SITE Site parameters.
         由服务器提供的站点特殊参数 
_________________________________________________________________________________________________________________
SIZE File size. 
_________________________________________________________________________________________________________________
SMNT Structure mount.
           挂载指定文件结构 
_________________________________________________________________________________________________________________
STAT Status.                                                                                 211,212,213,421,450,500,501,502,530
           在当前程序或目录上返回信息 
_________________________________________________________________________________________________________________
STOR Store.     110,125,150,226,250,421,425,426,450,451,452,500,501,504,530,532,550,551,552,553
           储存(复制)文件到服务器上                           
_________________________________________________________________________________________________________________
STOU Store unique.
           储存文件到服务器名称上
_________________________________________________________________________________________________________________
STRU File structure.
          数据结构(F=文件,R=记录,P=页面) 
_________________________________________________________________________________________________________________
SYST System.
          返回服务器使用的操作系统
_________________________________________________________________________________________________________________
TYPE Representation type.                                                                          200,421,500,501,504,530
          数据类型(A=ASCII,E=EBCDIC,I=binary) 
_________________________________________________________________________________________________________________
USER User name.                                                                                         230,331,332,421,500,501,530
          系统登录的用户名 
_________________________________________________________________________________________________________________
XCUP Change to the parent of the current working directory. 
_________________________________________________________________________________________________________________
XMKD Make a directory. 
_________________________________________________________________________________________________________________
XPWD Print the current working directory. 
_________________________________________________________________________________________________________________
XRCP 
_________________________________________________________________________________________________________________
XRMD Remove the directory. 
_________________________________________________________________________________________________________________
XRSQ 
_________________________________________________________________________________________________________________
XSEM Send, Mail if cannot. 
_________________________________________________________________________________________________________________
XSEN Send to terminal. 
_________________________________________________________________________________________________________________

FTP服务器的响应是3位的响应码,其中第一位表示响应是好、是坏还是未完:
Code Description
_________________________________________________________________________________________________________________
1yz    Positive Preliminary reply.
        肯定的初步答复:这些状态代码指示一项操作已经成功开始,但客户端希望在继续操作新命令前得到另一个答复。
_________________________________________________________________________________________________________________
2yz    Positive Completion reply.
        肯定的完成答复:一项操作已经成功完成。客户端可以执行新命令。
_________________________________________________________________________________________________________________
3yz    Positive Intermediate reply.
        肯定的中间答复:该命令已成功,但服务器需要更多来自客户端的信息以完成对请求的处理。
_________________________________________________________________________________________________________________
4yz    Transient Negative Completion reply.
        瞬态否定的完成答复:该命令不成功,但错误是暂时的。如果客户端重试命令,可能会执行成功。
_________________________________________________________________________________________________________________
5yz    Permanent Negative Completion reply.
        永久性否定的完成答复:该命令不成功,错误是永久性的。如果客户端重试命令,将再次出现同样的错误。
_________________________________________________________________________________________________________________

响应码第二位表示了特定的分类,具体内容如下:
Code Description
_________________________________________________________________________________________________________________

x0z    Syntax. These replies refer to syntax errors, syntactically correct commands that don't fit any functional category, unimplemented or superfluous commands.
        语法错误,表示不符合任何功能分类的命令,可能是未实现的命令或者多余的命令。
_________________________________________________________________________________________________________________
x1z    Information. These are replies to requests for information, such as status or help.
        信息类型
_________________________________________________________________________________________________________________
x2z    Connections. Replies referring to the control and data connections.
        连接类型
_________________________________________________________________________________________________________________
x3z    Authentication and accounting. Replies for the login process and accounting procedures.
        与注册或者登陆相关命令的应答
_________________________________________________________________________________________________________________
x4z   未定义
_________________________________________________________________________________________________________________
x5z    File system. These replies indicate the status of the Server file system vis-a-vis the requested transfer or other file system action.
        文件系统状态 
_________________________________________________________________________________________________________________

响应码第三位是对第二位的分级,给出了差错的附加含义,具体内容如下:
Code Description
_________________________________________________________________________________________________________________
110    Restart marker reply.                              重新启动标记答复。
120    Service ready in nnn minutes.                      服务已就绪,在nnn分钟后开始。   
125    Data connection already open; transfer starting.   数据连接已打开,正在开始传输。 
150    File status okay; about to open data connection.   文件状态正常,准备打开数据连接。
200    Command okay.                                      命令确定。
202    Command not implemented, superfluous at this site. 未执行命令,站点上的命令过多
211    System status, or system help reply.               系统状态,或系统帮助答复。
212    Directory status.                                  目录状态。
213    File status.                                       文件状态。
214    Help message.                                      帮助消息。
215    NAME system type.                    NAME系统类型,其中,NAME是Assigned Numbers文档中所列的正式系统名称。
220    Service ready for new user.                        服务就绪,可以执行新用户的请求。
221    Service closing control connection.                服务关闭控制连接。如果适当,请注销。
225    Data connection open; no transfer in progress.     数据连接打开,没有进行中的传输。
226    Closing data connection.                 关闭数据连接。请求的文件操作已成功(例如,传输文件或放弃文件)。
227    Entering Passive Mode <h1,h2,h3,h4,p1,p2>.         进入被动模式(h1,h2,h3,h4,p1,p2)。
228    Entering Long Passive Mode.
229    Extended Passive Mode Entered.
230    User logged in, proceed.                           用户已登录,继续进行。
250    Requested file action okay, completed.             请求的文件操作正确,已完成。
257    "PATHNAME" created.                                已创建“PATHNAME”。
331    User name okay, need password.                     用户名正确,需要密码。
332    Need account for login.                            需要登录帐户。
350    Requested file action pending further information. 请求的文件操作正在等待进一步的信息。
421    Service not available, closing control connection. 
        服务不可用,正在关闭控制连接。如果服务确定它必须关闭,将向任何命令发送这一应答。
425    Can't open data connection.                        无法打开数据连接。
426    Connection closed; transfer aborted.               连接被关闭,数据传输中断。
450    Requested file action not taken.                   未执行请求的文件操作。文件不可用。
451    Requested action aborted. Local error in processing.请求的操作异常终止:正在处理本地错误。
452    Requested action not taken.                        未执行请求的操作。系统存储空间不够。
500    Syntax error, command unrecognized.      语法错误,命令无法识别。这可能包括诸如命令行太长之类的错误。
501    Syntax error in parameters or arguments.           在参数中有语法错误。
502    Command not implemented.                           未执行命令。
503    Bad sequence of commands.                          错误的命令序列。
504    Command not implemented for that parameter.        未执行该参数的命令。
521    Supported address families are <af1, .., afn>
522    Protocol not supported.
530    Not logged in.                                     未登录。
532    Need account for storing files.                    存储文件需要帐户。
550    Requested action not taken.                        未执行请求的操作。文件不可用。
551    Requested action aborted. Page type unknown.       请求的操作异常终止:未知的页面类型。
552    Requested file action aborted.                     请求的文件操作异常终止:超出存储分配(对于当前目录或数据集)。
553    Requested action not taken.                        未执行请求的操作。不允许的文件名。
554    Requested action not taken: invalid REST parameter.
555    Requested action not taken: type or struct mismatch.
_________________________________________________________________________________________________________________

        FTP响应通常是单行的,格式为"响应码 + 空格 + 提示信息 + \r\n"。如果需要产生一条多行应答,第1行在第3位数字应答码之后包含一个连字号,而不是空格,最后一行包含相同的3位数字应答码,后跟一个空格字符。

FTP:文件传输协议(指令及响应代码)

  文件传输协议(FTP)使得主机间可以共享文件。 FTP 使用 TCP 生成一个虚拟连接用于控制信息,然后再生成一个单独的 TCP 连接用于数据传输。控制连接使用类似 TELNET 协议在主机间交换命令和消息。FTP 的主要功能如下:

  • 提供文件的共享(计算机程序 / 数据);
  • 支持间接使用远程计算机;
  • 使用户不因各类主机文件存储器系统的差异而受影响;
  • 可靠且有效的传输数据。

  FTP ,尽管可以直接被终端用户使用,但其应用主要还是通过程序实现。FTP 控制帧即指 TELNET 交换信息,包含 TELNET 命令和选项。然而,大多数 FTP 控制帧是简单的 ASCII 文本,可以分为 FTP 命令或 FTP 消息。 FTP 消息是对 FTP 命令的响应,它由带有解释文本的应答代码构成。

命令 描述
ABOR 中断数据连接程序
ACCT <account> 系统特权帐号
ALLO <bytes> 为服务器上的文件存储器分配字节
APPE <filename> 添加文件到服务器同名文件
CDUP <dir path> 改变服务器上的父目录
CWD <dir path> 改变服务器上的工作目录
DELE <filename> 删除服务器上的指定文件
HELP <command> 返回指定命令信息
LIST <name> 如果是文件名列出文件信息,如果是目录则列出文件列表
MODE <mode> 传输模式(S=流模式,B=块模式,C=压缩模式)
MKD <directory> 在服务器上建立指定目录
NLST <directory> 列出指定目录内容
NOOP 无动作,除了来自服务器上的承认
PASS <password> 系统登录密码
PASV 请求服务器等待数据连接
PORT <address> IP 地址和两字节的端口 ID
PWD 显示当前工作目录
QUIT 从 FTP 服务器上退出登录
REIN 重新初始化登录状态连接
REST <offset> 由特定偏移量重启文件传递
RETR <filename> 从服务器上找回(复制)文件
RMD <directory> 在服务器上删除指定目录
RNFR <old path> 对旧路径重命名
RNTO <new path> 对新路径重命名
SITE <params> 由服务器提供的站点特殊参数
SMNT <pathname> 挂载指定文件结构
STAT <directory> 在当前程序或目录上返回信息
STOR <filename> 储存(复制)文件到服务器上
STOU <filename> 储存文件到服务器名称上
STRU <type> 数据结构(F=文件,R=记录,P=页面)
SYST 返回服务器使用的操作系统
TYPE <data type> 数据类型(A=ASCII,E=EBCDIC,I=binary)
USER <username> 系统登录的用户名

 

标准FTP信息如下: 

响应代码 解释说明
110 新文件指示器上的重启标记
120 服务器准备就绪的时间(分钟数)
125 打开数据连接,开始传输
150 打开连接
200 成功
202 命令没有执行
211 系统状态回复
212 目录状态回复
213 文件状态回复
214 帮助信息回复
215 系统类型回复
220 服务就绪
221 退出网络
225 打开数据连接
226 结束数据连接
227 进入被动模式(IP 地址、ID 端口)
230 登录因特网
250 文件行为完成
257 路径名建立
331 要求密码
332 要求帐号
350 文件行为暂停
421 服务关闭
425 无法打开数据连接
426 结束连接
450 文件不可用
451 遇到本地错误
452 磁盘空间不足
500 无效命令
501 错误参数
502 命令没有执行
503 错误指令序列
504 无效命令参数
530 未登录网络
532 存储文件需要帐号
550 文件不可用
551 不知道的页类型
552 超过存储分配
553 文件名不允许
没有坚守就没有事业,没有执着就没有未来!
posted @ 2021-12-16 16:09  邃蓝星空  阅读(3726)  评论(0编辑  收藏  举报