linux下FTP服务器搭建
第10章 FTP服务器 10.1 FTP服务器简介 10.2 FTP服务器的安装和启动 10.3 FTP服务器的配置 习题 10.1 FTP服务器简介 10.1.1 FTP的基本概念 1.FTP服务 在互联网诞生初期,FTP就已经被应用在文件传输服务上,而且一直是文件传输服务的主角,一直占有最大的数据流量。FTP服务的一个非常重要的特点是其实现可以独立于平台,也就是说在UNIX、DOS、Windows等操作系统中都可以实现FTP的客户端和服务器。虽然目前已经普遍采用HTTP方式传送文件,但FTP仍然是跨平台直接传送文件的主要方式。 一般来说,通过FTP传输文件要比使用其他协议(如HTTP)更加有效,这主要有两个原因。 1)FTP协议就是用来传输文件的,而且仅仅用来传输文件。它不像HTTP还有其他的一些功能,FTP的唯一工作就是确保文件正确的传输,除了校验发送和接收的文件是否一致以外,它不会像HTTP那样停下来翻译文件的内容。 2)通常主机的FTP事务处理是FTP服务器的唯一工作。既然这样,计算机的处理器资源被完全投入到FTP事务处理中,而不会被几个竞争服务器(处理器的时间)的工作所分割。 2.FTP协议及FTP运行原理 文件传输协议(file transfer protocol,FTP)标准是在RFC959说明的。该协议定义了一个在远程计算机系统和本地计算机系统之间传输文件的一个标准。FTP运行在OSI模型的应用层,并利用传输控制协议TCP在不同的主机之间提供可靠的数据传输。FTP在文件传输中还具有的一个重要的特点,就是支持断点续传功能,这样做可以大幅度地减小CPU和网络带宽的开销。 与大多数的Internet服务一样,FTP协议也是一个客户机/服务器系统。用户通过一个支持FTP协议的客户机程序,连接到远程主机上的FTP服务器程序。用户通过客户机程序向服务器程序发出命令,服务器程序执行用户所发出的命令,并将执行结果返回给客户机。 大多数的TCP应用协议使用单个的连接,一般是客户向服务器的一个知名端口发起连接,然后使用这个连接进行通信。但是,FTP协议却有所不同,FTP协议在运作时要使用两个TCP连接。在FTP会话中,会存在两个独立的TCP连接,一个被称作控制连接(control connection),另一个是数据连接(data connection)。 FTP独特的双端口连接结构的优点在于两个连接可以选择不同的合适的服务质量。如对控制连接来说需要更小的延迟时间,对数据连接来说需要更大的数据吞吐量。控制连接主要用来传送在实际通信过程中需要执行的FTP命令以及命令的响应。控制连接是在执行FTP命令时由客户端发起的通往FTP服务器的连接。控制连接并不传输数据,只用来传输控制数据的FTP命令集及其响应。因此,控制连接只需要很小的网络带宽。 在FTP连接期间,控制连接始终保持通畅的连接状态;而数据连接是等到显示目录列表、传输文件时才临时建立的,并且每次客户端使用不同的端口号来建立数据连接。一旦传输完毕,就中断这条临时的数据连接。数据连接用来传输用户的数据。在客户端要求进行目录列表、上传和下载等操作时,客户和服务器将建立一条数据连接。这里的数据连接是全双工的,允许同时进行双向的数据传输,即客户和服务器都可能是数据发送者。特别指出,在数据连接存在的时间内,控制连接肯定是存在的;一旦控制连接断开,数据连接会自动关闭。 3.FTP的典型消息 在FTP客户程序与FTP服务器进行通信时,经常会看到一些由FTP服务器发送的消息,这些消息是FTP协议所定义的。表10.1列出了一些典型的FTP消息。 4.FTP服务的使用者 一般来说,传输文件的用户需要先经过认证以后才能登录网站,然后方能访问、传输在远程服务器上的文件。 根据FTP服务器服务的对象不同可以将FTP服务的使用者分为3类:本地用户, 虚拟用户(Guest用户) 和匿名用户. 1)如果用户在远程FTP服务器上拥有账号,用户为本地用户。本地用户可以通过输入自己的账号和口令来进行授权登录。当授权访问的本地用户登录系统后,其登录目录为用户自己的用户主目录($HOME),本地用户既可以下载又可以上传。 2)如果用户在远程FTP服务器上拥有账号,且此账号只能用于文件传输服务,则称此用户为虚拟用户或Guest用户。虚拟用户可以通过输入自己的账号和口令来进行授权登录。当授权访问的虚拟用户登录系统后,其登录目录为其用户目录。通常情况下,虚拟用户既可以下载又可