FTP的常见用途:


FTP客户和服务器之间要建立以下两个并行的TCP连接:
默认情况下,FTP使用TCP 21端口进行控制连接,TCP 20端口进行数据连接。但是,是否使用TCP 20端口建立数据连接与传输模式有关,主动方式使用TCP 20端口,被动方式由服务器和客户端自行协商决定。

FTP的命令分为6组:
接入命令使用户能够访问远程系统。
| 命令 | 参数 | 说明 |
|---|---|---|
| USER | 用户标识符 | 用户信息 |
| PASS | 用户口令 | 口令 |
| ACCT | 应付费的服务 | 财务信息 |
| REIN | 重新初始化 | |
| QUIT | 从系统注销 | |
| ABOR | 命令异常终止 |
文件管理命令使用户能访问到远程计算机的文件系统。
| 命令 | 参数 | 说明 |
|---|---|---|
| CWD | 目录名 | 改变到另一个目录 |
| CDUP | 改变到父目录 | |
| DELE | 文件名 | 删除文件 |
| LIST | 目录名 | 列出子目录或文件 |
| NLIST | 目录名 | 列出子目录或无其它属性的文件 |
| MKD | 目录名 | 创建新目录 |
| PWD | 显示当前目录 | |
| RMD | 目录名 | 删除目录 |
| RNFR | 文件名(旧文件名) | 标志要重新命名的文件 |
| RNTO | 文件名(新文件名) | 重新命名文件 |
| SWNT | 文件系统名 | 安装文件系统 |
数据格式化命令让用户定义数据结构、文件类型以及传输方式。
| 命令 | 参数 | 说明 |
|---|---|---|
| TYPE | A(ASCII),E(EBCDIC),I(图像),N(非打印),或T(TELNET) | 定义文件类型 |
| STRU | F(文件),R(记录),P(页面) | 定义数据的组织 |
| MODE | S(流),B(块),C(压缩) | 定义传输方式 |
| RMD | 目录名 | 删除目录 |
| RNFR | 文件名(旧文件名) | 标志要重新命名的文件 |
| RNTO | 文件名(新文件名) | 重新命名文件 |
| SWNT | 文件系统名 | 安装文件系统 |
端口定义命令定义客户端的数据连接使用的端口号。
| 命令 | 参数 | 说明 |
|---|---|---|
| PORT | 6个数字的标识符 | 客户选择端口 |
| PASV | 服务器选择端口 |
文件传输命令用于控制传输文件。
| 命令 | 参数 | 说明 |
|---|---|---|
| RETR | 文件名 | 读取文件:文件从服务器传送到客户 |
| STOR | 文件名 | 存储文件:文件从客户传送到服务器 |
| APPE | 文件名 | 与STOR类似,但是若文件存在,将数据添加到文件尾部 |
| STOU | 文件名 | 与STOR相同,但是文件名在目录中必须唯一 |
| ALLO | 文件名 | 在服务器为文件分配存储空间 |
| REST | 文件名 | 在指明的数据点给文件标记确定位置 |
| STAT | 文件名 | 返回文件的状态 |
杂项命令用于将用户要求的信息返回客户端。
| 命令 | 参数 | 说明 |
|---|---|---|
| HELP | 询问关于服务器的信息 | |
| NOOP | 检查服务器是否工作 | |
| SITE | 文件名 | 指明特定场所的命令 |
| SYST | 询问服务器使用的操作系统 |
响应分为两个部分:
将3位数字记为xyz,下面展示每一个数字的意义。
第一个数字定义命令的状态。该位置上可以使用下列5个数字:
第二个数字定义命令的状态。该位置上可以使用下列6个数字:
第三个数字提供附加信息,下表给出了可能出现的响应简短列表:
| 代码 | 说明 |
|---|---|
| —— | 正面初步回答 |
| 120 | 服务不久即将就绪 |
| 125 | 数据连接打开;数据传输不久即将开始 |
| 150 | 文件状态是OK |
| —— | 正面完成回答 |
| 200 | 命令OK |
| 211 | 系统状态或求助回答 |
| 212 | 目录状态 |
| 213 | 文件状态 |
| 214 | 求助报文 |
| 215 | 命名系统类型(操作系统) |
| 220 | 服务就绪 |
| 221 | 服务关闭 |
| 225 | 数据连接打开 |
| 226 | 关闭数据连接 |
| 227 | 进入被动方式,服务器发送IP地址和端口号 |
| 230 | 用户登录OK |
| 250 | 请求文件动作OK |
| —— | 正面中间回答 |
| 331 | 用户名OK:需要口令 |
| 332 | 需要登录账号 |
| 350 | 文件动作在进行中:需要更多的信息 |
| —— | 过渡负面完成回答 |
| 425 | 不能打开数据连接 |
| 426 | 连接关闭:不能识别的命令 |
| 450 | 未采取文件动作:文件不可用 |
| 451 | 动作异常终止:本地差错 |
| 452 | 动作异常终止:存储器不足 |
| —— | 永久负面完成回答 |
| 500 | 语法差错:不能识别的命令 |
| 501 | 参数或变量的语法差错 |
| 502 | 命令未实现 |
| 503 | 不良命令序列 |
| 504 | 命令参数未实现 |
| 530 | 用户未登录 |
| 532 | 存储文件需要账号 |
| 550 | 动作未完成:文件不可用 |
| 552 | 请求的动作异常终止:超过分配的存储器空间 |
| 553 | 未采取请求动作:文件名不允许 |
FTP的文件传输仅表示下列三件事件之一:
🔎 在 VMware 虚拟机中搭建 FTP 服务器 (详细)





注:PORT 192,168,26,1,36,123,该命令是客户端告知服务器,客户端的数据连接端口号为36*256+123=9339
❗ 转载请注明出处
作者:HinsCoder
博客链接:🔎 作者博客主页