網路配置檔案快速解讀(轉)

post0發表於2007-08-09
網路配置檔案快速解讀(轉)[@more@]

在Linux系統中,TCP/IP網路是透過若干個文字檔案進行配置的,需要編輯這些檔案來完成聯網工作。系統中重要的有關網路配置檔案為:

◆ /etc/sysconfig/network

◆ /etc/HOSTNAME

◆ /etc/hosts

◆ /etc/services

◆ /etc/host.conf

◆ /etc/nsswitch.conf

◆ /etc/resolv.conf

◆ /etc/rc.d/init.d/network

接下來我們將對這些檔案逐一講述,這些檔案都可以在系統執行時進行修改,不用啟動或者停止任何守護程式,更改會立刻生效(除了 /etc/sysconfig/network)。另外,這些檔案都支援由"#"開頭的註釋,每一個檔案都有在UNIX手冊頁中的第5部分中有一項,可以用man命令來獲取它們。

◆ /etc/sysconfig/network 網路設定

該檔案用來指定伺服器上的網路配置資訊,包含了控制和網路有關的檔案和守護程式的行為的引數。下面是一個例子檔案:

NETWORKING=yes

HOSTNAME=machine1

GATEWAY=210.34.6.2

FORWARD_IPV4=yes

GATEWAYDEV=

其中,NETWORK=yes/no 表示網路是否被配置;

HOSTNAME=hostname hostname 表示伺服器的主機名;

GATEWAY=gw-ip gw-ip 表示網路閘道器的IP地址;

FORWARD_IPV4=yes/no 是否開啟IP轉發功能;

GAREWAYDEV=gw-dev gw-dw 表示閘道器的裝置名,如:eth0等;

為了和老的一些軟體相相容,"/etc/HOSTNAME"檔案應該用和HOSTNAME=hostname相同的主機名。

◆ /etc/HOSTNAME 主機名

該檔案包含了系統的主機名稱,包括完全的域名,如:

192.168.0.1 machine1.domain machine1

這個檔案是在啟動時從檔案/etc/sysconfig/network中的HOSTNAME行中得到的,用於在啟動時設定系統的主機名。

◆ /etc/hosts IP地址和主機名的對映

/etc/hosts中包含了IP地址和主機名之間的對映,還包括主機名的別名,IP地址的設計使計算機容易識別,但對於人卻很難記住它們,為了解決這個問題,建立了/etc/hosts這個檔案。下面是一個例子檔案:

127.0.0.1 machine1 localhost.localdomain localhost

192.168.1.100 machine7

192.168.1.101 otherpc otheralias

在這個例子中,本機名是machine1,otherpc還有別名otheralias,它可以指向otheralias。。一旦配置完機器的網路配置檔案,應該重新啟動網路以使修改生效,使用下面的命令來重新啟動網路:

/etc/rc.d/init.d/network restart

/etc/hosts檔案通常含有主機名、localhost和系統管理員經常使用的系統別名,有時候telnet到Linux機器要等待很長時間,可以透過在"/etc/hosts"加入客戶的機器的IP地址和主機名的匹配項,就可以減少登入等待時間。在沒有域名伺服器情況下,系統上的所有網路程式都透過查詢該檔案來解析對應於某個主機名的IP地址,否則,其他的主機名通常使用DNS來解決,DNS客戶部分的配置在檔案/etc/resolv.conf 中。

◆ /etc/services

/etc/services中包含了服務名和埠號之間的對映,不少的系統程式要使用這個檔案,下面是RedHat 安裝時預設的/etc/services中的前幾行:

tcpmux 1/tcp # TCP port service multiplexer

echo 7/tcp

echo 7/udp

discard 9/tcp sink null

discard 9/udp sink null

systat 11/tcp users

最左邊一列是主機服務名,中間一列是埠號,”/“ 後面是埠型別,可以是TCP也可以是UDP。任何後面的列都是前面服務的別名。在這個檔案中也存在著別名,它們出現在埠號後面,在上述例子中sink和null 都是discard服務的別名。

◆ /etc/host.conf 配置名字解析器

有兩個檔案宣告系統到哪裡尋找名字資訊來配置UNIX名字解析器的庫。檔案/etc/host.conf由版本5的libc庫所使用,而 /etc/nsswitch.conf由版本6使用(glibc )。問題在於一些程式使用其中一個,而一些使用另一個,所以將兩個檔案都配置正確是必要的。

/etc/host.conf檔案指定如何解析主機名,Linux透過解析器庫來獲得主機名對應的IP地址。下面是RedHat安裝後預設的"/etc/host.conf"內容:

order hosts,bind

multi on

※"order " 指定主機名查詢順序,其引數為用逗號隔開的查詢方法,支援的查詢方法為bind、hosts和nis,分別代表DNS、/etc/hosts和NIS,這裡規定先查詢"/etc/hosts"檔案然後再使用DNS來解析域名。

※"trim" 表明當透過DNS進行地址到主機名的轉換時,域名將從主機名中被裁剪掉,trim可以被多個域包含多次,對/etc/hosts和NIS查詢方法不起作用,注意在/etc/hosts和NIS表中主機名是被適當地(有或沒有全域名)列出的。

※"multi" 指定是否"/etc/hosts"檔案中指定的主機可以有多個地址,值為on表示允許,擁有多個IP地址的主機一般稱為具有多個網路介面。

※"nospoof " 指是否允許對該伺服器進行IP地址欺騙,值為on表示不允許,IP欺騙是一種攻擊系統安全的手段,透過把IP地址偽裝成別的計算機,來取得其它計算機的信任。

※"alert" 當nospoof指令為on時,alert控制欺騙的企圖是否用syslog工具進行記錄,值為on表示使用,預設值為off。

※"rccorder" 如果被設定為on,所有的查詢將被重新排序,所以在同一子網中的主機將首選被返回,預設值為off。

◆ /etc/nsswitch.conf 配置名字解析器

/etc/nsswitch.conf檔案是由S u n公司開發並用於管理系統中多個配置檔案查詢的順序,它比/etc/host.conf檔案提供了更多的功能。/etc/nsswitch.conf中的每一行或者是註釋(以#號開頭)或者是一個關鍵字後跟冒號和一系列要試用的有順序的方法。每一個關鍵字是在/etc/目錄可以被 /etc/nsswitch.conf控制的/etc檔案的名字。下面是可以被包含的關鍵字:

※aliases 郵件別名;

※passwd 系統使用者;

※group 使用者組;

※shadow 隱蔽口令;

※hosts 主機名和I P地址;

※networks 網路名和號;

※protocols 網路協議;

※services 埠號和服務名稱;

※ethers 乙太網號;

※rpc 遠端程式呼叫的名稱和號

※netgroup 網內組

下面也是可以包含的關鍵字:

※files 除了netgroup,對其他關鍵字都有效。在相應的/etc檔案中尋找記錄

※db 除了netgroup,對其他關鍵字都有效。在相應的/var/db資料庫中尋找記錄。對長檔案很有效,如passwd檔案已經 超過500項。要從標準/etc檔案中產生這些檔案,應改變目錄到/var/db並執行run命令

※compat 相容性模式,對passwd、group和shadow檔案有效。在本模式中,將先在對應的/etc檔案中查詢。如果想進行NIS查詢,需要第一個值(使用者名稱或組名)為加號( + ),後面跟對應數量的冒號( : ) ( /etc/passwd為6個, /etc/group為3個, /etc/shadow為8個)。如在/etc/passwd檔案中,下面一行應被包含在檔案尾: + : * : : : : :

※dns 只對hosts有意義。像在/etc/resolvconf配置的,在DNS中進行查詢

※nis 對所有的關鍵字都有意義。如NIS是可以用的,在NIS伺服器中查詢

※[ STATUS = action ] 控制名字服務的行為。STATUS是SUCCESS(操作被成功執行)、NOTFOUND (記錄沒找到)、UNAVAIL (所選擇的服務不可用)和TRYAGAIN (服務暫時不可用,請重試)中的一個。action是return (終止查詢並返回當前狀態)或continue (繼續這一行的其他項)中的一個。如hosts: dns nis [NOTFOUND=return] files將會首先在DNS中,然後在NIS中查詢主機名。只有當前兩項都不可用時才使用檔案/etc/hosts

◆ /etc/resolv.conf 配置DNS客戶

檔案/etc/resolv.conf配置DNS客戶,它包含了主機的域名搜尋順序和DNS伺服器的地址,每一行應包含一個關鍵字和一個或多個的由空格隔開的引數。下面是一個例子檔案:

search mydom.edu.cn

nameserver 210.34.0.14

nameserver 210.34.0.2

合法的引數及其意義如下:

※nameserver 表明DNS伺服器的IP地址。可以有很多行的nameserver,每一個帶一個I P地址。在查詢時就按nameserver在本檔案中的順序進行,且只有當第一個nameserver沒有反應時才查詢下面的nameserver.

※domain 宣告主機的域名。很多程式用到它,如郵件系統;當為沒有域名的主機進行DNS查詢時,也要用到。如果沒有域名,主機名將被使用,刪除所有在第一個點( . )前面的內容。

※search 它的多個引數指明域名查詢順序。當要查詢沒有域名的主機,主機將在由search宣告的域中分別查詢。domain和search不能共存;如果同時存在,後面出現的將會被使用。

※sortlist 允許將得到域名結果進行特定的排序。它的引數為網路/掩碼對,允許任意的排列順序。Red Hat中沒有提供預設的/ e t c / r e s o l v. c o n f檔案,它的內容是根據在安裝時給出的選項動態建立的。

◆ /etc/init.d/network 主機地址、子網掩碼和閘道器

不像很多其他的UNIX和Linux作業系統, Red Hat當前並不能自動地透過/etc/hostname和/etc/hosts檔案來配置網路。為了改變主機預設的IP地址,必須直接編輯 /etc/init.d/network指令碼使其反映正確的網路配置。這個檔案包括了宣告IP地址、掩碼、網路、廣播地址和預設路由器的變數。下面是這個檔案中相應的部分:

IPADDR=192.168.1.100

NETMASK=255.255.255.0

BROADCAST=192.168.1.255

GATEWAY=192.168.1.

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/8225414/viewspace-939088/,如需轉載,請註明出處,否則將追究法律責任。

相關文章