網路軟體的手動組態應該永遠是最後的替代方案。建議使用 YaST。不過,這個有關網路組態的背景資訊也可協助您使用 YaST。
檔核心偵測到網路卡並建立對應的網路介面時,它會根據探查到設備或載入核心模組的順序,為該設備指定名稱。只有在非常簡單或嚴密控制的硬體環境中,才可以預測預設核心設備的名稱。如果系統允許在執行時期新增或移除硬體,或是支援自動設定設備組態,則無法獲得核心在重新開機時指定的固定網路設備名稱。
但是,所有系統組態工具均依賴於永久的介面名稱。udev 解決了此問題。udev 永久網路產生器 (/lib/udev/rules.d/75-persistent-net-generator.rules) 會產生與硬體相符的規則 (預設使用其硬體位址),並為硬體指定一個永遠唯一的介面。網路介面的 udev 資料庫儲存在檔案 /etc/udev/rules.d/70-persistent-net.rules 中。該檔案中的每一行描述一個網路介面並指定其永久名稱。系統管理員可以透過編輯 NAME="" 項目來變更指定的名稱。您也可以使用 YaST 修改永久規則。
表格 20.5 「手動網路組態程序檔」 總結了與網路組態相關的最重要的程序檔。
表格 20.5. 手動網路組態程序檔
|
指令 |
函數 |
|---|---|
|
ifup, ifdown, ifstatus |
|
|
rcnetwork |
|
如需 udev 和永久設備名稱的詳細資訊,請參閱第 13 章「使用 udev 進行動態核心設備管理」。
本節提供網路組態檔的綜覽,並說明其用途和使用的格式。
這些檔案包含網路介面的組態。其中包含啟動模式和 IP 位址等資訊。可以使用的參數請參閱 ifup 的手冊頁。此外,如果一般設定只能用於一個介面,則檔案 dhcp、wireless 和 config 中的大多數變數都可以用於 ifcfg-* 檔案。
如需 ifcfg.template 的相關資訊,請參閱第 20.6.1.2 節「/etc/sysconfig/network/config、/etc/sysconfig/network/dhcp 和 /etc/sysconfig/network/wireless」。
檔案 config 包含 ifup、ifdown 和 ifstatus 行為的一般設定。dhcp 包含無線 LAN 卡之 DHCP 和 wireless 的設定。所有三個組態檔中的變數都已被註解。/etc/sysconfig/network/config 中的某些變數也可以在 ifcfg-* 檔案中使用,而且在這些檔案中它們的優先程度更高。/etc/sysconfig/network/ifcfg.template 檔案列出了可在永久介面中指定的變數。但是,/etc/sysconfig/network/config 的大多數變數都是全域變數,無法在 ifcfg 檔案中覆寫。例如,NETWORKMANAGER 或 NETCONFIG_* 變數就是全域變數。
TCP/IP 封包的靜態路由在此決定。您可以將各種系統任務所需的所有靜態路由都輸入 /etc/sysconfig/network/routes 檔案,包括主機的路由、透過閘道前往主機的路由,以及網路的路由。對於需要個別路由的介面,請定義額外的組態檔案:/etc/sysconfig/network/ifroute-*。以介面的名稱取代 *。在路由組態檔中的項目看起來就像這樣:
# Destination Dummy/Gateway Netmask Device # 127.0.0.0 0.0.0.0 255.255.255.0 lo 204.127.235.0 0.0.0.0 255.255.255.0 eth0 default 204.127.235.41 0.0.0.0 eth0 207.68.156.51 207.68.145.45 255.255.255.255 eth1 192.168.0.0 207.68.156.51 255.255.0.0 eth1
路由的目的地是在第一個資料欄。這個資料欄可能包含網路或主機的 IP 位址,這是指「可到達的」名稱伺服器、完整合格的網路或主機名稱。
第二個資料欄包含預設的閘道或是可以存取主機或網路的閘道。第三個資料欄包含在閘道後面的網路或主機的網路遮罩。例如,遮罩為 255.255.255.255,供在閘道後面的主機使用。
第四欄只與連接至本地主機的網路相關,例如迴路、乙太網路、ISDN、PPP 以及虛擬設備。必須在這裏輸入設備名稱。
第五欄 (可選) 可指定路由的類型。不需要的欄位必須包含 - 減號,以確保解析程式可正確解譯指令。如需詳細資訊,請參閱 routes(5) man 頁面。
主機所屬的網域指定於此檔案 (關鍵字 search);另外也會列出要存取的名稱伺服器位址的狀態 (關鍵字 nameserver)。可以在檔案中指定多個網域名稱。解析不完整的名稱時,會嘗試附加個別 search 項目產生一個名稱。可以在多行中指定多個伺服器名稱,每個名稱均以 nameserver 開頭。備註前面標有 # 符號。範例 20.5 「/etc/resolv.conf」 顯示了 /etc/resolv.conf 的格式。
不過,您不可手動編輯 /etc/resolv.conf。它是由 netconfig 程序檔產生的。若不想使用 YaST 來定義靜態 DNS 組態,請在 /etc/sysconfig/network/config 檔案中手動編輯適當的變數:NETCONFIG_DNS_STATIC_SEARCHLIST (用於查詢主機名稱的 DNS 網域名稱清單)、NETCONFIG_DNS_STATIC_SERVERS (用於查詢主機名稱的名稱伺服器 IP 位址清單)、NETCONFIG_DNS_FORWARDER (定義必須設定的 DNS 轉遞者的名稱)。若要使用 netconfig 停用 DNS 組態,請設定 NETCONFIG_DNS_POLICY=''。如需 netconfig 的詳細資訊,請參閱 man 8 netconfig。
範例 20.5. /etc/resolv.conf
# Our domain search example.com # # We use dns.example.com (192.168.1.116) as nameserver nameserver 192.168.1.116
netconfig 是一個模組化工具,用於管理其他網路組態設定。它根據預先定義的規則,將靜態定義的設定與自動組態機制 (如 dhcp 或 ppp) 提供的設定進行合併。透過呼叫負責修改組態檔案和重新啟動服務或類似動作的 netconfig 模組,將必要的變更套用至系統。
netconfig 可以辨識三個主要動作。dhcp 或 ppp 等精靈使用 netconfig modify 與 netconfig remove 指令提供或移除 netconfig 的設定。使用者僅可使用 netconfig update 指令:
netconfig modify 指令會修改目前的介面和服務特定的動態設定,並更新網路組態。Netconfig 會從標準輸入或從 --lease-file 選項指定的檔案讀取設定,並將它們儲存於內部,直到系統重新開機 (或執行下一個修改或移除動作) 為止。系統會覆寫同一個介面與服務組合的現有設定。介面由 檔案名稱-i 參數來指定。服務由 介面名稱-s 參數來指定。
服務名稱
netconfig remove 指令會移除修改動作為指定介面和服務組合提供的動態設定,並更新網路組態。介面由 -i 參數來指定。服務由 介面名稱-s 參數來指定。
服務名稱
netconfig update 指令會使用目前的設定更新網路組態。當規則或靜態組態變更時可以使用此指令。如果只想更新指定的服務 (dns、nis 或 ntp),請使用 -m 參數。
模組類型
netconfig 規則和靜態組態設定可透過手動方式定義,或使用 YaST 在 /etc/sysconfig/network/config 檔案中定義。自動組態工具 (如 dhcp 或 ppp) 提供的動態組態設定透過這些工具經由 netconfig modify 和 netconfig remove 動作直接傳送。NetworkManager 也可以使用 netconfig modify 與 netconfig remove 動作。NetworkManager 啟用時,netconfig (在 auto 規則模式中) 只會使用 NetworkManager 設定,忽略使用傳統 ifup 方法設定的任何其他介面中的設定。如果 NetworkManager 未提供任何設定,則使用靜態設定做為備用設定。系統不支援同時使用 NetworkManager 與傳統 ifup 方法。
如需 netconfig 的詳細資訊,請參閱 man 8 netconfig。
在此檔中 (請參閱 範例 20.6 「/etc/hosts」),IP 位址是指定給主機名稱。如果沒有執行任何名稱伺服器,將使用此 IP 連接設定的所有主機將列示於此。對於每個主機,分別在檔案中輸入一行包含 IP 位址、完全合法的主機名稱及主機名稱的項目。IP 位址必須在行的開頭,然後以空格和定位點分隔這些項目。註解的前面永遠是 # 符號。
範例 20.6. /etc/hosts
127.0.0.1 localhost 192.168.2.100 jupiter.example.com jupiter 192.168.2.101 venus.example.com venus
名稱解析,即透過解析程式庫 (Resolver Library) 翻譯主機及網路名稱,是由此檔案控制的。該檔案僅用於與 libc4 或 libc5 連結的程式。對於目前的 glibc 程式,請參閱 /etc/nsswitch.conf 中的設定。每個參數必須永遠是獨立一行。註解的前面是 # 符號。表格 20.6 「/etc/host.conf 的參數」 顯示出可用的參數。/etc/host.conf 範例是顯示在 範例 20.8 「/etc/host.conf」。
表格 20.6. /etc/host.conf 的參數
|
order hosts, bind |
指定針對名稱解析存取服務的順序。可用的引數有 (以空格或逗號分隔): |
|
hosts:搜尋 | |
|
bind:存取名稱伺服器 | |
|
nis:使用 NIS | |
|
multi on/off |
定義在 |
|
nospoof on spoofalert on/off |
這些參數會影響名稱伺服器 spoofing,但並不會對網路組態產生任何影響。 |
|
trim domainname |
指定的網域名稱在主機名稱解析後會與主機名稱分隔 (只要主機名稱包括網域名稱)。只有在本地網域分隔出來的名稱位於 |
GNU C Library 2.0 的介紹隨附於名稱服務切換 (NSS,Name Service Switch) 的介紹。詳細資訊請參閱 nsswitch.conf(5) man 頁面和GNU C Library 參考手冊。
查詢的順序定義於檔案 /etc/nsswitch.conf。nsswitch.conf 範例是顯示在 範例 20.9 「/etc/nsswitch.conf」。備註前面標有 # 符號。在此範例中,hosts 資料庫下的項目表示要求是透過 DNS 傳送到 /etc/hosts (files)。
範例 20.9. /etc/nsswitch.conf
passwd: compat group: compat hosts: files dns networks: files dns services: db files protocols: db files netgroup: files automount: files nis
NSS 上可用的「資料庫」列示於 表格 20.7 「透過 /etc/nsswitch.conf 的可用資料庫」。此外,很快還會有 automount、bootparams、netmasks 和 publickey。 NSS 資料庫的組態選項將列於表格 20.8 「NSS「資料庫」的組態選項」。
表格 20.7. 透過 /etc/nsswitch.conf 的可用資料庫
|
|
|
|
|
乙太網路位址。 |
|
|
適用於 |
|
|
|
|
|
在網路中有效的主機與使用者清單,以利控制存取權限,請參閱 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
表格 20.8. NSS「資料庫」的組態選項
|
|
直接存取檔案,例如 |
|
|
透過資料庫存取 |
|
|
NIS,請參閱第 3 章「Using NIS」 (↑Security Guide) |
|
|
只能做為 |
|
|
只能做為 |
此檔案用來設定 nscd (名稱服務快取精靈)。請參閱 nscd(8) 與 nscd.conf(5) man 頁面。依預設,passwd 與 groups 的系統項目是由 nscd 快取。這對於目錄服務 (如 NIS 和 LDAP) 的效能而言是很重要的,否則每次存取名稱或群組時都需要使用網路連線。預設是不會快取 hosts,因為 nscd 快取主機的機制會造成本地系統無法信任轉寄以及反向查詢檢查。不要要求 nscd 快取名稱,而是設定快取 DNS 伺服器。
如果啟用 passwd 的快取,通常需要 15 秒,才能辨識新增的本地使用者。使用指令 rcnscd restart 重新啟動 nscd,縮短這段等待時間。
將組態寫入您的組態檔案之前,可先進行測試。若要設定測試組態,請使用 ip 指令。若要測試連接,請使用 ping 指令。同時也可使用較舊的組態工具,如 ifconfig 和 route。
ip、ifconfig 和 route 指令會直接變更網路組態,不會將其儲存到組態檔案中。除非您將組態輸入正確的組態檔案,否則重新開機之後網路組態的變更就會遺失。
工具 ip 可顯示並設定路由、網路設備、規則路由和通道。
ip 是非常複雜的工具。其一般語法是 ip 。您可使用下列物件:
options object command
此物件代表網路設備。
此物件代表設備的 IP 位址。
此物件代表 ARP 或 NDISC 快取項目。
此物件代表路由表格項目。
此物件代表路由原則資料庫中的規則。
此物件代表多重廣播位址。
此物件代表多重廣播路由快取項目。
此物件表示 IP 上的通道。
若未提供指令,會使用預設指令 (通常是 list)。
您可使用 ip link set device_namecommand 指令變更設備狀態。例如,若要停用設備 eth0,請輸入 ip link set eth0 down。若要重新啟用,請使用 ip link set eth0 up。
啟用設備之後,就可加以設定。若要設定 IP 位址,請使用 ip addr add 。例如,若要將介面 eth0 的 IP 位址以標準廣播 (選項 ip_address + dev device_namebrd) 設定為 192.168.12.154/30,請輸入 ip addr add 192.168.12.154/30 brd + dev eth0。
若要具備作用中連接,必須設定預設閘道。若要為您的系統設定閘道,請輸入 ip route add 閘道 IP 位址。若要轉換某個 IP 位址,請使用 nat: ip route add nat ip_address via other_ip_address。
若要顯示所有設備,請使用 ip link ls。若只希望顯示運作中介面,請使用 ip link ls up。若要列印設備的介面統計值,請輸入 ip -s link ls device_name。若要檢是您設備的位址,請輸入 ip addr。在 ip addr 的輸出中同時也可找到您設備的 MAC 位址相關資訊。若要顯示所有路由,請使用 ip route show。
如需使用 ip 的詳細資訊,請輸入 ip help 或參閱 ip(8) man 頁面。help 選項也適用於所有 ip 物件。例如,假設您要閱讀 ip addr 的說明,請輸入 ip addr help。請在 /usr/share/doc/packages/iproute2/ip-cref.pdf 中尋找 ip 的手冊。
ping 指令是測試 TCP/IP 連接運作的標準工具。其使用 ICMP 通訊協定,將小型資料封包 ECHO_REQUEST 傳送至目的地主機,要求立即回應。如果有作用,ping 會顯示訊息,指示網路連結基本上是正常的。
ping 所做的不僅止於測試兩台電腦之間的連接狀態,它還可以提供某些有關於連接品質的基本資訊。您可在 範例 20.10 「指令 ping 的輸出」 中看到 ping 輸出的一些範例。倒數第二行包含已傳送封包數、遺失封包數、執行 ping 總時間等資訊。
對於目的地,可使用主機名稱或 IP 位址,例如 ping example.com 或 ping 192.168.3.100。程式會持續傳送封包,直到您按下 Ctrl+C 為止。
若您只需要檢查連接功能性,您可以 -c 選項限定封包數目。例如,若要將 ping 限制於三個封包,請輸入 ping -c 3 example.com。
範例 20.10. 指令 ping 的輸出
ping -c 3 example.com PING example.com (192.168.3.100) 56(84) bytes of data. 64 bytes from example.com (192.168.3.100): icmp_seq=1 ttl=49 time=188 ms 64 bytes from example.com (192.168.3.100): icmp_seq=2 ttl=49 time=184 ms 64 bytes from example.com (192.168.3.100): icmp_seq=3 ttl=49 time=183 ms --- example.com ping statistics --- 3 packets transmitted, 3 received, 0% packet loss, time 2007ms rtt min/avg/max/mdev = 183.417/185.447/188.259/2.052 ms
兩個封包之間的預設間隔為一秒。若要變更間隔,ping 提供了選項 -i。例如,若要將 ping 間隔增加到十秒,請輸入 ping -i 10 example.com。
在具備多網路設備的系統中,透過特定介面位址傳送 ping 非常實用。若要實現此功能,請使用 -I 選項並提供所選設備的名稱,例如 ping -I wlan1 example.com。
如需使用 ping 的選項與詳細資訊,請輸入 ping -h 或參閱 ping (8) man 頁面。
ifconfig 是傳統網路設定工具。與 ip 相反,此指令只能用於介面組態。若您希望設定路由,請使用 route。
![]() | ifconfig 和 ip |
|---|---|
ifconfig 這個程式已過時。請改用 ip。 | |
無疑的,ifconfig 會顯示目前作用中介面的狀態。如同您在 範例 20.11 「ifconfig 指令的輸出」 中所見,ifconfig 具有排列整齊而詳盡的輸出。輸出的第一行亦包含您設備的 MAC 位址 (HWaddr 的值) 等相關資訊。
範例 20.11. ifconfig 指令的輸出
eth0 Link encap:Ethernet HWaddr 00:08:74:98:ED:51
inet6 addr: fe80::208:74ff:fe98:ed51/64 Scope:Link
UP BROADCAST MULTICAST MTU:1500 Metric:1
RX packets:634735 errors:0 dropped:0 overruns:4 frame:0
TX packets:154779 errors:0 dropped:0 overruns:0 carrier:1
collisions:0 txqueuelen:1000
RX bytes:162531992 (155.0 Mb) TX bytes:49575995 (47.2 Mb)
Interrupt:11 Base address:0xec80
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:8559 errors:0 dropped:0 overruns:0 frame:0
TX packets:8559 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:533234 (520.7 Kb) TX bytes:533234 (520.7 Kb)
wlan1 Link encap:Ethernet HWaddr 00:0E:2E:52:3B:1D
inet addr:192.168.2.4 Bcast:192.168.2.255 Mask:255.255.255.0
inet6 addr: fe80::20e:2eff:fe52:3b1d/64 Scope:Link
UP BROADCAST NOTRAILERS RUNNING MULTICAST MTU:1500 Metric:1
RX packets:50828 errors:0 dropped:0 overruns:0 frame:0
TX packets:43770 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:45978185 (43.8 Mb) TX bytes:7526693 (7.1 MB)
如需使用 ifconfig 的選項與詳細資訊,請輸入 ifconfig -h 或參閱 ifconfig (8) man 頁面。
route 是操作 IP 路由表格的程式。您可使用此指令檢是您的路由組態,並新增或移除路由。
![]() | route 與 ip |
|---|---|
route 這個程式已過時。請改用 ip。 | |
若您需要快速又易於理解的路由組態資訊以判別路由問題,route 是特別實用的工具。若要檢視您目前的路由組態,請以 root 身分輸入 route -n。
範例 20.12. route -n 指令的輸出
route -n Kernel IP routing table Destination Gateway Genmask Flags MSS Window irtt Iface 10.20.0.0 * 255.255.248.0 U 0 0 0 eth0 link-local * 255.255.0.0 U 0 0 0 eth0 loopback * 255.0.0.0 U 0 0 0 lo default styx.exam.com 0.0.0.0 UG 0 0 0 eth0
如需使用 route 的選項與詳細資訊,請輸入 route -h 或參閱 route (8) man 頁面。
除了上述的組態檔之外,還有在機器開機時載入網路程式的各種程序檔。只要系統切換到其中一個 multiuser runlevels,就會啟動這些程序檔。在 表格 20.9 「網路程式的一些啟動程序檔」 中提供了一些程序檔的說明。
表格 20.9. 網路程式的一些啟動程序檔
|
此程序檔會處理網路介面的組態。如果未啟動網路服務,則不會實作任何網路介面。 | |
|
啟動 xinetd。xinetd 可以用來讓伺服器服務能夠在系統上使用。例如,只要開啟 FTP 連接,它即可啟動 vsftpd。 | |
|
啟動可將 RPC 程式號碼轉換為通用位址的 rpcbind 公用程式。NFS 伺服器等 RPC 服務需要用到。 | |
|
啟動 NFS 伺服器。 | |
|
控制後置程序。 | |
|
啟動 NIS 伺服器。 | |
|
啟動 NIS 用戶端。 |