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
博客链接:🔎 作者博客主页