linux網絡配置相關文件
網絡接口(interface)是網絡硬件設備在操作系統中的表示方法,比如網卡在Linux操作系統中用ethX,是由0開始的正整數,比如eth0、eth1...... ethX。而普通貓和ADSL的接口是 pppX,比如ppp0等;
機器中所有可用網卡及名字:
參考:linux網絡配置相關命令、虛擬網絡接口eth0:0
網關GateWay配置地址:
/etc/sysconfig/network GATEWAY=192.168.1.250
/etc/sysconfig/network-scripts/ifcfg-eth0 GATEWAY=192.168.1.250
DNS配置地址:
/etc/resolv.conf
一般DHCP方式獲得Ip地址時,網關、路由、Ip地址等信息都不需要手動設置!
網絡配置相關文件:
- /etc/sysconfig/network-scripts/ifcfg-ethX : Configuration file for network interfaces 網絡接口(網卡)的配置文件(配置IP,掩碼,廣播地址,MAC地址,網關地址,DHCP等) 如果增加了一塊網卡,那么可以手動把ifcfg-eth0復制一份并命名為ifcfg-eth1,修改配置后,重啟網絡即可
- /etc/sysconfig/network 網絡基礎設置文件(配置主機名、網絡是否可用等)
- /etc/resolv.conf 配置DNS域名解析服務器
- /etc/networks 網絡定義文件:顯示已知的網絡名信息(一般默認不需要修改)
- /etc/hosts 配置IP地址和主機名的映射(一般默認不需要修改)
- /etc/services 網絡服務列表及服務和端口號之間的映射(一般默認不需要修改)
- /etc/host.conf 配置域名查找順序1(一般默認不需要修改)
- /etc/nsswitch.conf 配置域名查找順序2(一般默認不需要修改)
這些文件都可以在系統運行時進行修改,不用啟動或者停止任何守護程序,更改會立刻生效(除了/etc/sysconfig/network 和 /etc/sysconfig/network-scripts/ifcfg-ethX)。另外,這些文件都支持由"#"開頭的注釋,每一個文件都有在Linux幫助手冊頁中的第5部分中有一項,可以用man命令來獲取它們。
/etc/sysconfig/network-scripts/ifcfg-ethX : 網絡接口(網卡)的配置文件(配置IP,掩碼,廣播地址,MAC地址,網關地址,DHCP等),修改后需要重啟網絡。
配置DHCP:
DEVICE=eth0
BOOTPROTO=dhcp
ONBOOT=yes(dhcp的配置方法就是這么簡單)
配置靜態地址:
DEVICE=eth0
BOOTPROTO=static(或者是none)
IPADDR=192.168.0.1
NETMASK=255.255.255.0
GATEWAY=192.168.0.254
ONBOOT=yes
參數解釋:
完整的參數說明參考:Linux Certif - Man ifcfg(5)
- DEVICE=eth0#網卡設備名稱 - 必須字段
- BOOTPROTO=static#系統獲取IP的協議類型 dhcp bootp none - 必須字段
- ONBOOT=yes#啟動時是否激活 yes | no - 必須字段
- IPADDR=192.168.1.90#網絡IP地址 - static靜態IP時必須
- NETMASK=255.255.255.0#網絡子網掩碼地址 - static靜態IP時必須
- TYPE=Ethernet#網卡類型為以太網
- HWADDR=00:0C:29:FE:1A:09#網卡MAC地址
- BROADCAST=192.168.1.255#廣播地址 - 根據Ip地址和子網掩碼地址可以計算得到
- GATEWAY=192.168.1.1#網關地址
- USERCTL=answer, 非root用戶是否可以控制該設備: yes 是 | no 否
/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/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中沒有提供缺省的/etc/resolv.conf文件,它的內容是根據在安裝時給出的選項動態創建的。
/etc/networks 網絡定義文件:顯示已知的網絡名信息
該文件是一個用來描述已知DARPA網絡和名稱的純文本文件。每一行代表一個network
/etc/hosts 配置IP地址和主機名的映射
/etc/hosts中包含了IP地址和主機名之間的映射,格式:IP地址 標準主機名 [ 多個可選別名]。下面是一個例子文件:

- 127.0.0.1 localhost localhost.localdomain machine1
- 192.168.1.100 machine7
- 192.168.1.101 otherpc otheralias
/etc/services:網絡服務列表及服務和端口號之間的映射
/etc/services中包含了所有的網絡服務名和端口號之間的映射,不少的系統程序要使用這個文件。linux系統端口分類:通用端口:0-1023 可注冊端口:1024-49151 動態或者私有端口:49152-65535。下面是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 配置域名查找順序1
有兩個文件聲明系統到哪里尋找名字信息來配置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 配置域名查找順序2
/etc/nsswitch.conf文件是由Sun公司開發并用于管理系統中多個配置文件查找的順序,它比/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