资源描述
,Click to edit Master title style,Click to edit Master text styles,第,6,章 应用层网络服务程序简介,在第,5,章中对,TCPIP,协议栈进行了简单的介绍,操作系统中有很多默认的网络服务或者客户端程序,例如,Web,服务器和浏览器、,FTP,服务器和客户端、,telnet,服务器和客户端等等,在,Linux,环境下有,Apache,、,Mozzila,、,VSFtp,等等,本章将对这些程序的协议和使用进行介绍,主要分为如下部分:,HTTP,协议及服务,主要介绍,HTTP,协议的标准和应用。,介绍,ftp,协议标准,并介绍,ftp,客户端的使用。,对,telnet,的协议标准进行简介。,介绍,Linux,下网络服务的配置方法。,6.1 HTTP,协议和服务,HTTP,协议是目前应用最广泛的应用层网络协议,它是目前互联网繁荣的基础。本节对,HTTP,协议进行简单的介绍。,6.1.1 HTTP,协议概述,应用层协议,HTTP,协议是,Web,的核心。,HTTP,协议在,Web,的客户程序和服务器程序中得以实现,运行在不同系统上的客户程序和服务器程序通过交换,HTTP,消息彼此交流。,HTTP,协议定义数据格式使得服务器和客户端通过协议进行数据交流。,一个,URL,由两部分构成:存放该对象的服务器主机名和该对象的路径名。例如,在如下的,URL,中:,HTTP,协议的基本过程,HTTP,协议是基于客户端,/,服务器之间的请求响应进行交互的。,1,HTTP,协议的宏观过程,2,HTTP,协议的内部过程,6.2 FTP,协议和服务,FTP,协议是一种文件传送协议,英文全称为,File Transfer Protocol,,简称,FTP,,是一种从一个主机向另一个主机传送文件的协议。,FTP,协议的历史可以追溯到,1971,年,不过至今仍然极为流行,,FTP,协议在,RFC959,中进行了详细的说明。,6.2.1 FTP,协议概述,FTP,协议中客户端与服务器端进行文件传输的交互方式,客户端包含用户接口和客户端接口,服务器端为,FTP,服务器,客户端和服务器端都与文件系统进行交互。,1,FTP,协议的步骤,2,FTP,是双端口服务器器,6.2.1 FTP,协议概述,6.2.2 FTP,协议的工作模式,FTP,协议的工作模式分为主动模式和被动模式,二者的主要区别在于对数据端口的处理方式不同:主动模式在客户端连接后,告诉服务器数据连接的端口;被动模式在客户端连接后,进行数据传输的时候临时连接,FTP,服务器的,20,端口,利用此端口进行数据的传输。,1,主动模式,2,被动模式,6.2.3 FTP,协议的传输方式,FTP,协议有两种传输方式:,ASCII,传输模式和二进制数据传输模式,二者的区别在于对传输数据是否进行了解释。,1,ASCII,传输方式,2,二进制传输模式,6.2.4,一个简单的,FTP,过程,在主机,192.168.1.150,上使用,Xlight,FTP,建立一个,FTP,服务器,站点上仅有一个,test.txt,文件。在,FTP,服务器上建立用户名和密码均为,test,的用户帐号。,6.2.5,常用的,FTP,工具,在,Linux,下常用的,FTP,客户端有,ftp,命令行工具,可以方便的使用命令行进行,FTP,交互。在,Linux,操作系统经常使用的下还有一个图形界面的,FTP,客户端工具,gftp,。,Linux,操作系统下的服务器端经常使用的有,vsftp,和,wuftp,,目前使用,vsftp,的人员占多数,读者可以查阅相关的资料配置自己的,ftp,站点。,6.3 TELNET,协议和服务,TELNET,协议是最早出现的远程登录协议之一,使用,TELNET,协议可以在本机上登录到远程的计算机上进行一些操作。这在服务器管理中经常使用,可以方便的通过网络对服务器的资源进行访问可控制。,6.3.1,远程登录的基本概念,分时操作系统允许多个用户同时使用一台计算机。为了保证系统的安全和记帐方便,系统要求每个用户有单独的帐号作为登录标识,系统还为每个用户指定了一个口令。用户在使用该系统之前要输入标识和口令,这个过程被称为“登录”。远程登录是指用户使用,telnet,命令,使自己的计算机暂时成为远程主机的一个仿真终端的过程。,6.3.2,使用,telnet,进行远程登录的工作过程,使用,TELNET,协议进行远程登录时需要满足以下条件:首先在本地主机上必须装有包含,TELNET,协议的客户程序,还必须知道远程主机的,IP,地址或者域名,要能正常登录必须知道登录的用户名和口令。,TELNET,远程登录服务分为以下四个过程:,本地主机与远程主机建立连接。这个建立过程实际上是建立一个,TCP,连接,用户必须知道远程主机的,IP,地址或域名;,将本地终端上输入的用户名和口令及以后输入的任何命令或字符以,NVT,(,Net Virtual Terminal,)格式传送到远程主机。该过程实际上是从本地主机向远程主机发送一个,IP,数据报;,6.3.3 TELNET,协议,TELNET,协议服务器软件是最常用的远程登录服务器软件,它是一种典型的客户端,/,服务器模型的服务,使用,TELNET,协议来工作。,1,基本内容,2,异构网络适应,3,传送远地命令,4,数据流向,6.4 NFS,协议和服务,NFS,协议是一种用于文件共享的协议,它可以使得主机之间进行文件的共享。客户端可以像在本机上的文件一样操作远程主机的文件。,NFS,协议最初仅支持,UDP,协议,目前最新版本的,NFS,可以支持,UDP,或者,TCP,协议,不过,UDP,协议的速度会更快。,6.4.1,安装,NFS,服务器和客户端,NFS,协议是一个十分简单的协议,它本身没有提供信息传输的协议和功能。之所以,NFS,能够让主机之间通过网络进行资料共享,这是一位,NFS,使用了一些其他传输的协议。主要用到了,RPC,(,Remote Procedure Call,)功能。所以在启动,NFS,服务器的时候需要启动,RPC,服务。,在,debian,下进行,NFS,服务器的安装有两个版本可供选择,,nfs,-kernel-server,和,nfs,-user-server,。二者之间的差别在于前者是在内核层实现的,速度更加快,后者的速度相对慢一些。读者可以根据自己的需要进行选择安装。,安装,NFS,服务还需要安装,nfs,-common,,当然,,debian,会自动提示计算之间的依赖关系进行安装。,6.4.2,服务器端的设定,要使安装的服务器程序能够正常工作,主要的工作是对服务器的配置文件进行编辑。这个配置文件是,/etc/exports,,这个文件中的格式如下:,共享的目录 主机名称,1,或者,IP1(,参数,1,,参数,2,)主机名称,2,或者,IP2,(参数,3,,参数,4,),参数,含义,rw,可读写的权限,ro,只读的权限,no_root_squash,登入到,NFS,主机的用户如果是,root,用户,拥有,root,的权限,此参数很不安全,建议不要使用。,root_squash,不能使用,root,权限,all_squash,不管登录,NFS,主机的用户是什么都会被重新设定为,nobody,anonuid,将登入,NFS,主机的用户都设定成指定的,user id,,此,ID,必须存在于,/etc/,passwd,中,anongid,同,anonuid,,但是换成了组,ID,sync,资料同步写入存储器中,async,资料会先暂时存放在内存中,不会直接写入硬盘,insecure,允许从这台机器过来的非授权访问,6.4.3,客户端的操作,要在客户端挂载服务器上共享的,NFS,目录,使用通用的,mount,命令进行,其命令格式为:,mount-t,nfs,主机名或者主机,IP,地址,:/,共享目录名 挂载的本机目录,例如对于上述服务器的设置,使用如下的命令将,/home/test,目录挂载到本机的,/,mnt/nfs,目录下:,mount-t,nfs,192.168.1.153:/home/test/,mnt/nfs,6.4.4,showmount,命令,在,NFS,相关的命令中,showmount,命令是经常使用的命令。它主要有两个命令选项,含义如下:,-a,:这个参数是一般在,NFS SERVER,上使用,是用来显示已经挂载上本机,nfs,目录的客户端机器列表。,-e,:显示指定的,NFS SERVER,上,export,出来的目录。,6.5,自定义网络服务,Linux,操作系统是为网络而诞生的操作系统,它为用户进行网络服务配置提供了诸多便利。本节将对用户配置自己的网络服务进行简单的介绍,通过本节内容的学习,用户可以配置简单的网络服务程序。,6.5.1,xinetd/inetd,在,Linux,操作系统中,一些小的服务程序或者不经常使用的服务程序,被集成到一个服务器管理程序中,通常是,inetd,,目前一般使用,xinetd,。,xinetd,(,eXtended,InterNET,services daemon,),也叫做扩展因特网驻留程序,它是一种控制因特网服务的应用程序,例如常用的,telnet,服务、,ftp,服务和,POP,等服务程序通常都集成在这个服务器中。,在进入本小节的后面部分之前,先检查一下系统中是否已经安装了,xinetd,服务程序,可以使用如下命令:,Debian#ps,ax|grep,xinetd,如果没有安装,xinetd,服务程序,可以使用“,apt-get install,xinetd,”,安装这个软件包。,6.5.2,xinetd,服务配置,xinetd,的默认配置文件是,/etc/,xinetd.conf,,查看这个配置文件的内容会发现,它将,/etc/,xinetd.d,目录里的文件包含了进来:,includedir,/etc/,xinetd.d,参数,含义,rw,可读写的权限,ro,只读的权限,no_root_squash,登入到,NFS,主机的用户如果是,root,用户,拥有,root,的权限,此参数很不安全,建议不要使用。,root_squash,不能使用,root,权限,all_squash,不管登录,NFS,主机的用户是什么都会被重新设定为,nobody,anonuid,将登入,NFS,主机的用户都设定成指定的,user id,,此,ID,必须存在于,/etc/,passwd,中,anongid,同,anonuid,,但是换成了组,ID,sync,资料同步写入存储器中,async,资料会先暂时存放在内存中,不会直接写入硬盘,insecure,允许从这台机器过来的非授权访问,6.5.3,自定义网络服务,本小节中以,vsftpd,为例进行自定义网络服务的设置。首先安装,vsftpd,服务器程序,使用命令“,apt-get install,vsftpd,”,进行安装。安装完毕后对,好了,现在应该是以,root,的身份在,/etc/,xinetd.d,/,目录中编辑文本文件,proftpd,,内容如下:,01#default:on,02#description:The,vsftpd,server serves,vsftpd,sessions;,03 service,vsftpd,04 ,05 disable=no,06 port=21,07,socket_type,=stream,08 protocol=,tcp,09 user=root,10 server=/,usr/sbin/vsftpd,11 type=UNLISTED,12 wait=no,13 ,6.6,小结,本章对,Linux,操作系统下的主要服务进行了简单的介绍,包括,HTTP,、,FTP,、,TELNET,和,NFS,协议。并对如何设置用户个人的服务程序进行了比较详细的介绍。,HTTP,协议、,FTP,协议和,TELNET,协议是互联网比较常用的协议,分别用于,Web,访问、文件传输和远程主机的登录。这三种协议都是基于,TCP,协议,利用文本命令进行控制。,NFS,协议是,Linux,上经常使用的一种协议,用于主机之间共享文件。由于,NFS,协议采用,UDP,协议作为传输基础,所以速度上要快得多。,NFS,协议在嵌入式设备开发的时候经常使用,用于设备和主机之间共享文件系统。最后对如何在,Linux,下定制网络服务进行了介绍。,
展开阅读全文