- 論壇徽章:
- 0
|
轉(zhuǎn)貼,原文地址:http://linux.vbird.org/linux_basic/0560daemons.php
一、什么是 daemon:1、/etc/services,2、 命名規(guī)則,
二、系統(tǒng)的 Daemons 放在哪里: 1、/etc/rc.d/init.d/, 2、/etc/xinetd.conf, 3、/etc/xinetd.d,
三、解析 xinetd.conf
四、TCP_Wrappers : 1、/etc/hosts.allow,2、 /etc/hosts.deny,
五、系統(tǒng)開啟的服務(wù): 1、netstat, 2、ntsysv, 3、chkconfig,
六、各個服務(wù)的簡單說明
一、什么是 daemon
如果您常常上網(wǎng)去查看一些數(shù)據(jù)的話,尤其是關(guān)于 Unix-Like 的相關(guān)操作系統(tǒng),如 FreeBSD, Unix, Linux 等等,應(yīng)該會常常聽到 daemons 這個字眼,那么 daemon 是什么東西呀!?怎么這么常被見到?呵呵,Daemon 的字面上的意思就是『守護(hù)神、惡魔?』還真是有點奇怪呦! ^_^"" ;旧,我們的 Linux 主機(jī)常常會收到一些要求,不論是來自本機(jī)系統(tǒng)的要求或者是網(wǎng)絡(luò) Client 端的服務(wù)要求,反正只要有要求來的時候,通常就是各式各樣的 daemons 負(fù)責(zé)去喚起應(yīng)該要工作的 Servers 來工作啦!那么 daemons 目前有兩種基本的模式,分別是 stand_alone 與 super daemon 兩種方式,底下就來說一說這兩種 daemon 的工作型態(tài):
• stand_alone : 就字面上的意思來說,stand alone 就是『獨立的啟動』的意思,也就是說,該 daemon 啟動之后,就直接常駐在內(nèi)存當(dāng)中啰!他雖然會一直的占用系統(tǒng)的資源,但最大的優(yōu)點就是,他會一直啟動的啦!所以當(dāng)有要求來的時候,他就會很快速的響應(yīng)啰!常常用在這一種 daemon 的網(wǎng)絡(luò)服務(wù)如常見的 httpd 這一個即是一例!
•super daemon : 相對于 stand alone 的執(zhí)行方式,這一種服務(wù)的啟動方式則是藉由統(tǒng)一的一個 daemon 來負(fù)責(zé)喚起該服務(wù)!這一個統(tǒng)一負(fù)責(zé)的 daemon 就是 inet 這支服務(wù)啦!不過,在后來的 Linux 發(fā)展套件中,則是使用 xinet 這個設(shè)定啰!我們這里以 Mandrake 的 xinet 來做說明。當(dāng)有網(wǎng)絡(luò)的服務(wù)要求來的時候,該要求會先送給 xinet 這個服務(wù),然后 xinet 根據(jù)該網(wǎng)絡(luò)要求送來的數(shù)據(jù)封包的內(nèi)容 ( 該內(nèi)容會記錄 IP 與 port ) 來將數(shù)據(jù)封包送給實際運作的服務(wù)!而該服務(wù)這個時候才會啟動的!最常見到的就是 ftp 這支網(wǎng)絡(luò)服務(wù)啦!這種最大的優(yōu)點就是當(dāng)沒有數(shù)據(jù)封包來的時候,該服務(wù)不會一直占據(jù)系統(tǒng)資源 ( 該服務(wù)會在 sleeping 的狀態(tài)吧! ) ,但是相對的,他的反應(yīng)時間也會比較慢,因為還要花費一段時間去『喚醒』該服務(wù)呀!
那么這兩種啟動的方式哪一個比較好呢?見仁見智啦!而且還要看該主機(jī)的工作負(fù)荷與實際的用途說!例如當(dāng)你的主機(jī)是用來作為 WWW 服務(wù)器的,那么 httpd 自然就以 stand alone 的啟動方式較佳!事實上,我們常常開玩笑的說明 stand alone 與 super daemon 的情況,可以銀行的窗口來作為說明的范例!
•stand alone : 在銀行里面,假設(shè)有一種單一服務(wù)的窗口,例如存錢窗口,所以,當(dāng)你需要存錢的時候,直接前往該窗口,就有『專人』為您服務(wù)啦!
•super daemon : 在銀行里面假設(shè)還有另外一種復(fù)合型態(tài)的窗口,同時提供轉(zhuǎn)帳、資金調(diào)度、提款等等的業(yè)務(wù),那當(dāng)你需要其中一項業(yè)務(wù)的時候,就需要前往該窗口,但是坐在窗口的這個營業(yè)員,拿到你的需求單之后,往后面一丟『喂!那個轉(zhuǎn)帳的仁兄!該你的工作了』那么那個仁兄就開始工作去!然而里頭還有資金調(diào)度與提款等負(fù)責(zé)業(yè)務(wù)的仁兄呢?他們在干嘛?嘿嘿!看看報、喝喝茶啰!那么這里就會引出另外一個問題啦!假設(shè)銀行今天的人潮特別的洶涌,所以這個窗口后面除了你之外還有很多的人!那么想一想,這個窗口是要『一個完成再來下一個』還是『全部都把你們的單據(jù)拿來,我全部處理掉』呢?呵呵!是不是不太一樣?
omulti-threaded:就是我們提到的,全部的客戶之要求都給他拿來,一次給他交辦下去,所以一個服務(wù)同時會負(fù)責(zé)好幾個程序。
osingle-threaded:這個就是目前我們『人類的銀行』最常見的方式啦,不論如何,反正一個一個來,第一個沒有處理完之前,后面的請排隊!嘿嘿!所以如果 client 的要求突然大增的話,那么這些晚到的 client 可得等上一等!
另外,需要注意的是,既然銀行里頭有這兩種窗口同時存在,所以啰,在 Linux 系統(tǒng)里面,這兩種 daemon 是可以同時存在的啦!也就是說,某些服務(wù)可以使用 stand alone 來啟動,而有其它的服務(wù)則可以使用 xinet ( 或者是 inet ) 大致的情況就是這樣啦!了呼?
1、•/etc/services
OOK!這個時候就又發(fā)生了另一個問題啰!那么我怎么知道要將我的數(shù)據(jù)送到那個窗口去!咦!那個窗口不是有寫說明說他是干嘛用的嗎?所以你要存錢、轉(zhuǎn)帳、或者是進(jìn)行匯款,都可以在不同的窗口來完成,那么換到實際的網(wǎng)絡(luò)情況來說呢,因為我們的 TCP 封包里面含有 port 與 IP 對吧!將那些已經(jīng)監(jiān)聽的 port 想成是這些窗口,如此一來你的 TCP 封包便可以依據(jù)不同的需求,而到達(dá)不一樣的 port 來索取服務(wù)了!因此,你的聯(lián)機(jī)是 FTP, WWW, smtp 等等都好,絕對不會被搞錯啦!
好了,如果我想要知道這個 port 是由那個服務(wù)所啟動的呢?在 Linux 系統(tǒng)里面有個檔案在說明那個窗口與服務(wù)的 ( services and ports ) 對應(yīng)!呵呵!那就是鼎鼎大名的 /etc/services 這個檔案啦!我們?nèi)∫欢纬3?吹降?port 與相關(guān)服務(wù)的區(qū)段來看一下好了!
[root @test root]# vi /etc/services
.... 略
ftp-data 20/tcp
ftp-data 20/udp
ftp 21/tcp
ftp 21/udp
ssh 22/tcp # SSH Remote Login Protocol
ssh 22/udp # SSH Remote Login Protocol
telnet 23/tcp
telnet 23/udp
smtp 25/tcp mail
smtp 25/udp mail
nameserver 42/tcp name # IEN 116
nameserver 42/udp name # IEN 116
domain 53/tcp nameserver # name-domain server
domain 53/udp nameserver
.... 略
<daemon name>; <port 與型態(tài)>; < 該服務(wù)的說明 >;
•
像上面說的是,第一欄為 daemon 的名稱、第二欄為該 daemon 所使用的 port 號碼與其網(wǎng)絡(luò)數(shù)據(jù)封包傳送時候的類型,主要為較穩(wěn)定的 tcp 封包與較易破損但較快速之 udp 封包!舉個例子說,那個 e-mail 的發(fā)信協(xié)議為 smtp 這個服務(wù),而這個服務(wù)的使用之 port 即為 25 啦!就這樣!
o請?zhí)貏e注意!雖然有的時候您可以藉由修改 /etc/services 來更改一個服務(wù)的 port 號,不過并不建議如此做,因為很有可能會造成一些協(xié)議的錯誤情況!這里特此說明一番呦。ǔ悄茉O(shè)一個地下網(wǎng)站,否則的話,使用 /etc/services 原先的設(shè)定就好啦。
2、•Daemon 的命名規(guī)則:
每一個服務(wù)的開發(fā)者,當(dāng)初在開發(fā)他們的服務(wù)時,都有特別的故事啦!不過,無論如何,這些服務(wù)的名稱被建立之后,被掛上 Linux 使用時,通常在服務(wù)的名稱之后會加上一個 d ,例如例行性命令的建立的 at, 與 cron 這兩個服務(wù),通常會被稱為 atd 與 crond,這個 d 代表的就是 daemon 的意思。所以,在資源管理那一章中,我們使用了 ps 與 top 來觀察程序時,都會發(fā)現(xiàn)到很多的 xxxd 的程序,呵呵!通常那就是一些 daemon 的程序啰! |
|