




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
第十章常用服務器的構建與配置服務器(英文名稱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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 江蘇省東臺市第三教育聯盟重點名校2025年初三下學期七校聯合交流生物試題含解析
- 吉林工程技術師范學院《亞洲電影文化與藝術》2023-2024學年第一學期期末試卷
- 山西省忻州一中、臨汾一中、精英中學2024-2025學年高三下學期一輪質量檢測試題數學試題含解析
- 山東省青島市市南區統考市級名校2025年初三下學期8月開學語文試題含解析
- 南寧理工學院《科技文獻檢索與寫作》2023-2024學年第二學期期末試卷
- 湛江市遂溪縣2025屆五年級數學第二學期期末調研模擬試題含答案
- 山東省德州市2025屆高三下學期統練(4)化學試題含解析
- 云南藝術學院文華學院《級科學道德與學術誠信》2023-2024學年第二學期期末試卷
- 遼陽市白塔區2025年三年級數學第二學期期末聯考試題含解析
- 南京機電職業技術學院《工程地震與結構抗震》2023-2024學年第二學期期末試卷
- 壓力容器考試審核考試題庫(容標委-氣體協會聯合)
- 房建工程風險點臺賬
- 小學科學 教科版 一年級下冊 《我們知道的動物》 教學設計
- 變頻器啟動控制方法
- 外科學教案-腹外疝
- 飛秒激光加工技術ppt課件(PPT 31頁)
- 酒店式公寓裝飾工程施工專項方案(126頁)
- 小學音樂國測(國家義務教育質量監測)復習內容
- 茶藝-認識茶具(課堂PPT)
- 生物藥物監測檢測報告.docx
- 鋼絲繩理論重量計算方式
評論
0/150
提交評論