版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第十章常用服务器的构建与配置服务器(英文名称server),也称伺服器。指一个管理资源并为用户提供服务的计算机软件,通常分为文件服务器、数据库服务器、DNS服务器和Web服务器等。运行以上软件的计算机或计算机系统也被称为服务器。10.1FTP服务器
文件传输是指用户通过网络从远程计算机上下载或上传文件。例如,用户在网络上找到自己需要的资料、免费的软件等,这时可以下载它们到本地计算机的磁盘上;或者用户有一些文件需要发给其他主机的用户,这时可以将这些文件上传到指定的计算机。FTP便是从事文件传输的有效工具。10.1.1FTP基本原理
FTP是由它所使用的网络协议来命名的,即文件传输协议(FileTransferProtocol);它是Internet上的一个主要功能,其主要作用就是将文件从一台计算机传递到另一台计算机。FTP是一种客户机/服务器(client/server)模式的应用,在客户机和服务器之间使用TCP协议建立连接。FTP的组成及结构如图10-1所示。图10-1FTP组成及结构FTP客户机FTP服务器TCP/IP操作系统操作系统客户机本地文件服务器远程文件
在FTP系统中,客户机与服务器之间建立的是双重连接,即一个是控制连接,另一个是数据连接。服务器的守护进程在21号端口监听是否有客户机的连接请求,如果有连接请求,则服务器的守护进程将创建一个子进程(即服务器的控制进程),与客户机的控制进程建立起控制连接,该进程等待来自客户机的命令,而服务器的守护进程则继续监听21号端口看是否有新的连接请求到来。如果客户机在控制连接上向服务器的控制进程发出传送数据的命令,则在服务器上将建立一个服务器的数据传输进程,并向客户机请求建立数据连接,当该连接成功建立后通过它来传输数据;当数据传输完成后,数据传输进程自动消亡,服务器控制进程等待用户新的数据传输命令或终止连接的命令。
从图10-1可以看到,FTP不管两台计算机的所处的位置如何,也不管两台计算机硬件的体系结构和软件的操作系统有何不同;只要它们都遵循FTP协议,且都能连接到Internet,那么就可以使用FTP来传输文件。10.1.2FTP服务器的安装与配置文件
在CentOS7Linux操作系统安装时,若未选择相应的FTP软件包,则可以在系统启动后执行yum命令进行安装,执行的命令为: #yum–yinstallvsftpd
若安装过,则执行该命令时显示如图10-2所示。图10-2安装vsftpd接着用yum命令安装ftp软件包,执行的命令为: #yum–yinstallftp若未安装过,则执行该命令时显示如图10-3所示。图10-3安装ftp系统的FTP服务是vsftpd,其安装时的日志文件保存在/var/log目录的yum.log文件中。用户如果需要对FTP的服务进行配置,可以修改/etc/vsftpd目录下的vsftpd.conf、ftpusers和user_list文件来实现。如果用户安装了其它的FTP服务器软件,如wu-ftpd等也有相应类似的配置文件。 1.vsftpd.conf文件
这个文件中有许多配置项被注释(用#字符),用户如果需要可以打开;但有些选项
关系到系统的安全,在确定打开前一定要仔细阅读其说明。该文件主要内容如下:anonymous_enable=YES #允许使用匿名登录local_enable=YES #允许本地用户登录write_enable=YES #允许执行FTP的写命令local_umask=022 #本地掩码设置为022#anon_upload_enable=YES #本注释取消则允许匿名登录用户上传文件#anon_mkdir_write_enable=YES#本注释取消则允许匿名登录用户创建目录dirmessage_enable=YES #当远程登录用户进入某些目录时发送消息xferlog_enable=YES #允许上传与下载connect_from_port_20=YES #允许ftp-data使用20端口#chown_uploads=YES #本注释取消则允许由不同的用户有权匿名上传文件#chown_username=whoever#xferlog_file=/var/log/vsftpd.log #本注释取消则允许覆盖默认目录下的日志文件xferlog_std_format=YES #允许以xferlog格式保存日志文件#idle_session_timeout=600 #本注释取消则缺省空闲会话超时值为600#data_connection_timeout=120 #本注释取消则缺省数据连接超时值为120#nopriv_user=ftpsecure #本注释取消则FTP服务器可以作为一个完全隔离和没有
特权的用户#async_abor_enable=YES #本注释取消则允许异步ABOR请求#ascii_upload_enable=YES #本注释取消则允许ascii上传#ascii_download_enable=YES #本注释取消则允许ascii下载#ftpd_banner=WelcometoblahFTPservice. #本注释取消则显示指定的登录欢迎信息#deny_email_enable=YES #本注释取消则允许指定一个匿名e-mail地址文件#(缺省的禁止e-mail地址文件)#banned_email_file=/etc/vsftpd.banned_emails#chroot_list_enable=YES #本注释取消则允许列表文件中的用户使用chroot命令#(缺省的列表文件)#chroot_list_file=/etc/vsftpd.chroot_list#ls_recurse_enable=YES #本注释取消则允许在ls命令中使用-R选项pam_service_name=vsftpd #FTP服务器名userlist_enable=YES #允许使用userlist文件listen=YES #允许监听tcp_wrappers=YES #允许由inetd生成的服务提供增强的安全性,当该项启用
为即等于 yes时vsftp服务器会检查/etc/hosts.allow和 /etc/hosts.deny文件中的设置以确定是否让发起请求的
主机连接到FTP服务器;相当于起到简单的访问控制列表的作用
文件中local_umask项决定了在FTP状态下目录和文件被创建时得到的初始权限;也就是说当umask=022时新建的目录权限是755(777-022),文件的权限是644(666-022)。 2.ftpusers文件
这个文件列出了不能用作FTP方式登录服务器的用户名列表,其内容可能如下:#Usersthatarenotallowedtologinviaftprootbindaemonadmlpsyncshutdownhaltmailnewsuucpoperatorgamesnobody
为了系统安全的原因,不允许root用户与系统内置的账号作为FTP的登录用户。尤其是用root用户账号直接登录可能使得远程用户通过口令尝试的方式也登录到服务器,则服务器的安全性堪忧;另外,FTP传送的是没有经过加密的口令,这可能导致不法用户通过网络监听工具软件窃取口令。 3.user_list文件
该文件的内容如下:#vsftpduserlist#Ifuserlist_deny=NO,onlyallowusersinthisfile#Ifuserlist_deny=YES(default),neverallowusersinthisfile,and#donotevenpromptforapassword.#Notethatthedefaultvsftpdpamconfigalsochecks/etc/vsftpd.ftpusers#forusersthataredenied.rootbindaemonadmlpsyncshutdownhaltmailnewsuucpoperatorgamesnobodymailnewsuucpoperatorgamesnobody同时userlist_deny选项为“YES”(默认缺省),则该用户在试图登录FTP服务器时,将不能够登录,甚至连输入密码的提示信息都没有,直接被FTP服务器拒绝。而如果一个用户名在ftpusers文件中,同时userlist_deny选项为“YES”,则该用户在试图登录FTP服务器时,将能看到输入密码的提示,但即使正确输入密码仍然不能登录FTP服务器。参考示例:
假定ftp服务已开启,在本机以root身份登录FTP服务器。执行命令:[root@myhost1root]#ftplocalhost系统显示:Trying::1...Connectedtolocalhost(::1).220(vsFTPd3.0.2)Name(localhost:root):331Pleasespecifythepassword.Password:530Loginincorrect.Loginfailed.ftp>从显示结果可以看到,以root身份登录时由于其用户名的userlist_enable选项为YES,同时root也在ftpusers文件中,且userlist_deny选项为“YES”,则权限禁止连输入密码的提示信息都没有,直接导致登录失败。userlist_deny选项和user_list文件一起使用能够有效地阻止root等系统用户登录FTP服务器,从而保证了FTP服务器的分级安全性。10.1.3FTP服务的启动
当Linux系统安装完成并启动时,一般系统为了节省内存和提高启动速度,默认情况下FTP服务是没有启动的。如果需要使用FTP,则必须首先启动FTP服务。在Linux系统的发行套件中,FTP服务的名称是vsftpd,如果用户不是全部安装所有的Linux软件包,则可能需要使用安装光盘或ISO软件重新安装该服务。用户也可以从网络上下载其他的FTP软件,如wu-ftpd、bftpd等。如果用户已经安装了vsftpd服务,则可以有两种不同的方法来启动或停止它。 1.设置自启动方式在终端窗口的字符界面下,键入setup命令,利用上下光标键选择Systemservices菜单项并回车;找到vsftpd服务项,按空格键或单击鼠标左键选中该服务项前的复选框。当下次系统启动时,vsftpd服务将自动被运行。 2.命令行启动或停止如果需要马上启动该服务,不需要重新启动系统,只要执行服务启动命令,例如:[root@localhostroot]#systemctlrestartvsftpd.service
正常情况下系统没有信息显示;如果需要停止该服务,只要执行停止命令,例如:[root@localhostroot]#systemctlstopvsftpd.service
同样,正常情况下系统没有信息显示。10.1.4文件传输命令及用法
在FTP服务启动后就可以进行文件传输了,虽然文件传输命令和用法随着操作系统的不同而不同,但基本的命令结构对各种机器都是大同小异的。以下结合参考示例说明文件传输命令的格式和具体用法。10.1.4.1ftp命令
该命令是Internet上的文件传输程序。在字符终端窗口的命令行提示符下输入ftp命令和选项或参数后即可进入FTP模式,并出现“>”提示符。
命令格式: ftp[-pingvd][host] 或 pftp[-ingvd][host]
其中,ftp或pftp为命令名称;参数host为要连接服务器端的IP地址或主机名称;其他的是命令选项,这些选项可以在命令行中、也可以在命令解释程序中指定。 命令选项及说明:表10-1ftp命令选项及说明命令选项选项说明-p数据传输采用被动模式。-i在多文件传输中,关闭交互模式的提示信息。-n不使用自动登录。ftp在启动时会从.netrc文件中读取信息,试图自动登录指定的远程计算机系统;如果该文件不存在,ftp会放弃自动登录并询问用户账户名称和口令。-g禁止本地主机文件名支持特殊字符的扩充特性。-v显示ftp命令执行的详细过程。-d允许进行调试。
进入FTP模式后,可以使用的命令有:! debug mdir sendport site$ dir mget put sizeaccount disconnect mkdir pwd statusappend exit mls quit structascii form mode quote systembell get modtime recv suniquebinary glob mput reget tenexbye hash newer rstatus tickcase help nmap rhelp tracecd idle nlist rename typecdup image ntrans reset userchmod lcd open restart umaskclose ls prompt rmdir verbosecr macdef passive runique ?delete mdelete proxy send
其中,许多命令与命令行模式下的命令相同。如果忘记了这些命令名称,则在FTP模式下任何时候只要键入?命令即可显示。10.1.4.2参考示例参考示例1:登录到IP地址为的主机,准备进行文件传输。[root@localhost/]#ftpConnectedto().220(vsFTPd3.0.2)Name(:root):zxj331Pleasespecifythepassword.Password:230Loginsuccessful.RemotesystemtypeisUNIX.Usingbinarymodetotransferfiles.ftp>以上显示的信息中要求用户输入所登录到主机的用户名和口令,其中斜体字并带下划线的部分为用户输入的信息(以下同此);登录成功后显示ftp提示符。参考示例2:列出登录主机用户目录中的内容。ftp>ls227EnteringPassiveMode(192,168,122,1,46,223).150Herecomesthedirectorylisting.-rw-r--r--100162Oct0215:22xjdrwxr-xr-x2100010006Aug1511:01下载drwxr-xr-x2100010006Aug1511:01公共drwxr-xr-x2100010006Aug1511:01图片drwxr-xr-x2100010006Aug1511:01文档drwxr-xr-x2100010006Aug1511:01桌面drwxr-xr-x2100010006Aug1511:01模板drwxr-xr-x2100010006Aug1511:01视频drwxr-xr-x2100010006Aug1511:01音乐226DirectorysendOK.ftp>在ftp提示符下,键入ls命令即可列出所登录用户目录中的文件,与一般ls命令不同的只是以长格式显示目录中的文件信息。
参考示例3:从所登录的主机用户目录中下载文件。 ftp>getxjxjtlocal:xjtremote:xj227EnteringPassiveMode(192,168,122,1,162,96).150OpeningBINARYmodedataconnectionforxj(162bytes).226Transfercomplete.162bytesreceivedin9.9e-05secs(1636.36Kbytes/sec)ftp>
从远程主机的zxj用户目录中下载xj源文件到本地主机的当前目录并以xjt目标文件名保存;如果不指定目标文件名,则以源文件同名保存。在下载完成时显示传输的信息量、所花费的时间和平均传输速度。
参考示例4:向所登录的主机用户目录中上传文件。 ftp>putyum.doclocal:yum.docremote:yum.doc227EnteringPassiveMode(192,168,122,1,154,134).150Oktosenddata.226Transfercomplete.58152bytessentin0.00267secs(21755.33Kbytes/sec)ftp>
向远程主机的zxj用户目录中上传yum.doc源文件,由于没有指定远程主机的目标文件名,所以仍以同名文件保存。同样,在上传完成时显示相关的信息。
参考示例5:向远程主机上传大文件。 ftp>hashHashmarkprintingon(1024bytes/hashmark).ftp>putNTFS-3G_1@170545.exelocal:NTFS-3G_1@170545.exeremote:NTFS-3G_1@170545.exe227EnteringPassiveMode(192,168,122,1,102,151).150Oktosenddata.#######################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################226Transfercomplete.1121488bytessentin0.0284secs(39445.96Kbytes/sec)ftp>
当传输大文件时所花的时间较长,一般需要显示文件传输的进度;在这种情况下可以使用hash命令,以便在文件传输过程中用“#”显示传输的进度。本例是向远程主机上传一个NTFS-3G_1@170545.exe软件。
参考示例6:匿名登录远程主机并准备文件传输。 [root@zxjroot]#ftpConnectedto().220(vsFTPd3.0.2)Name(:root):anonymous331Pleasespecifythepassword.Password:注意:此处直接回车!230Loginsuccessful.RemotesystemtypeisUNIX.Usingbinarymodetotransferfiles.ftp>
在Internet上广泛使用的公共文件传输服务就是“匿名”(anonymous)文件传输服务。采用“匿名”文件传输时,一般在服务器上会指定一个公共目录,CentOS7默认是在/var/ftp下的pub目录。“匿名”文件传输允许任何被允许建立TCP连接的用户远程访问公共目录中的文件,而其他目录是禁止访问的。这个功能可以用于让用户从网络上发布开发的软件或收集共享软件给其他用户下载使用。
参考示例7:在匿名登录下,查看匿名文件传输的公共目录。 ftp>ls227EnteringPassiveMode(192,168,122,1,84,118).150Herecomesthedirectorylisting.drwxr-xr-x2006Oct302018pub226DirectorysendOK.ftp>
在匿名登录远程主机后,执行ls命令显示服务器上的公共目录。
参考示例8:切换到公共目录中并查看该目录中的文件。 ftp>cdpub250Directorysuccessfullychanged.ftp>ls227EnteringPassiveMode(192,168,122,1,216,109).150Herecomesthedirectorylisting.-rwxrwxrwx100232Aug2008:02grub-rwxrwxrwx10017763Aug1813:02xfs.doc226DirectorysendOK.ftp> 可以执行cd命令来切换到公共目录。 参考示例9:通过匿名文件传输下载文件。
ftp>getgrublocal:grubremote:grub227EnteringPassiveMode(192,168,122,1,51,65).150OpeningBINARYmodedataconnectionforgrub(232bytes).226Transfercomplete.232bytesreceivedin0.00092secs(252.17Kbytes/sec)ftp>
在匿名文件传输下,只能从公共目录下载文件,而禁止从其他目录下载。
参考示例10:将grub文件以grub.bak上传。 ftp>putgrubgrub.baklocal:grubremote:grub.bak227EnteringPassiveMode(192,168,122,1,114,191).550Permissiondenied.ftp>
本例是要将/var/ftp/pub目录中的grub文件以grub.bak上传到远程主机的公共目录中(匿名文件传输),但从显示的信息可以看到,在匿名文件传输下是禁止文件上传的。
以上10个参考示例说明了ftp服务器的基本用法。当FTP服务器配置完成后检查CentOS7的防火墙端口号是否为21,在CentOS7的Firefox浏览器中输入:
即可通过浏览器看到pub目录,如图10-4所示;点击pub即可进入目录。图10-4浏览器查看pub目录10.2Web服务器
通常WEB服务器也称为WWW(WorldWildWeb)服务器,它采用浏览器/服务器(Browser/Server)结构。当Web用户通过浏览器(客户端)连到服务器并发出HTTP文件请求时,Web服务器将处理该请求并将文件发送到该浏览器上,浏览器对HTTP文件进行处理,将其中的视频、声音和图片等多媒体文件从服务器上取回并显示。主要功能是提供网上多媒体信息浏览服务。WWW是Internet上发展起来的服务,也是发展最快和目前应用最广泛的服务。正是因为有了WWW工具,才使得Internet迅速发展,且用户数量飞速增长。 Linux是借助某种Web服务器软件来实现Web服务的,常用的是Apache服务器软件。据统计在Internet上有半数以上的WWW服务器使用Apache软件。10.2.1Web服务基本原理
虽然Linux的Web服务器有很多种,但它们的基础工作原理是相同的,如图10-5所示。用户在URL中输入网址后回车,或者是点击网址链接等,浏览器随即获取了该事件;浏览器与服务端程序建立起TCP连接;浏览器将用户的事件按照HTTP协议格式打包成数据包;浏览器按照TCP协议将数据包通过互联网发往服务端程序;服务端程序收包后,以HTTP协议格式解包并解析数据;再按提供文件或处理数据进行分类处理;然后将结果装入服务端缓冲区;服务端程序按照HTTP协议格式将缓冲区的数据打包;服务器通过互联网将数据包发送到到客户端;浏览器收包后,以HTTP协议格式解包并解析;最后在浏览器页面上展示HTTP文件。图10-5Web服务原理10.2.2Web服务器的安装与配置文件
在CentOS7Linux操作系统安装时,若未选择相应的Web服务器软件包,则可以在系统启动后执行yum命令进行安装,执行的命令为: #yum–yinstallhttpd
也可以在图形方式下安装,进入“应用程序”菜单,选择“系统工具”菜单项下的“软件”菜单项并回车,进入的界面如图10-6所示。选中“ApacheHTTPServer”软件包,再点击“应用更改”按钮即可安装。图10-6图形化安装Web服务器
系统会自动检查软件包的依赖关系。
系统的Web服务是httpd.service,当安装成功后在在/var目录下将会新建子目录,例如/var/www/html为默认网站的根(root)目录;在/etc目录下也会新建一个httpd目录及相应的子目录,其中/etc/httpd/conf/httpd.conf为主配置文件。这个文件中有许多配置项被注释(用#字符),用户如果需要可以打开;但有些选项
关系到系统的安全,在确定打开前一定要仔细阅读其说明。该文件主要内容如下:ServerRoot"/etc/httpd" #存放Web服务配置文件的目录Listen80 #Apache服务侦听端口号Includeconf.modules.d/*.conf#存放Apache服务模块的目录和文件Userapache #Apache子进程的用户Groupapache #Apache子进程的组ServerAdminroot@localhost #设置Apache服务管理员邮件地址
#ServerName:80
#拒绝访问服务器的整个文件系统。须显式地指定允许访问的web内容。<Directory/>AllowOverridenoneRequirealldenied</Directory>DocumentRoot"/var/www/html" #网站默认的根目录#放宽对/var/www中内容的访问。<Directory"/var/www">AllowOverrideNone #none不使用.htaccess控制,all允许Requireallgranted #granted表示允许所有访问,denied表示拒绝所有访问</Directory> <Directory"/var/www/html"> #网站容器开始标识
OptionsIndexesFollowSymLinks#找不到主页时,以目录的方式呈现,并允许链接到网站根目录以外
AllowOverrideNoneRequireallgranted</Directory> #容器结束
#定义主页文件,当访问到网站目录时如果有定义的主页文件,网站会自动访问<IfModuledir_module>DirectoryIndexindex.html </IfModule><Files".ht*">Requirealldenied</Files>ErrorLog"logs/error_log" #错误日志目录及文件LogLevelwarn #日志级警告<IfModulelog_config_module>#日志格式LogFormat"%h%l%u%t\"%r\"%>s%b\"%{Referer}i\"\"%{User-Agent}i\""combinedLogFormat"%h%l%u%t\"%r\"%>s%b"common
<IfModulelogio_module>LogFormat"%h%l%u%t\"%r\"%>s%b\"%{Referer}i\"\"%{User-Agent}i\"%I%O"combinedio</IfModule>CustomLog"logs/access_log"combined #日志/访问日志总计</IfModule>
<IfModulealias_module>
ScriptAlias/cgi-bin/"/var/www/cgi-bin/" #服务器脚本目录
</IfModule><Directory"/var/www/cgi-bin">AllowOverrideNoneOptionsNoneRequireallgranted</Directory>
<IfModulemime_module>
#类型配置文件TypesConfig/etc/mime.types
#AddType允许用户添加或覆盖TypesConfig中为特定文件类型指定的MIME配置文件。AddDefaultCharsetUTF-8 #网页文件的字符编码
<IfModulemime_magic_module>MIMEMagicFileconf/magic</IfModule>#EnableMMAPoffEnableSendfileon #允许发送文件IncludeOptionalconf.d/*.conf #配置选项目录及文件
10.2.3Web服务的启动
当Linux系统安装完成并启动时,默认情况下Web服务是没有启动的。如果需要使用Web,则必须首先启动Web服务。在Linux系统的发行套件中,Web服务的名称是httpd.service,如果用户没有安装Linux的服务器模组软件包,则可能需要使用安装光盘或ISO软件重新安装该服务。如果用户已经安装了httpd.service服务,则可以有两种不同的方法来启动或停止它。 1.设置自启动方式在终端窗口的字符界面下,键入setup命令,利用上下光标键选择Systemservices菜单项并回车;找到httpd.service服务项,按空格键或单击鼠标左键选中该服务项前的复选框。当下次系统启动时,Web服务将自动被运行。 2.命令行启动或停止如果需要马上启动该服务,不需要重新启动系统,只要执行服务启动命令,例如:[root@localhostroot]#systemctlenablehtppd.service[root@localhostroot]#systemctlrestarthtppd.service
正常情况下系统没有信息显示;如果需要停止该服务,只要执行停止命令,例如:[root@localhostroot]#systemctlstophtppd.service
同样,正常情况下系统没有信息显示。
但可以执行lsof命令,查看80端口信息确定httpd服务是否启动,执行:[root@localhost~]#lsof-i:80COMMANDPIDUSERFDTYPEDEVICESIZE/OFFNODENAMEhttpd31144root4uIPv63558790t0TCP*:http(LISTEN)httpd31145apache4uIPv63558790t0TCP*:http(LISTEN)httpd31146apache4uIPv63558790t0TCP*:http(LISTEN)httpd31147apache4uIPv63558790t0TCP*:http(LISTEN)httpd31148apache4uIPv63558790t0TCP*:http(LISTEN)httpd31149apache4uIPv63558790t0TCP*:http(LISTEN)httpd33206apache4uIPv63558790t0TCP*:http(LISTEN)httpd40386apache4uIPv63558790t0TCP*:http(LISTEN)httpd40425apache4uIPv63558790t0TCP*:http(LISTEN)httpd40426apache4uIPv63558790t0TCP*:http(LISTEN)
当配置及启动完成后,可以先测试Apache服务器,打开firefox浏览器,在URL中输入(本书所用的IP地址),尽管此时还没有在/var/www/html目录中存放任何网页文件,但仍可显示Apache的测试界面,结果如图10-7所示。图10-7Apache服务器测试界面10.2.4Web服务命令及用法
在Linux系统中Web服务的命令是httpd,它是Apache超文本传输协议(HTTP)服务器程序。它被设计为作为独立的守护进程运行。通常,httpd不应直接调用,而应在基于Unix的系统上通过apachectl命令调用。10.2.4.1httpd命令
该命令可以启动Apache服务器的服务,这个功能可以被systemctl命令代替;也可以设置服务的配置选项,这个功能可以通过直接修改/etc/httpd/conf/httpd.conf文件实现;但做为熟悉命令的管理员也许使用更方便。若没有指定任何选项、参数,则httpd会去读取/etc/httpd/conf/httpd.conf文件,并根据文件中的设定来启动服务器。
命令格式: httpd[-Dname][-ddirectory][-ffile][-C"directive"][-c"directive"][-kstart|restart|graceful|graceful-stop|stop][-v][-V][-h][-l][-L][-t][-T][-S][-X] 其中,httpd为命令名称;-后的字母为选项,其后的为选项参数。命令选项及说明:表10-2httpd命令选项及说明命令选项选项说明-Dname指定要传入配置文件(<IfDefinename>区段)的参数。-ddirectory指定服务器根目录,默认为/etc/httpd目录。-ffile自定义的配置文件,而不是用默认的。-C"directive"读取配置文件之前先处理指令。-c"directive"读取配置文件之后再处理指令。-elevel显示启动错误级别。-Efile将启动错误记录到文件。-v显示版本信息。-V显示编译设置。-h显示帮助信息。-l显示服务器编译时包含的模块。-L列出可用的配置指令。-t-DDUMP_VHOSTS显示已解析的虚拟主机设置。-t-DDUMP_RUN_CFG显示已解析的运行设置。-S与-t-DDUMP_VHOSTS-DDUMP_RUN_CFG同义。-t-DDUMP_MODULES显示所有已装载的模块。-M与-t-DDUMP_MODULES同义。-t测试配置文件的语法。-T在没有DocumentRoot(s)检查的情况下开始。-X进入调试模式。10.2.4.2参考示例
参考示例1:测试Apache服务器的配置文件是否正确[root@localhost~]#httpd-tAH00558:httpd:Couldnotreliablydeterminetheserver'sfullyqualifieddomainname,usinglocalhost.localdomain.Setthe'ServerName'directivegloballytosuppressthismessageSyntaxOK
命令执行后显示使用localhost.localdomain无法可靠地确定服务器的标准域名。这是因为配置文件中ServerName被注释(参见10.2.2小节中的配置文件),而其它语法正确。
参考示例2:显示服务器编译设置[root@localhost~]#httpd-VServerversion:Apache/2.4.6(CentOS)Serverbuilt:Aug8201911:41:18Server'sModuleMagicNumber:20120211:24Serverloaded:APR1.4.8,APR-UTIL1.5.2Compiledusing:APR1.4.8,APR-UTIL1.5.2Architecture:64-bitServerMPM:preforkthreaded:noforked:yes(variableprocesscount)Servercompiledwith-DAPR_HAS_SENDFILE-DAPR_HAS_MMAP-DAPR_HAVE_IPV6(IPv4-mappedaddressesenabled)-DAPR_USE_SYSVSEM_SERIALIZE-DAPR_USE_PTHREAD_SERIALIZE-DSINGLE_LISTEN_UNSERIALIZED_ACCEPT-DAPR_HAS_OTHER_CHILD-DAP_HAVE_RELIABLE_PIPED_LOGS-DDYNAMIC_MODULE_LIMIT=256-DHTTPD_ROOT="/etc/httpd"-DSUEXEC_BIN="/usr/sbin/suexec"-DDEFAULT_PIDLOG="/run/httpd/httpd.pid"-DDEFAULT_SCOREBOARD="logs/apache_runtime_status"-DDEFAULT_ERRORLOG="logs/error_log"-DAP_TYPES_CONFIG_FILE="conf/mime.types"-DSERVER_CONFIG_FILE="conf/httpd.conf"
命令执行后显示服务器版本、模块、编译器、架构以及编译的选项和参数等。参考示例3:编写一个静态网页文件index.html,测试Apache服务器基本性能。编写的index.html文件:<html> <head> <title>标题字体与文本字体</title> </head> <body> <h1>1号标题字体</h1> <h2>2号标题字体</h2> <h3>3号标题字体</h3> <h4>4号标题字体</h4> <h5align="center">5号标题字体(居中)</h5> <fontface="黑体"size=3>黑体3号字体</font> <i> <u> <fontface="仿宋体"size=4>仿宋体4号文字(倾斜、下划线)</font> </u> </i> <fontfaxe="宋体"size=5color=ff0000>宋体5号红色文字</font> </body></html>保存文件时注意字符代码选择UTF-8,这是httpd.conf文件默认的字符代码,否则网页显示可能是乱码!打开浏览器,在URL中输入结果如图10-8所示。图10-8CentOS7下静态网页测试
若要在Windows下访问Web服务器,则需要配置防火墙规则,这里只是测试它,所以执行如下命令暂时关闭防火墙:#systemctlstopfirewalld在Windows7下打开浏览器,在URL输入02;如图10-9所示。图10-9Windows7下静态网页测试
以上对于CentOS7下搭建Web服务器(Apache)做了简单的介绍的了解,由于实际使用中主要是动态的网页,这涉及到Apache、PHP5、MySQL等服务器的安装与配置,限于篇幅本章不再做详细的介绍。10.3DNS服务器
由于IP地址难以记忆,所以为网络中的每台主机指定一个用户容易记忆的名字,这个名字就称为域名(也称为主机名)。域名服务器的主要功能就是将用户容易记忆的域名转换为计算机使用的IP地址,或将IP地址翻译为域名。10.3.1DNS服务基本原理
整个互联网上的域名服务器采用树形层次结构,树上的每个节点都有一个名称,即“域”,每层用“.”分隔。在互联网中域名的“根(“.”)”通常被省略。例如,“.”被省略为。互联网域名系统结构示意图如图10-10所示。图10-10DNS结构示意图
图中的左边的分支“.arpa.in-addr.XXX”用于反向域名解析,即将IP地址翻译为域名。
如果一个网络不与互联网相连,则可以任意设置域名服务器;否则必须遵循互联网有关规则,即要向上层的域名服务器申请使用的域名,不然即使能连接上互联网也无法正确转换出域名。10.3.2DNS服务器的安装与配置文件
在CentOS7Linux操作系统安装时,若未选择相应的DNS服务器软件包,则可以在系统启动后执行yum命令进行安装,执行的命令为: #yum–yinstallbindbind-libsbind-utils
这个命令会将指定的bind软件包都进行安装,并自动检查依赖关系和自动更新依赖包。
系统的DNS服务是named.service,当安装成功后在/var、/run和/etc目录下将会新建名为named的子目录,存放配置的数据文件;在/etc目录下也会新建一个名为named.conf的主配置文件。//named.conf配置文件options{ //域名解析数据文件目录 listen-onport53{;}; listen-on-v6port53{::1;}; directory "/var/named"; dump-file "/var/named/data/cache_dump.db"; statistics-file"/var/named/data/named_stats.txt"; memstatistics-file"/var/named/data/named_mem_stats.txt"; recursing-file"/var/named/data/named.recursing"; secroots-file"/var/named/data/named.secroots"; allow-query{localhost;};
//缓存服务器区 recursionyes;
dnssec-enableyes; dnssec-validationyes;
/*PathtoISCDLVkey*/ bindkeys-file"/etc/named.root.key";
managed-keys-directory"/var/named/dynamic";
pid-file"/run/named/named.pid"; session-keyfile"/run/named/session.key";};
logging{channeldefault_debug{file"data/named.run";severitydynamic;};};
zone"."IN{ typehint; file"named.ca"; //缓存服务器数据文件};
include"/etc/named.rfc1912.zones";include"/etc/named.root.key";
首先,将以上文件中的两个语句按如下修改后保存:
原:listen-onport53{;};->修改:listen-onport53{any;};
原:allow-query{localhost;};->修改:allow-query{any;};
然后,打开/etc/named.rfc1912.zones文件参照其格式修改,以便添加DNS正反向解析规则://添加的正向解析zone""IN{typemaster;file".zone";allow-update{none;};};
正向解析的目的是将名字翻译为IP地址;上述代码是定义一个域名为ns_解析的区域,域名解析数据存放在/var/named/ns_.zone文件中。//添加的反向解析zone"40.168.192."IN{typemaster;file"192.168.40.zone";allow-update{none;};};
反向解析的目的是将IP地址翻译为名字;上述代码是定义一个用于反向域名解析的10.168.192.区,域名解析数据存放在/var/named/192.168.10.zone文件中。
第三,参照/var/named/named.localhost文件的格式,同目录下创建.zone文件。$TTL1000@INSOAns.ns_.admin.ns_.( 41000100020002000) INNSnsns INA34www INA35mail INA36
第四,参照/var/named/named.loopback文件的格式,同目录下创建192.168.40.zone文件。$TTL1000@INSOA..( 41000100020002000)INNS.134INPTR.135INPTR.136INPTRmail..
注意.zone和192.168.40.zone文件的格式,第一行为数据包生命周期;@表示当前域,等价于“0.0.127.”;IN表示互联网;SOA是主服务器域名解析数据文件中必须设置的授权记录;4表示本文件的版本号,第一个1000表示更新时间,第二个1000表示重试时间,第一个2000是指定的终止时间,第二个2000是无法从文件内找到所请求域名时,缓存一条命名错误的时间(这些时间只是测试时指定的便于较快的响应,具体应用时需根据网络设置);A用于正向解析的指定域名与IP地址对应关系,PTR用于反向解析的指定IP地址与名字对应关系,以上这些都属于资源记录,更详细的资源记录说明请参阅相关文档。
文件开头依次定义了DNS服务器名、DNS管理员邮件地址,特别提醒DNS和邮件地址的最后必须有一个“.”
第五,修改文件权限,执行命令:#chmod777.zone192.168.40.zone10.3.3DNS服务的启动
当Linux系统安装完成并启动时,默认情况下DNS服务是没有启动的。如果需要使用DNS,则必须首先启动DNS服务。在Linux系统的发行套件中,DNS服务的名称是named.service,如果用户没有安装Linux的服务器模组软件包,则可能需要使用安装光盘或ISO软件重新安装该服务。如果用户已经安装了named.service服务,则可以有两种不同的方法来启动或停止它。 1.设置自启动方式在终端窗口的字符界面下,键入setup命令,利用上下光标键选择Systemservices菜单项并回车;找到named.service服务项,按空格键或单击鼠标左键选中该服务项前的复选框。当下次系统启动时,DNS服务将自动被运行。 2.命令行启动或停止如果需要马上启动该服务,不需要重新启动系统,只要执行服务启动命令,例如:[root@localhostroot]#systemctlenablenamed.service[root@localhostroot]#systemctlrestartnamed.service
正常情况下系统没有信息显示;如果需要停止该服务,只要执行停止命令,例如:[root@localhostroot]#systemctlstopnamed.service
同样,正常情况下系统没有信息显示。
但可以执行systemctl命令,查看named.service服务是否启动,执行: #systemctlstatusnamed.service
结果显示:●named.service-BerkeleyInternetNameDomain(DNS)Loaded:loaded(/usr/lib/systemd/system/named.service;enabled;vendorpreset:disabled)Active:active(running)since六2019-10-0503:47:48PDT;1min15sagoProcess:6965ExecStart=/usr/sbin/named-unamed-c${NAMEDCONF}$OPTIONS(code=exited,status=0/SUCCESS)Process:6701ExecStartPre=/bin/bash-cif[!"$DISABLE_ZONE_CHECKING"=="yes"];then/usr/sbin/named-checkconf-z"$NAMEDCONF";elseecho"Checkingofzonefilesisdisabled";fi(code=exited,status=0/SUCCESS)MainPID:7054(named)Tasks:7CGroup:/system.slice/named.service└─7054/usr/sbin/named-unamed-c/etc/named.conf10月0503:47:48localhost.localdomainnamed[7054]:networkunreachableresolving...310月0503:47:48localhost.localdomainnamed[7054]:networkunreachableresolving...310月0503:47:48localhost.localdomainnamed[7054]:networkunreachableresolving...310月0503:47:48localhost.localdomainnamed[7054]:networkunreachableresolving...310月0503:47:48localhost.localdomainsystemd[1]:StartedBerkeleyInternetName10月0503:47:48localhost.localdomainnamed[7054]:networkunreachableresolving...310月0503:47:48localhost.localdomainnamed[7054]:networkunreachableresolving...310月0503:47:48localhost.localdomainnamed[7054]:managed-keys-zone:Key20326f...d10月0503:47:49localhost.localdomainnamed[7054]:resolverprimingquerycomplete10月0503:47:49localhost.localdomainnamed[7054]:listeningonIPv4interfacevi...3Hint:Somelineswereellipsized,use-ltoshowinfull.
显示的结果可以看出named服务处于活动状态、运行中。10.3.4DNS服务命令及用法
在Linux系统中DNS服务的命令是nslookup,它是用于查询Internet域名服务器的程序。Nslookup有两种模式:交互式和非交互式。交互模式允许用户查询名称服务器以获取有关各种主机和域的信息,或打印域中的主机列表。非交互模式用于仅打印主机或域的名称和请求的信息。10.3.4.1nslookup命令
在以下情况下进入交互模式:
1.没有提供参数时(将使用默认名称服务器)
2.当第一个参数是连字符(-),第二个参数是
名称服务器的主机名或Internet地址。
此时出现“>”提示符,等待用户输入命令。
当将要查找的主机的名称或Internet地址作为第一个参数时,将使用非交互模式。第二个参数指定域名服务器的主机名或地址。
命令用法:nslookup[-option][name|-][server]
本命令的选项较少,常用的有-query、-timeout、-version等。使用交互式的常用命令列表:表10-3交互式nslookup常用命令及说明
在实际应用中更多地是使用非交互式。命令名称命令说明host[server]使用当前默认服务器(如果指定)查找主机信息。如果主机是Internet地址,并且查询类型是A或PTR,则返回主机名。如果host是一个名称,并且没有尾随时间,则使用搜索列表来限定名称。要查找不在当前域中的主机,请在名称后加上句点。srverdomain设置服务器,domain为服务器IPlserverdomain将默认服务器更改为domain;lserver使用初始服务器查找有关域的信息,而server使用当前默认服务器。exit退出nslookup。setkeyword[=value]此命令用于更改影响查找的状态信息。有效的关键字是:all显示要设置的常用选项的当前值。还显示有关当前默认服务器和主机的信息。class=value设置类(IN、CH、HS和ANY)的值。默认为IN(theInternetclass)domain=name设置搜索列表。port=value设置TCP/UDP域名服务器端口号。默认端口号为53type=value设置信息查询的类型,默认为A(正向)。retry=number设置重试次数。timeout=number设置超时值。10.3.4.2参考示例参考示例1:在CentOS7下测试(正、反向)本章配置的DNS服务器。结果如图10-9所示。图10-9CentOS下测试DNS服务器参考示例2:在Windows7下测试(正、反向)本章配置的DNS服务器。结果如图10-11所示。在windows操作系统下也有nslookup命令,其功能是一样的,只是在交互式命令上有一些差别。图10-11Windows7下测试DNS服务器
注意:在Windows下测试需要关闭防火墙,如果只是测试可以暂时关闭(参见Web服务器),如果是实际应用要配置防火墙的规则。
参考示例3:
以交互式设置服务器。[root@localhost~]#nslookup>server35Defaultserver:35Address:35#53
参考示例4:
以交互式查询要设置的常用选项的当前值。[root@localhost~]#nslookup>setallDefaultserver:35Address:35#53
Setoptions:novc nodebug nod2search recursetimeout=0 retry=3 port=53 ndots=1
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 危险化学品仓储安全管理制度
- 数据中心机房建设项目管理方案
- 安全生产隐患排查培训课件
- 软件测试交付流程规范及操作标准
- 光伏矿山治理项目建设项目管理方案
- 珠宝首饰加工项目节能评估报告
- 电子信息制造业能耗双控管理手册
- 脚手架搭设操作培训
- 智能家居消费会员管理体系制度
- 客运站防灾减灾应急预案
- 2026-2027学年岭南版(新版)初中美术七年级上册教学计划及进度表(第一学期)
- (语文)2027版高中《晨读晚测小纸条》高三二轮复习(学生+教师版)
- 湖北省鄂州市鄂城区2025-2026学年七年级下学期期末质量监测语文试卷(含答案)
- 焊接施工进度管控方案
- 人工智能训练师(三级高级工)国家职业技能考试题库(2026年版)
- 污水处理池模板工程专项施工方案
- 2026年一级建造师《建设工程经济》考前冲刺练习题库(完整版)附答案详解
- 节假日值班值守工作制度
- TGDACM 0174-2026 中医技术操作规范 温通拨筋罐疗法
- 税务师业务风险控制制度
- 富通尼特、山东众海消防主机字库、汉字编码表
评论
0/150
提交评论