雪落无影 发表于 2005-4-14 15:01:45

網絡配置文件快速解讀

http://fjt.now.net.cn:7751/www.linuxext.com/article_view.asp?id=13

在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 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.1

jarson 发表于 2005-4-14 17:42:26

8错。顶

lish44 发表于 2005-4-15 09:02:19

我用系统工具--->联网来配置网络,可以记住这些配置,下次开机还是可以正常上网而不必再重新配置。但是如果我用ifconfig,route这些命令配置的话,重启之后还需再配置。
我想知道:那个工具通过修改了那个文件实现了可以重启后保持网络配置?
谢谢指教。

zxq20004 发表于 2005-7-4 11:23:43

ding 很不错啊

红心闪闪 发表于 2005-10-9 14:24:25

jarson,
页: [1]
查看完整版本: 網絡配置文件快速解讀