網絡接口初始化的實際過程(有時也稱做“啟動接口”)是由一組配置文件和腳本控制的,這些文件和腳本大多數在/etc 目錄下。這些配置文件告訴 Linux 它的 IP 地址、主機名和域名;腳本則負責網絡接口的初始化。
遺憾的是,不同分發版(distribution)中文件位置和命名約定至今還沒有統一的標准。為給本文提供具體的示例,將基於廣泛使用的 Red Hat 7.0 包做出描述。請記住,若您的分發版不是使用 Red Hat 或不是基於 Red Hat 約定(如 Mandrake 分發版),在此所引用的一些文件會位於別的目錄中或有其它的名稱。然而,網絡效果和實際效果是一樣的 — 將存儲在一系列配置文件中的網絡信息傳遞給腳本,然後用腳本初始化接口和網絡路由。
涉及初始化和配置網絡接口的關鍵文件有:
/etc/hosts (將主機名映射到 IP 地址)
/etc/networks (將域名映射到網絡地址)
/etc/sysconfig/network (打開或關閉聯網,設置主機名和網關)
/etc/resolv.conf (設置名稱服務器或 DNS 服務器的 IP 地址)
/etc/rc.d/rc3.d/S10network (在引導時激活已配置的以太網接口,由運行級別目錄 /etc/rc.d/rcN.d/ 中的符號鏈接調用)
/etc/sysconfig/network-scripts 中一些文件的集合。這些文件包括用於網絡連接的主要配置,以及提供接口狀態和控制功能的符號鏈接。
/etc/hosts
/etc/hosts 是將 IP 地址和主機名聯系起來的簡單文本文件。 TCP/IP 網絡中的每台計算機都必須有唯一的 IP 地址。hosts 文件只允許用戶將主機名與 IP 地址聯系起來,以便當訪問計算機時使用該名稱,而不用輸入一長串數字。/etc/hosts 中的每一項都依次包含一個 IP 地址、空白和主機名和/或別名。井號(#)表示注釋開始。例如:
# /etc/hosts
# last updated 12/3/2000
192.168.1.20 phoenix.syroidmanor.com phoenix
192.168.1.15 hydras.syroidmanor.com hydras
在上面顯示的 Hosts 文件中,IP 地址 192.168.1.5 映射到主機 janus.syroidmanor.com ,並且分配給它一個備用主機名(或別名)janus。盡管 DNS 已經取代了這個主機文件,但出於以下原因仍然使用它:
大多數系統都有一個包含本地網絡上的關鍵主機的名稱和地址信息的小主機表。當 DNS 未運行時,例如,在最初系統啟動期間,則使用該表。即便本地 DNS 服務器正在運行,在每個系統上也應該有一個小 hosts 文件,該文件包含一個主機本身項、一個 localhost 項以及局域網上任何主要的網關和服務器項。
未連接到因特網或其他網絡的小網絡不需要 DNS 服務。然而,這些網絡上的主機也需要知道如何定位同一網絡上的其它主機。
/etc/networks
就如主機有名稱和地址一樣,為方便起見,也可以為網絡和子網命名。 /etc/networks 文件在布局上與 /etc/hosts 很相似,只不過名稱和地址互換了一下。
# /etc/networks for syroidmanor.com
localnet 127.0.0.0 #loopback
syroid-C1 192.168.1 #development, class C
syroid-C2 192.168.2 #support, class C
在上面的示例中,可將網絡名稱 syroid-C1 用於腳本或任何命令行實用程序中來引用 192.168.1 這個 C 類網。
netstat 支持一組顯示活動或非活動的套接字的選項:-t、-u、-w 和 -x 分別顯示活動的 TCP、UDP、RAW 或 UNIX 套接字連接。如果加上 -a 標志,還會顯示等待連接的(換句話說,就是偵聽)套接字。這將為您顯示現在正在系統上運行的所有服務器。
例如:在主機 phoenix 上輸入 netstat -ta 會顯示下列內容:
[tom@phoenix tom]$ netstat -ta
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 0 40 phoenix.syroidmanor:ssh 192.168.1.5:1132 ESTABLISHED
tcp 0 0 *:ssh *:* LISTEN
tcp 0 0 phoenix.syroidmano:1028 hydras.syro:netbios-ssn ESTABLISHED
tcp 0 0 phoenix.syroidmano:1027 raidserver:netbios-ssn ESTABLISHED
tcp 0 0 *:printer *:* LISTEN
tcp 0 0 *:auth *:* LISTEN
tcp 0 0 *:1024 *:* LISTEN
tcp 0 0 *:sunrpc *:* LISTEN
上述輸出顯示大多數的服務器僅僅在等待到來的連接(LISTEN)。但是,第一行顯示主機 phoenix 和 IP 地址為 192.168.1.5 之間的連接;第三和第四行顯示兩個 netbios 連接(Samba SMB 共享)。
用 netstat 查看路由表
當使用 -r 標志時,netstat 顯示內核中的路由表,這類似於輸入 /sbin/route :
[tom@phoenix tom]$ netstat -nr
Kernel IP routing table
Destination Gateway Genmask Flags MSS Window irtt Iface
192.168.1.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
127.0.0.0 0.0.0.0 255.0.0.0 U 0 0 0 lo
0.0.0.0 192.168.1.1 0.0.0.0 UG 0 0 0 eth0
-n 選項強制 netstat 以點分四組 IP 數字的形式,而不是主機和網絡名稱的形式輸出地址。當您不想通過網絡(例如,用 DNS 或 NIS 服務器)進行地址查詢時,這個選項特別有用。
第二列顯示路由項中所指向的網關。如果沒有使用網關,就會顯示星號。第三列是路由的網絡掩碼。內核在將信息包的 IP 地址與路由的目的地 IP 地址進行比較之前,將 Genmask 值與信息包的 IP 地址逐位進行“與”操作,從而使路由“通用化”。
第四列顯示路由的標志:U 表示處於活動狀態,H 表示主機,G 表示網關,D 表示動態路由,而 M 表示已經修改過。
在網上有:
Linux System Administrator's Guide
學習如何 Easily configure TCP/IP on your AIX system
IBM 提供了一些用於網絡監控的工具,譬如 Tivoli NetView Performance Monitor for TCP/IP
訪問 TCP/IP for OS/40O 的主頁
請閱讀關於實現 iSeries 和 AS/400 的 TCP/IP 和因特網訪問
如果您可以在線搜索和參考,則我強烈向您推薦 O'Reilly 新的 Safari 訂閱服務。您可以完全搜索並選擇一些曾經出版過的有關網絡方面最好的書籍。
出版的書籍有:
TCP/IP Network Administration, 2nd Edition,Craig Hunt(O'Reilly)ISBN:1-56592-322-7
Linux in a Nutshell, 3rd Edition,Siever, Spainhour, Figgins, and Hekman(O'Reilly)ISBN:0-596-00025-1
Running Linux, 3rd Edition, Welsh, Dalheimer, and Kaufman(O'Reilly)ISBN:1-56592-469-X