欢迎光临散文网 会员登陆 & 注册

FTP

2023-03-30 20:38 作者:--朱朱朱--  | 我要投稿

一、FTP介绍  

   文件传输协议(File Transfer Protocol,FTP),基于该协议FTP客户端与服务端可以实现共享文 件、上传文件、下载文件。 FTP 基于TCP协议生成一个虚拟的连接,主要用于控制FTP连接信息, 同时再生成一个单独的TCP连接用于FTP数据传输。用户可以通过客户端向FTP服务器端上传、下 载、删除文件,FTP服务器端可以同时提供给多人共享使用。

二、FTP工作原理

   FTP 是 C/S 架构的服务,拥有一个服务器端和一个客户端,FTP 底层通过 TCP 协议来作为传输协议,所以 FTP 协议是一种可靠的文件传输方式,FTP 提 供了两个端口号,20 和 21 号端口,20 号是数据接口,提供数据之间的传输,21 号是命令接口,提供命令之间的传输。  

三、FTP 传输模式介绍  

  • FTP基于C/S模式,FTP客户端与服务器端有两种传输模式,分别是FTP主动模式、FTP被动模式, 主被动模式均是以FTP服务器端为参照。

  • FTP主动模式:客户端从一个任意的端口N(N>1024)连接到FTP服务器的port 21命令端口,客 户端开始监听端口N+1,并发送FTP命令“port N+1”到FTP服务器,FTP服务器以数据端口(20)连 接到客户端指定的数据端口(N+1)。

  • FTP被动模式:客户端从一个任意的端口N(N>1024)连接到FTP服务器的port 21命令端口,客 户端开始监听端口N+1,客户端提交 PASV命令,服务器会开启一个任意的端口(P >1024),并 发送PORT P命令给客户端。客户端发起从本地端口N+1到服务器的端口P的连接用来传送数据。

  • 企业实际环境中,如果FTP客户端与FTP服务端均开放防火墙,FTP需以主动模式工作,这样只需 要在FTP服务器端防火墙规则中,开放20、21端口即可。  

四、Vsftp 客户端

  • FTP服务是Client/Server(简称C/S)模式,基于FTP协议实现FTP文件对外共享及传输的软件称之 为FTP服务器源端,客户端程序基于FTP协议,则称之为FTP客户端,FTP客户端可以向FTP服务器 上传、下载文件。

  • 目前主流的FTP服务器端软件包括:Vsftpd、ProFTPD、PureFTPd、Wuftpd、Server-U FTP、 FileZilla Server等软件,其中Unix/Linux使用较为广泛的FTP服务器端软件为Vsftpd 。  

  • 下载工具:FlashGet、Wget 等,包括大多数网页浏览器程序,都支持通过 FTP 协议下载文件,但因不具备 FTP 上传管理功能,通常不称为 FTP 客户端工具。

五、FTP状态码

1xx – 肯定的初步答复 ,这些状态代码指示一项操作已经成功开始,但客户端希望在继续操作新命令 前得到另一个答复。

  • 110 重新启动标记答复。

  • 120 服务已就绪,在 nnn 分钟后开始。

  • 125 数据连接已打开,正在开始传输。

  • 150 文件状态正常,准备打开数据连接。

2xx – 肯定的完成答复 一项操作已经成功完成客户端可以执行新命令。

  • 200 命令确定。

  • 202 未执行命令,站点上的命令过多。

  • 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 到您没有写入权限的目录 。

六、Vsftp 的登陆类型  

VSFTP提供了系统用户、匿名用户、和虚拟用户三种不同的登陆方式。所有的虚拟用户会映射成一个系 统用户,访问时的文件目录是为此系统用户的家目录;匿名用户也是虚拟用户,映射的系统用户为ftp, 详细信息可以通过man vsftpd.conf查看 。

匿名开放模式:是一种最不安全的认证模式,任何人都可以无需密码验证而直接登录 到 FTP 服务器。

本地用户模式:是通过 Linux 系统本地的账户密码信息进行认证的模式,相较于匿名 开放模式更安全,而且配置起来也很简单。但是如果被黑客破解了账户的信息,就可 以畅通无阻地登录 FTP 服务器,从而完全控制整台服务器。

虚拟用户模式:是这三种模式中最安全的一种认证模式,它需要为 FTP 服务单独 建立用户数据库文件,虚拟出用来进行口令验证的账户信息,而这些账户信息在 服务器系统中实际上是不存在的,仅供 FTP 服务程序进行认证使用。这样,即使 黑客破解了账户信息也无法登录服务器,从而有效降低了破坏范围和影响。  

FTP的评论 (共 条)

分享到微博请遵守国家法律