/etc/network/interfaces 集網路設定之大成

/etc/network/interfaces 是 Debian 系統中最為重要的網路設定檔案,許多網路介面的設定都是透過這個檔案。細節請查閱 interfaces(5)。或您的系統檔案 /usr/share/doc/ifupdown/examples/network-interfaces.gz 有完整的範例介紹。

本文件以最新版 ifupdown 為基礎。

interfaces 中若為空白或 # 開頭,則視之為註解,系統會自動略過。首先,您永遠都會想要一個 loopback 介面。因此 interfaces 介面會有這麼兩行

auto lo
iface lo inet loopback

接下來您可能想設定乙太網路卡的 IP 位址及路由,假設位址是 192.168.0.1,網路遮罩為 255.255.255.0,路由器位址是 192.168.0.254。那麼請在檔案中加入

auto lo
iface lo inet loopback

auto eth0
iface eth0 inet static
address 192.168.0.1
network 192.168.0.0 # 此行不寫無妨
netmask 255.255.255.0
broadcast 192.168.0.255 # 此行不寫無妨
gateway 192.168.0.254

或您的介面藉由 (dhcp)? 動態網路設定,那麼可以如此寫

auto lo
iface lo inet loopback

auto eth0
iface eth0 inet dhcp

數個乙太介面可以寫為

auto lo eth0 eht1 eth2
iface lo inet loopback
iface eth0 inet dhcp
iface eth1 inet dhcp
iface eth2 inet dhcp

如果要讓更動立刻生效,最有效的辦法是重新開機,最聰明的辦法是以 root 身份下達以下指令

# /etc/init.d/networking restart

以上是最基本與最常用的。接下來將仔細介紹語法、設定方式及進階的用法。

如果您注意到設定的內容了,大概已經發現每個網路介面設定是起於 "auto"、"iface" 兩個關鍵字,而關鍵字之後接上網路介面名稱,網路類別以及設定方法,下方便是該網路介面的設定細節。事實上除了 "auto"、 "iface" 之外,還有一個 "mapping"。
auto

auto 關鍵字乃指定每個「物理網路介面」,你可以單一行指定介面名稱,也可以在檔案中使用數行。在開機時,系統命令稿會執行 "ifup -a",而這個指令會找出所有的 auto 設定節,並依序啟動該網路介面。

auto lo eth0
iface lo inet loopback
iface eth0 inet dhcp

或以數行表示

auto lo
iface lo inet loopback
auto eth0
iface eth0 inet dhcp

iface 設定選項

關鍵字 "iface" 設定的則是「邏輯介面」(logical interface),倘若未使用 "mapping" 設定,則 iface 等於純粹用於設定「實體介面」(physical interface),稍後提到 "mapping" 會說明差別。

auto lo
iface lo inet loopback

auto eth0
iface eth0 inet static
address 192.168.0.1
netmask 255.255.255.0
gateway 192.168.0.254

依照範例設定而言,iface 之後接的是介面名稱(之後會介紹 logical interface 與 physical interface),以上顯示的即是 eth0。之後則是網路協定類別(address family),有以下三種分類

* inet - TCP/IP networking (IPv4)
* ipx - IPX networking
* inet6 - IPv6 networking

之後看到的 static 選項稱為 method of the interface,也就是設定的方式,通常用到的是

* inet - TCP/IP networking (IPv4)
o loopback
o static
o manual
o dhcp
o bootp
o ppp
o wvdail
* ipx - IPX networking
o static
o dynamic
* inet6 - IPv6 networking
o loopback
o static
o v4tunnel

每種設定方式對於之後的細部設定參數都有所不同。細節請參考 interfaces(5)。以 TCP/IP networking 為例

auto eth0
iface eth0 inet static
address 192.168.0.1
network 192.168.0.0 # 此行不寫無妨
netmask 255.255.255.0
broadcast 192.168.0.255 # 此行不寫無妨
gateway 192.168.0.254

我們可看到以上屬於 inet static 的設定有 address、network、netmask、broadcast、gateway,您大概注意到每行開頭的空白縮格,這些空白僅是為了閱讀設定便利,無縮格亦可。

另外一些強大的模組化命令稿機制便是 "up"、"pre-up"、"down"、"post-down" 等參數。這些參數的用途在於介面啟動或停止時,執行特定的命令。例如可在介面啟動時,自動載入您欲設定的 iptables 規則等,或是藉由 macchanger 指令在開機時更改網路介面的 MAC 位址。如果您要進行的設定是不分網路介面的,那麼可以把相關的命令寫成命令稿丟到 /etc/network/if-

留言

熱門文章