潘亚雄基于Linux的FTP服务器的安装与配置第1页共22页1引言1.1课程设计目的自从有了网络以来,通过网络来传输文件一直是一项很重要的工作,不但可以实现文件的下载和上传,而且可以设置不同的用户访问权限,并支持大文件的断点续传功能。采用FTP服务可以使传输文件工作变得非常轻松。本课程设计利用基于Linux的FTP服务器的安装与配置,理解FTP的工作原理和作用,掌握FTP服务器的基本配置方法,通过操作系统自带的ftp命令验证FTP服务器的配置,巩固和运用所学课程,理论联系实际,提高分析、解决计算机技术实际问题的独立工作能力。1.2课程设计内容本课程设计主要完成基于Linux的FTP服务器的安装于配置,实现局域网和外网的客户端主机访问FTP服务器并实现文件的上传和下载。该设计主要分为两部分,服务端部分和局域网及外网客户端部分。在虚拟机的Linux操作系统上上构架FTP服务器,即安装和配置FTP服务器。在局域网及外网的客户主机上对本地主机上的FTP进行访问以及进行文件上传和下载。潘亚雄基于Linux的FTP服务器的安装与配置第2页共22页2相关技术介绍2.1Linux的简单介绍Linux是一套免费使用和自由传播的类UNIX操作系统,具有UNIX全部功能的免费操作系统,它在众多的软件中占有很大的优势,为广大的计算机爱好者提供了学习、探索以及修改计算机操作系统内核的机会。Linux操作系统具有开放性、多用户、多任务、良好的用户界面、设备独立性、良好的可移植性、可靠的安全性、兼容其他UNIX系统、支持多种文件系统以及提供了丰富的网络功能等特点。UNIX是在互联网的基础上繁荣起来的,Linux的网络功能当然不会逊色。它的网络功能和其内核紧密相连,在这方面Linux要优于其他操作系统。支持Internet是其网络功能之,Linux免费提供了大量支持Internet的软件,Internet是在UNIX领域中建立并繁荣的,因此在这方面使用Linux是相当方便的,用户能用Linux与世界上的其他人通过Internet进行通信。文件传输时期网络功能之二,用户能够通过一些Linux命令完成内部信息或文件的传输。远程访问是其网络功能之三,Linux不仅允许进行文件和程序的传输,它还为系统管理员和技术人员提供了访问其他系统的窗口。通过这种远程访问的功能,一位技术人员能够有效地为多个系统提供服务,即使这些系统位于相距很远的地方。2.2FTP介绍1.FTP服务FTP(FileTransferProtocol)是Internet上用来传送文件的协议(文件传输协议),是TCP/IP协议族中的协议之一,它是为了能够在Internet上互相传送文件而制定的文件传送标准,规定了Internet上文件如何传送。该协议是Internet文件传送的基础,它是由一系列的规格说明文档组成,目标是提高文件的共享性,提供非直接使用远程计算机的方法,使存储介质对用户透明和可靠高效地传送数据。也就是说,通过FTP协议,就可以完成两台计算机之间的复制,从远程计算机复制文件至自己的计算机上,称为“下载(Download)”文件,若将文件从自己的计算机中复制至远程计算机上,则称为“上传(Upload)文件。在TCP/IP协议中,FTP标准命令TCP端口号为21,Port方式数据端口号为20。FTP服务的工作模式如图1.1所示。潘亚雄基于Linux的FTP服务器的安装与配置第3页共22页图1.1FTP服务的工作模式2.FTP服务器和客户端同大多数Internet服务一样,FTP也是一个客户/服务器系统。用户通过一个客户端程序连接在远程计算机上运行的服务器程序。依照FTP协议提供的服务、进行文件传送的计算机就是FTP服务器,而连接在FTP服务器、遵循FTP协议与服务器传送文件的计算机就是FTP客户端。FTP服务以下载为例,当启动FTP从远程计算机复制文件时,事实上启动了两个程序。一个是本地计算机上的FTP客户程序,它向FTP服务器提出复制文件的请求。另一个是启动在远程计算机上的FTP服务器程序,它响应请求把指定的文件传送到本地计算机中。用户端要在自己的本地计算机上安装FTP客户程序。FTP客户程序有字符界面和图形界面两种。字符界面的FTP命令复杂、繁多。图形界面的FTP客户程序,操作上要简捷方便得多。3.FTP用户授权一般来说,要使用FTP服务器,必须经过FTP服务器的授权认证后,才能登陆FTP服务器传输文件。根据FTP服务器的提供的服务对象不同,可以将FTP服务的使用者分成以下三类。(1)本地用户。如果用户在远程FTP服务器上拥有账号,用户为本地用户。本地用户可以通过输入自己的账号和密码进行登陆。当登陆成功后,其登陆目录为系统提供给潘亚雄基于Linux的FTP服务器的安装与配置第4页共22页该用户的根目录($HOME),如/home/user1,用户利用FTP访问该目录如同在本地一样,可以进行下载和上传文件。(2)Guest用户。当FTP服务器为某些特定用户提供公认账号和密码,且此账号只能用于文件传输服务,其登陆的目录为指定目录,此用户类别为Guest用户。通常情况下,为该用户群提供文件下载及上传功能。(3)匿名用户。如果该用户在远程的FTP服务器上没有自己的账号,则称此用户为匿名用户。若FTP服务器提供匿名访问功能,则匿名用户可以通过输入anonymous用户名和空的口令来进行登录,一般情况下匿名登陆的FTP服务器只提供文件下载功能。匿名FTP一直是Internet上获取信息资源的最主要的方式。4.FTP的传输模式FTP的传输有两种方式:ASCII传输模式和二进制数据传输模式。(1)ASCII传输方式。假定用户正在复制的文件包含简单的ASCII码文本,如果在远程机器上运行的不是UNIX,当文件传输时FTP通常会自动地调整文件的内容以便于把文件解释成另外那台计算机存储文本文件的格式。但是常常有这样的情况,用户正在传输的文件包含的不是文本文件,它们可能是程序、数据库、字处理文件或者压缩文件(尽管字处理文件包含的大部分是文本,其中也包含有指示页尺寸、字库等信息的非打印字符)。在复制任何非文本文件之前,用binary命令告诉FTP逐字复制,不要对这些文件进行处理。(2)二进制传输模式。在二进制传输中,保存文件的位序,以便原文件和复制文件值逐位一一对应的。即使目的地机器上含有位序列的文件是没意义的。如果在ASCII方式下传输二进制文件,即使不需要也仍会转译。这会使传输稍微变慢,也会损坏数据,使文件变得不能用(在大多数计算机上,ASCII方式一般假设每一字符的第一有效位无意义,因为ASCII字符组合不使用它。如果传输二进制文件,所有的位都是重要的)。如果知道这两台机器是同样的,则二进制方式对文本文件和数据文件都是有效的。2.3Linux下的FTP服务器1.Wu-ftpdWu-ftpd是大多数的Linux操作系统选用最多的FTP服务器端软件,它是一个著名的、历史悠久的、使用最广泛的非商业FTP服务器软件之一,遵守GPL条款,全称为WashingtonUniversityFTP,简称为Wu-fptd。它功能强大,能够很好的运行在众多的UNIX潘亚雄基于Linux的FTP服务器的安装与配置第5页共22页操作系统中。Wu-ftpd具有以下主要特点。(1)可以对不同网络上的计算机做不同的存取限制。(2)可以在文件的上传下载的同时对文件做自动的压缩机解压缩操作。(3)可以动态监测文件传输的相关信息,并记录文件上传下载时间。(4)可以设置最大连接数,提高效率,有效地控制负载。2.ProftpdProftpd是在自由软件基金会的版权声明(GPL)下开发的免费软件,它设计的初衷是实现一个安全、易于设定的FTP服务软件,是对Wu-ftpd的漏洞的改进开发,并增加了很多功能,但很快发现必须对Wu-ftpd全部重新写代码才能弥补欠缺,所以现在的Proftpd是完全独立并且功能完整的FTP服务器软件。它的主要特点如下。(1)具有单一的主配置文件,容易设定设置。(2)可以对每个目录都进行特殊的权限设定。(3)可以设定多个虚拟的FTP服务器。(4)可以根据负载对每个用户设定独立进程。(5)系统可以对用户上传的文件进行权限设定,自动阻止外部程序在FTP服务器上执行,以免造成安全漏洞。3.vsftpdvsftpd是一个基于GPL发布的类UNIX系统上使用的FTP服务器软件,其中vs是“VerySecure”的缩写,是基于文件安全、稳定传输而设计的。使用ASCII模式下载数据时,vsftpd的速度是Wu-ftpd的两倍,且vsftpd可以支持15000个并发用户。vsftpd具有以下主要特点。(1)是一个安全、稳定、高速的FTP服务器。(2)可以设定多个基于IP的虚拟FTP服务器。(3)不执行任何外部程序,相对降低了安全隐患。(4)支持虚拟用户,并且每个虚拟用户具有独立的配置。(5)支持宽带限制等。2.4虚拟机的bridged(桥接)网络连接方式在bridged模式下,虚拟机内的操作系统就像是局域网中的一台独立的主机,它可以访问网内任何一台机器。潘亚雄基于Linux的FTP服务器的安装与配置第6页共22页使用bridged模式的虚拟系统和宿主机器的关系,就像连接在同一个Hub上的两台电脑。如果你想利用虚拟机在局域网内新建一个虚拟服务器,为局域网用户提供网络服务,就应该选择bridged模式。这种方式最简单,直接将虚拟网卡桥接到一个物理网卡上面,和Linux下一个网卡绑定两个不同地址类似,实际上是将网卡设置为混杂模式,从而达到侦听多个IP的能力。在此种模式下,虚拟机内部的网卡(例如Linux下的eth0)直接连到了物理网卡所在的网络上,可以想象为虚拟机和host机处于对等的地位,在网络关系上是平等的,没有谁在谁后面的问题。bridged网络连接模型如图2.1所示。图2.1bridged网络连接方式模型2.5端口映射端口映射又叫端口转发,又叫虚拟服务器。端口映射其实就是常说的NAT地址转换的一种,其功能就是把在公网的地址转翻译成私有地址。采用路由方式的ADSL宽带路由器拥有一个动态或固定的公网IP,路由器下的私有地址可以使用公网地址进行Internet访问。但不在同一路由器下的主机既不能使用本地主机的私有地址也不能使用本地主机的公网地址来对本地主机进行访问。如若要实现外网访问本地主机便要在路由器中进行端口映射。潘亚雄基于Linux的FTP服务器的安装与配置第7页共22页3系统设计3.1系统结构设计在TCP/IP网络应用中,通信的两个进程间相互作用的主要模式是客户/服务器模式(Client/Servermodel),即客户向服务器发出服务请求,服务器接收到请求后,提供相应的服务。客户/服务器模式的建立基于以下两点:首先,建立网络的起因是网络中软硬件资源、运算能力和信息不均等,需要共享,从而造就拥有众多资源的主机提供服务,资源较少的客户请求服务这一非对等作用。其次,网络间进程通信完全是异步的,相互通信的进程间既不存在父子关系,又不共享内存缓冲区,因此需要一种机制为希望通信的进程间建立联系,为二者的数据交换提供同步,这就是客户端/服务器模式的TCP/IP。在客户/服务器模型中,多个相互通信的计算机都作为客户端,与网络服务器进行连接,并通过服务器进行信息的传递。所以多个客户端之间的通信就变为了客户端与服务端的通信。本设计采用客户/服务器的模型。该方案中构架的FTP服务器是在本地主机上虚拟机中的Linux操作系统中。局域网及外网的主机作为客户端来该对方案中构架的FTP服务器进行访问,并实现文件的上传和下载。该方案的系统结构如图3.1所示。图3.1方案系统构架潘亚雄基于Linux的FTP服务器的安装与配置第8页共22页3.2通信连接设计由于该设计中构建的FTP服务器是在虚拟机中的Linux,所以必须设置好通信连接方式。(1)局域网内的主机访问FTP服务器。本设计中虚拟机使用的网络连接方式为bridged方式。在bridged模式下,在路