目錄
- Linux 下網卡參數配置
- 第一種:修改 interfaces 檔案
- 網卡配置執行個體
- 回環參數配置
- DHCP方式配置
- 靜态 IP 位址配置設定
- 無線網卡配置
March 17, 2015 7:48 PM
Linux 下網卡參數配置
在 Linux 下如果想修改網卡的參數有很多種方法,第一種方法是修改 /etc/network/interfaces 檔案,這種方法可以在重新開機後依然有效;另外一種方法是使用 ifconfig 指令,這種方法隻能臨時性的修改網卡參數,在重新開機後會失效。
第一種:修改 interfaces 檔案
interfaces 檔案在 /etc/network/ 檔案夾下,是網絡接口配置檔案,裡面包含了所有網絡接口的配置資訊。
interfaces 檔案有自己的編寫規則,其中以 '#' 開頭的行會被系統忽略,是以可以作為注釋使用。每個指令占一行,如果寫不下可以用 '' 符号作為此行結尾,在下一行接着寫指令。
檔案由 "iface","mapping","auto","allow-" 和 "source" 字段組成。下面是一個例子:
auto lo eth0
allow-hotplug eth1
iface lo inet loopback
source interfaces.d/machine-dependent
mapping eth0
script /usr/local/sbin/map-scheme
map HOME eth0-home
map WORK eht0-work
iface eth0-home inet static
address 192.168.1.1
netmask 255.255.255.0
up flush-mail
iface eth0-work inet dhcp
iface eth1 inet dhcp
以 "auto" 開頭的行是用來确定實體網絡接口将會被啟動當
ifup -a
指令被運作時(這個指令會在系統啟動腳本中使用,是以開機時會自動啟動以 "auto" 開頭設定的網卡)。在 "auto" 字段的後面應該緊跟着實體接口的名字,interfaces 檔案中可以設定多個 "auto" 方式啟動的網絡接口,
ifup
指令會按照順序啟動網絡裝置。
以 "allow-" 開頭的行是用來确定通過哪種子系統來啟動那些應該被自動啟動的網絡裝置。這樣就可以使用指令
ifup --allow=hotplug
來啟動那些已經設定 "allow-hotplug" 的網絡裝置。
NOTE:"allow-auto" 和 "auto" 是同義詞。
以 "source" 開頭的行是用來包含其他檔案的字段,是以可以把配置拆成幾個檔案。 "source" 後面接的是檔案路徑, shell 下面的通配符可以使用。
以 "mapping" 開頭的行是用來給将要啟動的實體裝置接口确定邏輯接口名。"mapping" 字段的第一行是以 "mapping" 開始的,後面跟着 shell 下 glob 指令文法相同的模式比對(如 eth*)。每個 "mapping" 字段必須包含一個腳本定義,這個腳本使用實體裝置接口名作為參數,并且會把下面所有以 "map" 開頭的字段(不包括 "map" 本身)提供給它作為輸入。在腳本執行結束前會輸出一段字元串,具體例子可以參考 /usr/share/doc/ifupdown/examples 下面的例子檔案。
映射一個包含搜尋映射比對模式的名字并且執行使用第一個比對的字段來運作腳本,腳本輸出的名字就是原來網卡将要被映射的名字。
如:
通過PING配置網絡
Linux 在處理 PCMCIA 卡的時候有比較好的方式,可以在 PCMICA 卡插入時通過一個配置腳本來确定網絡位址。但是,筆記本上的網卡是筆記本自帶的,并非 PCMCIA 卡,由于經常需要奔波于辦公室、實驗室和家之間,就經常需要修改網絡位址。如果我去的每一個地方都安裝了 DHCP ,那麼我就可以把 eth0 設定成為 DHCP 的方式,然而我的情況卻是:在家可以使用DHCP,在辦公室和實驗室都要使用固定位址。
為了解決這個問題,我們可以使用一種 mapping 機制,這種方法的基本原理是通過運作一個程式來确定目前所處的環境,并為這個環境選擇一套配置。我現在使用的就是通過ping一個網絡的網關來确定目前網卡究竟連接配接在哪個網絡上,然後再選擇這個網絡的配置。
首先,在 /usr/share/doc/ifupdown/examples 中有一個檔案 ping-places.sh ,把它複制到 /etc/network 目錄中,然後
chmod a+x /etc/network/ping-places.sh
。下面就是編輯 /etc/network/interfaces 檔案,下面是一個例子:
mapping eth0 ①
script /etc/network/ping-places.sh
map 192.168.0.107/24 192.168.0.1 home
map 10.1.133.165/24 10.1.133.1 office
map 10.1.0.107/24 10.1.0.1 lab
iface home inet dhcp ②
iface office inet static ③
address 10.1.133.165
netmask 255.255.255.0
gateway 10.1.133.1
up cp /etc/resolv.conf.school /etc/resolv.conf ④
iface lab inet static
address 10.1.0.107
netmask 255.255.255.0
gateway 10.1.0.1
up cp /etc/resolv.conf.school /etc/resolv.conf
-
表示對于網絡裝置調用腳本 /etc/network/ping-places.sh ,如果能夠用位址 192.168.0.107/24
ping 通位址 192.168.0.1 ,則将 eth0 映射為裝置 home ,即啟動 home 的配置。後面的 office 和 lab 與其類似。
- 表示虛拟裝置 home 使用 DHCP 配置設定的位址。
- 表示虛拟裝置 office 使用固定位址。
- 表示在啟動這個網絡裝置後還要執行 cp 指令,進而指定一個域名解析方法。除了 up 以外,還有 pre-up、down 和 post-down 可以用來指定在啟動或停止網絡裝置前後執行的指令。
NOTE:在 /usr/share/doc/ifupdown/examples 中有一些配置網絡的例子和需要的腳本。
ifup
通常會給一個實體接口名作為它的第一個沒有選項的參數。
ifup
同時也會使用這個名字作為接口的初始化邏輯名,除非它被指定了一個 "=LOGICAL" 格式的字尾,這樣
ifup
會使用 "LOGICAL" 作為接口的初始化邏輯名。
網卡配置執行個體
回環參數配置
#
# The loopback network interface(配置環回口)
# 開機自動激lo接口
auto lo
# 配置lo接口為環回口
iface lo inet loopback
DHCP方式配置
#
# The primary network interface (配置主網絡接口)
# 開機自動激活eth0接口
auto eth0
# 配置eth0接口為DHCP自動擷取
iface eth0 inet dhcp
靜态 IP 位址配置設定
#
# The primary network interface (配置主網絡接口)
#開機自動激活eth0接口
auto eth0
#配置eth0接口為靜态設定IP位址
iface eth0 inet static
address 10.16.3.99
netmask 255.255.255.0
network 10.16.3.0
broadcast 10.16.3.255
gateway 10.16.3.1
# dns-* options are implemented by the resolvconf package, if installed(DNS設定)
dns-nameservers 61.153.177.196 61.153.177.197
dns-search fireteam.org
無線網卡配置
auto wlan0
iface wlan1 inet static
wpa-ssid wifi-name
wpa-psk wifi-passwork
address 192.168.1.200
netmask 255.255.255.0
gateway 192.168.1.1
dns-nameservers 202.196.64.1
轉載于:https://www.cnblogs.com/OpenShiFt/p/4356351.html