【1.8.1.3】FTP内部命令大汇总与应答码
在上述的 FTP 工作流程中,客户端成功连接 FTP 服务器以后,进行身了份验证、执行 FTP 命令等操作。这些操作都是客户端向 FTP 服务器发出的请求,而这些请求实际上是在发送 FTP 命令。
对于每一个请求,服务器都会返回对应的应答码。例如,客户端输入用户名,实际上就是在发送 FTP 子命令。该子命令为 USER,表示服务器上的用户名。
FTP 命令及应答码信息如下:
Name (192.168.59.135:root): sm #FTP命令, 这里为用户名sm
331 User name ok, need password #FTP应答码, 这里为331
上述操作,通过抓包可以查看到对应的 FTP 命令和应答码,如图所示。
上图中第 8 个数据包为客户端向 FTP 服务器发送的 FTP 命令,命令为 USER,其中 sm 表示客户端输入的用户名。第 9 个数据包为 FTP 服务器对该请求返回的应答,应答码为 331。
一、FTP 内部命令及作用如表所示。
客户端与 FTP 服务器之间进行文件传输时,可以执行多种操作。常见的 FTP 命令如表所示。
FTP 内部命令
命令 | 作用 |
---|---|
! [command [args]] | 在本地机中执行交互 shell,exit 回到 FTP 环境,例如:! LS*. zip |
$ macro-name [names] | 运行宏,macro_name 为宏的名称 |
account [password] | 提供登录远程系统成功后,访问系统资源所需的补充口令 |
append local-file [remote-file] | 将本地文件追加到远程系统主机,若未指定远程系统文件名,则使用本地文件名 |
ascii | 将文件传送类型设置为 ASCII |
bell | 每个命令执行完毕后计算机响铃一次 |
binary | 使用二进制文件传输方式 |
bye | 结束与远程计算机的 FTP 会话,并退出 FTP |
case | 在使用 mget 时,将远程主文件名中的大写字母转换为小写字母 |
cd remote-directory | 进入远程主机指定目录 |
cdup | 更改的远程计算机上的目录,跳到上一层目录 |
chmod mode file-name | 将远程主机文件 file-name 的存取方式设置为 mode |
close | 中断与远程服务器的 FTP 会话 |
cr | 使用 ASCII 方式传输文件时,将回车换行符转换为回行符 |
delete remote-file | 删除远程主机文件 |
debug [debug-value] | 设置调试方式,显示发送至远程主机的每条命令,如 dep up 3。若设置为 0,表示取消 debug |
dir [remote-directory] [local-file] | 显示远程主机命令,并将结果存入本地文件 local-file |
disconnect A synonym for close | 中断与远程服务器的 FTP 会话 |
form format | 将文件传输方式设置为 format,默认为 file 方式 |
get remote-file [local-file] | 将远程主机的文件 remote-file 传至本地硬盘的 local-file(下载文件) |
glob | 设置 mdelete、mget、mput 的文件名扩展,默认情况下不显示扩展文件名,同命令行的 -g 参数 |
hash [increment] | 每传输 1024 字节,显示一个 hash 符号(#) |
help [command] | 显示 FTP 内部命令 command 的帮助信息 |
idle [seconds] | 将远程服务器的休眠计时器单位设为秒 |
image | 设置二进制传输方式 |
lcd [directory] | 将本地工作目录切换至 directory |
ls [remote-directory] [local-file] | 显示远程目录 remote-dir,并存入本地文件 local-file |
macdef macro-name | 定义一个宏,遇到 macdef 下的空行时,宏定义结束 |
mdelete [remote-files] | 删除远程主机文件 |
mdir remote-files local-file | 与 dlr 类似,但可指定多个远程文件 |
mget remote-files | 传输多个远程文件 |
mkdir directory-name | 在远程主机中创建目录 |
mode [mode-name] | 将文件传输方式设置为 modename,默认为 stream 方式 |
modtime file-name | 显示远程主机文件的最后修改时间 |
mput local-files | 将多个文件传输至远程主机 |
newer file-name[local-file] | 如果远程主机中 file-name 的修改时间比本地硬盘同名文件的时间更近,则重新传输该文件 |
nlist [remote-directory] [local-file] | 显示远程主机目录的文件清单,并存入本地硬盘的 local-file |
nmap [inpattern outpattern] | 设置文件映射机制,使得文件传输时,文件中的某些字符相互转换 |
ntrans [inchars [outchars]] | 设置文件名字符的翻译机制,如 ntrans 1R,则文件名 LLL 将变为 RRR |
open host[port] | 建立指定 FTP 服务器连接,可指定连接端口 |
prompt | 设置多个文件传输时的交互提示 |
put local-file[remote-file] | 将本地文件 local-file 传送至远程主机(上传文件) |
pwd | 显示远程主机的当前工作目录 |
quit | 退出 FTP 会话 |
rename [from] [to] | 更改远程主机文件名 |
rmdir directory-name | 删除远程主机目录 |
status | 显示当前 FTP 状态 |
system | 显示远程主机的操作系统类型 |
type [type-name] | 设置文件传输类型为 type-name,默认为 ASCII。例如:type binary。设置使用二进制传输方式 |
user user-name [password] [account] | 向远程主机标明自己的身份,需要口令时,必须输入口令 |
verbose | 切换详细模式,在该模式下,显示所有来自 FTP 服务器的消息 |
? [command] | 显示帮助信息 |
二、而常见的 FTP 应答如表所示。
应答码 | 说明 |
---|---|
110 | 新文件指示器上的重启标记 |
120 | 服务器准备就绪的时间(分钟数) |
125 | 打开数据连接,开始传输 |
150 | 打开数据连接 |
200 | 就绪命令(命令成功) |
202 | 命令没有执行 |
211 | 系统状态回复 |
212 | 目录状态回复 |
213 | 文件状态回复 |
214 | 帮助信息回复 |
215 | 系统类型回复 |
220 | 服务就绪 |
221 | 退出 FTP |
225 | 打开数据连接 |
226 | 结束数据连接(下载完成、目录列表完成等) |
227 | 进入被动模式(IP 地址、ID 端口) |
230 | 成功登录 FTP 服务 |
250 | 完成目录切换 |
257 | 路径名建立 |
331 | 要求密码 |
332 | 要求账号 |
350 | 文件行为暂停 |
421 | 服务关闭 |
425 | 无法打开数据连接 |
426 | 结束连接 |
450 | 文件不可用 |
451 | 遇到本地错误 |
452 | 磁盘空间不足 |
500 | 无效命令 |
501 | 错误参数 |
502 | 命令没有执行 |
503 | 错误指令序列 |
504 | 无效命令参数 |
530 | 登录 FTP 服务失败 |
532 | 存储文件需要账号 |
550 | 文件不存在 |
551 | 不知道的页类型 |
552 | 超过存储分配 |
553 | 文件名不允许 |
参考资料
这里是一个广告位,,感兴趣的都可以发邮件聊聊:tiehan@sina.cn
个人公众号,比较懒,很少更新,可以在上面提问题,如果回复不及时,可发邮件给我: tiehan@sina.cn
个人公众号,比较懒,很少更新,可以在上面提问题,如果回复不及时,可发邮件给我: tiehan@sina.cn