FTP协议

FTP协议

一、FTP协议

1. 概念

  • FTP(文件传输协议),由两部分组成:服务器/客户端 C/S架构,应用场景:企业内部存放公司文件,开发网站时,利用FTP协议,将网页或程序传到网站服务器,网络中传输一些大文件也是用该协议
  • FTP:基于传输层TCP的,默认端口号(20号端口一般用于传输数据,21号端口用于传输控制信息),但是是否使用20号端口作为传输数据端口和FTP传输模式有关系
    • 如果采用主动模式:传输数据使用20号端口
    • 如果采用被动模式:传输数据使用的端口需要客户机和服务器协商决定
  • 主动模式(port方式)
    • 建立连接使用21号端口,客户端通过此通道向服务器发送port命令,服务器从20端口主动向客户端发起连接
  • 被动模式(pasv(passive)方式)
    • 建立连接使用21端口,客户机向服务器发送pasv命令,服务器收到会随机打开一个高端端口(大于1024),服务器在指定范围内的某个端口被动等待客户机连接
  • 传输文件时的传输模式
    • 文本模式:ASCII模式,以文本序列传输
    • 二进制模式:binary模式,(视频、图片、应用程序……)

二、FTP客户端和服务端

1. 服务端程序

  • serv-U
  • filezilla server
  • vsftpd
  • windows server IIS(FTP发布服务)

2. 客户端程序

  • 命令行

    ftp 192.168.10.10
  • 资源管理器

    ftp://192.168.10.10
  • 浏览器

    ftp://192.168.10.10
  • 第三方工具

    • flashFXP
    • filezilla client
    • cutefetp
    • xftp

三、FTP服务

  • 使用serv-u

1. FTP用户

  • 匿名用户
    • anonymoous固定名称(某些FTP的服务端软件也可以使用使用FTP用户名作为匿名用户
  • 普通用户

2. SERV-U

  • 默认使用被动模式

3. FTP协议状态码

类型 状态码 解析
1xx —肯定的初步答复(准备) 110 重新启动标记答复。
120 服务已就绪,在 n分钟后开始。
125 数据连接已打开,正在开始传输。
150 文件状态正常,准备打开数据连接。
2xx - 肯定的完成答复(完成) 200 命令确定。
211 系统状态,或系统帮助答复。
212 目录状态。
213 文件状态。
214 帮助消息。
215 name 系统类型,其中,NAME 是 Assigned Numbers 文档中所列的正式系统名称
220 服务就绪,可以执行新用户的请求。
221 服务关闭控制连接。如果适当,请注销。
225 数据连接打开,没有进行中的传输。
226 关闭数据连接。请求的文件操作已成功(例如,传输文件或放弃文件)。
227 进入被动模式 (h1,h2,h3,h4,p1,p2)。
230 用户已登录,继续进行。
250 请求的文件操作正确,已完成。
257 已创建“pathname”。
3xx - 肯定的中间答复(完成部分) 331 用户名正确,需要密码。
332 需要登录帐户。
350 请求的文件操作正在等待进一步的信息。
4xx - 瞬态否定的完成答复(不成功,暂时) 421 服务不可用,正在关闭控制连接。如果服务确定它必须关闭,将向任何命令发送这一应答。
425 无法打开数据连接。
426 Connection closed; transfer aborted.
450 未执行请求的文件操作。文件不可用(例如,文件繁忙)。
451 请求的操作异常终止:正在处理本地错误。
452 未执行请求的操作。系统存储空间不够。
5xx - 永久性否定的完成答复(不成功,永久) 500 语法错误,命令无法识别。这可能包括诸如命令行太长之类的错误。
501 在参数中有语法错误。
502 未执行命令。
503 错误的命令序列。
504 未执行该参数的命令。
530 未登录。
532 存储文件需要帐户。
550 未执行请求的操作。文件不可用(例如,未找到文件,没有访问权限)。
551 请求的操作异常终止:未知的页面类型。
552 请求的文件操作异常终止:超出存储分配(对于当前目录或数据集)。
553 未执行请求的操作。不允许的文件名。
  • 常见的 FTP 状态代码及其原因
状态码 原因
150 FTP 使用两个端口:21 用于发送命令,20 用于发送数据。状态代码 150 表示服务器准备在端口 20 上打开新连接,发送数据。
226 命令在端口 20 上打开数据连接以执行操作,如传输文件。操作成功完成,数据连接已关闭。
230 客户端发送正确的密码后,显示该状态代码。它表示用户已成功登录。
331 客户端发送用户名后,显示该状态代码。无论所提供的用户名是否为系统中的有效帐户,都将显示该状态代码。
426 命令打开数据连接以执行操作,但该操作已被取消,数据连接已关闭。
530 该状态代码表示用户无法登录,因为用户名和密码组合无效。如果使用某个用户帐户登录,可能键入错误的用户名或密码,也可能选择只允许匿名访问。如果使用匿名帐户登录,IIS 的配置可能拒绝匿名访问。
550 命令未被执行,因为指定的文件不可用。例如,要 GET 的文件并不存在,或试图将文件 PUT 到您没有写入权限的目录。
上一篇
下一篇