怎么理解ftp协议

76次阅读
没有评论

共计 6076 个字符,预计需要花费 16 分钟才能阅读完成。

怎么理解 ftp 协议,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面丸趣 TV 小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。

FTP 是 File Transfer Protocol(
  文件传输协议
 )的英文简称,而中文简称为“文传协议”。用于 Internet 上的控制文件的双向传输。同时,它也是一个应用程序(Application)。用户可以通过它把自己的 PC 机与世界各地所有运行 FTP 协议的服务器相连,访问服务器上的大量程序和信息。FTP 的主要作用,就是让用户连接上一个远程计算机(这些计算机上运行着 FTP 服务器程序)察看远程计算机有哪些文件,然后把文件从远程计算机上拷到本地计算机,或把本地计算机的文件送到远程计算机去。
 

工作原理举例说明

以下载文件为例,当你启动 FTP 从远程计算机拷贝文件时实际上启动了两个程序:一个本地机上的 FTP 客户程序,它向 FTP 服务器提出拷贝文件的请求。另一个是启动在远程计算机的上的 FTP 服务器程序,它响应你的请求把你指定的文件传送到你的计算机中。FTP 采用“客户机 / 服务器”方式,用户端要在自己的本地计算机上安装 FTP 客户程序。FTP 客户程序有字符界面和图形界面两种。字符界面的 FTP 的命令复杂、繁多。图形界面的 FTP 客户程序,操作上要简洁方便的多。

文件传输协议

简单地说,支持 FTP 协议的服务器就是 FTP 服务器,下面介绍一下什么是 FTP 协议。(文件传输协议)

一般来说,用互联网的首要目的就是实现信息共享,文件传输是信息共享非常重要的一个内容之一。Internet 上早期实现传输文件,并不是一件容易的事,我们知道 Internet 是一个非常复杂的计算机环境,有 PC,有工作站,有 MAC,有大型机,而连接在 Internet 上的计算机有上千万台,并且这些计算机可能运行不同的操作系统,有运行 Unix 的服务器,也有运行 Dos、Windows 的 PC 机和运行 MacOS 的苹果机等等,而各种操作系统之间的文件交流问题,需要建立一个统一的文件传输协议,这就是所谓的 FTP。基于不同的操作系统有不同的 FTP 应用程序,而所有这些应用程序都遵守同一种协议,这样用户就可以把自己的文件传送给别人,或者从其它的用户环境中获得文件。

服务器系统

与大多数 Internet 服务一样,FTP 也是一个客户机 / 服务器系统。用户通过一个支持 FTP 协议的客户机程序,连接到在远程主机上的 FTP 服务器程序。用户通过客户机程序向服务器程序发出命令,服务器程序执行用户所发出的命令,并将执行的结果返回到客户机。比如说,用户发出一条命令,要求服务器向用户传送某一个文件的一份拷贝,服务器会响应这条命令,将指定文件送至用户的机器上。客户机程序代表用户接收到这个文件,将其存放在用户目录中。

在 FTP 的使用当中,用户经常遇到两个概念:下载(Download)和 上传(Upload)。下载 文件就是从远程主机拷贝文件至自己的计算机上;上传 文件就是将文件从自己的计算机中拷贝至远程主机上。用 Internet 语言来说,用户可通过客户机程序向(从)远程主机上传(下载)文件。

使用 FTP 时必须首先登录,在远程主机上获得相应的权限以后,方可下载或上传文件。也就是说,要想同哪一台计算机传送文件,就必须具有哪一台计算机的适当授权。换言之,除非有用户 ID 和口令,否则便无法传送文件。这种情况违背了 Internet 的开放性,Internet 上的 FTP 主机何止千万,不可能要求每个用户在每一台主机上都拥有帐号。匿名 FTP 就是为解决这个问题而产生的。

匿名 FTP 是这样一种机制,用户可通过它连接到远程主机上,并从其下载文件,而无需成为其注册用户。系统管理员建立了一个特殊的用户 ID,名为 anonymous, Internet 上的任何人在任何地方都可使用该用户 ID。

通过 FTP 程序连接匿名 FTP 主机的方式同连接普通 FTP 主机的方式差不多,只是在要求提供用户标识 ID 时必须输入 anonymous,该用户 ID 的口令可以是任意的字符串。习惯上,用自己的 E -mail 地址作为口令,使系统维护程序能够记录下来谁在存取这些文件。

值得注意的是,匿名 FTP 不适用于所有 Internet 主机,它只适用于那些提供了这项服务的主机。

当远程主机提供匿名 FTP 服务时,会指定某些目录向公众开放,允许匿名存取。系统中的其余目录则处于隐匿状态。作为一种安全措施,大多数匿名 FTP 主机都允许用户从其下载文件,而不允许用户向其上传文件,也就是说,用户可将匿名 FTP 主机上的所有文件全部拷贝到自己的机器上,但不能将自己机器上的任何一个文件拷贝至匿名 FTP 主机上。即使有些匿名 FTP 主机确实允许用户上传文件,用户也只能将文件上传至某一指定上传目录中。随后,系统管理员会去检查这些文件,他会将这些文件移至另一个公共下载目录中,供其他用户下载,利用这种方式,远程主机的用户得到了保护,避免了有人上传有问题的文件,如带病毒的文件。

作为一个 Internet 用户,可通过 FTP 在任何两台 Internet 主机之间拷贝文件。但是,实际上大多数人只有一个 Internet 帐户,FTP 主要用于下载公共文件,例如共享软件、各公司技术支持文件等。Internet 上有成千上万台匿名 FTP 主机,这些主机上存放着数不清的文件,供用户免费拷贝。实际上,几乎所有类型的信息,所有类型的计算机程序都可以在 Internet 上找到。这是 Internet 吸引我们的重要原因之一。

匿名 ftp

匿名 FTP 使用户有机会存取到世界上最大的信息库,这个信息库是日积月累起来的,并且还在不断增长,永不关闭,涉及到几乎所有主题。而且,这一切是免费的。

匿名 FTP 是 Internet 网上发布软件的常用方法。Internet 之所以能延续到今天,是因为人们使用通过标准协议提供标准服务的程序。像这样的程序,有许多就是通过匿名 FTP 发布的,任何人都可以存取它们。

Internet 中的有数目巨大的匿名 FTP 主机以及更多的文件,那么到底怎样才能知道某一特定文件位于哪个匿名 FTP 主机上的那个目录中呢?这正是 Archie 服务器所要完成的工作。Archie 将自动在 FTP 主机中进行搜索,构造一个包含全部文件目录信息的数据库,使你可以直接找到所需文件的位置信息。

 
 

FTP 的用户分类及权限归属 Real 帐户

这类用户是指在 FTP 服务上拥有帐号。当这类用户登录 FTP 服务器的时候,其默认的主目录就是其帐号命名的目录。但是,其还可以变更到其他目录中去。如系统的主目录等等。

Guest 用户

在 FTP 服务器中,我们往往会给不同的部门或者某个特定的用户设置一个帐户。但是,这个账户有个特点,就是其只能够访问自己的主目录。服务器通过这种方式来保障 FTP 服务上其他文件的安全性。这类帐户,在 Vsftpd 软件中就叫做 Guest 用户。拥有这类用户的帐户,只能够访问其主目录下的目录,而不得访问主目录以外的文件。

Anonymous(匿名)用户

这也是我们通常所说的匿名访问。这类用户是指在 FTP 服务器中没有指定帐户,但是其仍然可以进行匿名访问某些公开的资源。

在组建 FTP 服务器的时候,我们就需要根据用户的类型,对用户进行归类。默认情况下,Vsftpd 服务器会把建立的所有帐户都归属为 Real 用户。但是,这往往不符合企业安全的需要。因为这类用户不仅可以访问自己的主目录,而且,还可以访问其他用户的目录。这就给其他用户所在的空间 带来一定的安全隐患。所以,企业要根据实际情况,修改用户所在的类别。[1]

 

FTP 客户端

ftp 客户端。体积可以说是最小的了,只有 330K,免费中文版不需要汉化和破解的缘故吧。功能也非常强大,应有尽有。可以支持多线程上传;还支持直接上传压缩包后在空间上直接解压。

8uftp 是非常精辟的 ftp 客户端。目前体积最小的 FTP 客户端工具。

终身免费中文版,非汉化版,非破解版。

涵盖其它 FTP 工具功能

独家支持多线程上传,使上传速度更快更稳定。

同时支持直接上传压缩包,可在空间上直接解压。也可以在空间上压缩后直接下载压缩包。

8uftp 2.6 升级功能

1. 增加远程 ftp 目录的复制 URL 功能

2. 增加远程 ftp 目录和本地目录对比的工具

 

通过 FTP 传输文件的一般步骤命令提示

需要进行远程文件传输的计算机必须安装和运行 ftp 客户程序。在 windows 操作系统的安装过程中,通常都安装了 tcp/ip 协议软件,其中就包含了 ftp 客户程序。但是该程序是字符界面而不是图形界面,这就必须以命令提示符的方式进行操作,很不方便。

启动 ftp 客户程序工作的另一途径是使用 ie 浏览器,用户只需要在 ie 地址栏中输入如下格式的 url 地址:ftp://[用户名:口令 @]ftp 服务器域名 [:端口号]

(在 CMD 命令行下也可以用上述方法连接,通过 put 命令和 get 命令达到上传和下载的目的,通过 ls 命令列出目录,除了上述方法外还可以在 cmd 下输入 ftp 回车,然后输入 open IP 来建立一个连接,此方法还适用于 linux 下连接 ftp 服务器)

通过 ie 浏览器启动 ftp 的方法尽管可以使用,但是速度较慢,还会将密码暴露在 ie 浏览器中而不安全。因此一般都安装并运行专门的 ftp 客户程序。

1. 在本地电脑上登陆到国际互联网.

2. 搜索有文件共享主机或者个人电脑 (一般有专门的 FTP 服务器网站上公布的, 上面有进入该主机或个人电脑的名称, 口令和路径).

3. 当与远程主机或者对方的个人电脑建立连接后, 用对方提供的用户名和口令登陆到该主机或对方的个人电脑.

4. 在远程主机或对方的个人电脑登陆成功后, 就可以上传你想跟别人分享的东西或者下载别人授权共享的东西 (这里的东西是指能放到电脑里去又能在显示屏上看到的东西).

5. 完成工作后关闭 FTP 下载软件, 切断连接.

为了实现文件传输, 用户还要运行专门的文件传输程序, 比如网际快车就有这方面的功能, 其它还有很多专门的 FTP 传输软件,FlashFxp 为其中的杰出软件。有兴趣的网友可以试试其他的软件,如 LeapFTP 总归各有各的特色.

FTP 协议

TCP/IP 协议中,FTP 标准命令 TCP 端口号为 21,Port 方式数据端口为 20。FTP 协议的任务是从一台计算机将文件传送到另一台计算机,它与这两台计算机所处的位置、联接的方式、甚至是是否使用相同的操作系统无关。假设两台计算机通过 ftp 协议对话,并且能访问 Internet,你可以用 ftp 命令来传输文件。每种操作系统使用上有某一些细微差别,但是每种协议基本的命令结构是相同的。

FTP 的传输有两种方式:ASCII 传输模式和二进制数据传输模式。

1.ASCII 传输方式:假定用户正在拷贝的文件包含的简单 ASCII 码文本,如果在远程机器上运行的不是 UNIX,当文件传输时 ftp 通常会自动地调整文件的内容以便于把文件解释成另外那台计算机存储文本文件的格式。

但是常常有这样的情况,用户正在传输的文件包含的不是文本文件,它们可能是程序,数据库,字处理文件或者压缩文件(尽管字处理文件包含的大部分是文本,其中也包含有指示页尺寸,字库等信息的非打印字符)。在拷贝任何非文本文件之前,用 binary 命令告诉 ftp 逐字拷贝,不要对这些文件进行处理,这也是下面要讲的二进制传输。

2.二进制传输模式:在二进制传输中,保存文件的位序,以便原始和拷贝的是逐位一一对应的。即使目的地机器上包含位序列的文件是没意义的。例如,macintosh 以二进制方式传送可执行文件到 Windows 系统,在对方系统上,此文件不能执行。

如果你在 ASCII 方式下传输二进制文件,即使不需要也仍会转译。这会使传输稍微变慢,也会损坏数据,使文件变得不能用。(在大多数计算机上,ASCII 方式一般假设每一字符的第一有效位无意义,因为 ASCII 字符组合不使用它。如果你传输二进制文件,所有的位都是重要的。)如果你知道这两台机器是同样的,则二进制方式对文本文件和数据文件都是有效的。

5. FTP 的工作方式

FTP 支持两种模式,一种方式叫做 Standard (也就是 PORT 方式,主动方式),一种是 Passive (也就是 PASV,被动方式)。Standard 模式 FTP 的客户端发送 PORT 命令到 FTP 服务器。Passive 模式 FTP 的客户端发送 PASV 命令到 FTP Server。

下面介绍一个这两种方式的工作原理:

Port 模式 FTP 客户端首先和 FTP 服务器的 TCP 21 端口建立连接,通过这个通道发送命令,客户端需要接收数据的时候在这个通道上发送 PORT 命令。PORT 命令包含了客户端用什么端口接收数据。在传送数据的时候,服务器端通过自己的 TCP 20 端口连接至客户端的指定端口发送数据。FTP server 必须和客户端建立一个新的连接用来传送数据。

Passive 模式在建立控制通道的时候和 Standard 模式类似,但建立连接后发送的不是 Port 命令,而是 Pasv 命令。FTP 服务器收到 Pasv 命令后,随机打开一个临时端口(也叫自由端口,端口号大于 1023 小于 65535)并且通知客户端在这个端口上传送数据的请求,客户端连接 FTP 服务器此端口,然后 FTP 服务器将通过这个端口进行数据的传送,这个时候 FTP server 不再需要建立一个新的和客户端之间的连接。

很多防火墙在设置的时候都是不允许接受外部发起的连接的,所以许多位于防火墙后或内网的 FTP 服务器不支持 PASV 模式,因为客户端无法穿过防火墙打开 FTP 服务器的高端端口;而许多内网的客户端不能用 PORT 模式登陆 FTP 服务器,因为从服务器的 TCP 20 无法和内部网络的客户端建立一个新的连接,造成无法工作。

FTP 软件可以更好的帮助你管理 FTP 目录 提供更系统的工具

FTP 工具推荐使用 cuteftp

主动和被动模式 FTP 有两种使用模式:主动和被动。主动模式要求客户端和服务器端同时打开并且监听一个端口以建立连接。在这种情况下,客户端由于安装了防火墙会产生一些问题。所以,创立了被动模式。被动模式只要求服务器端产生一个监听相应端口的进程,这样就可以绕过客户端安装了防火墙的问题。

一个主动模式的 FTP 连接建立要遵循以下步骤:

客户端打开一个随机的端口(端口号大于 1024,在这里,我们称它为 x),同时一个 FTP 进程连接至服务器的 21 号命令端口。此时,源端口为随机端口 x,在客户端,远程端口为 21,在服务器。

客户端开始监听端口(x+1),同时向服务器发送一个端口命令(通过服务器的 21 号命令端口),此命令告诉服务器客户端正在监听的端口号并且已准备好从此端口接收数据。这个端口就是我们所知的数据端口。

服务器打开 20 号源端口并且建立和客户端数据端口的连接。此时,源端口为 20,远程数据端口为(x+1)。

客户端通过本地的数据端口建立一个和服务器 20 号端口的连接,然后向服务器发送一个应答,告诉服务器它已经建立好了一个连接。

看完上述内容是否对您有帮助呢?如果还想对相关知识有进一步的了解或阅读更多相关文章,请关注丸趣 TV 行业资讯频道,感谢您对丸趣 TV 的支持。

正文完
 
丸趣
版权声明:本站原创文章,由 丸趣 2023-08-25发表,共计6076字。
转载说明:除特殊说明外本站除技术相关以外文章皆由网络搜集发布,转载请注明出处。
评论(没有评论)