Ifconfig網路配置工具詳解(轉)

ba發表於2007-08-12
Ifconfig網路配置工具詳解(轉)[@more@]無論是Linux自動安裝還是我們手工安裝,Linux都會向你詢問有關網路的問題並配置相關的軟體。這個用於配置網路卡的基本命令就是ifconfig。
  在執行ifconfig命令後,系統將在核心表中設定必要的引數,這樣Linux就知道如何與網路上的網路卡通訊。ifconfig命令有以下兩種格式:
  ※ifconfig [interface]
  ※ifconfig interface [aftype] option | address …
  ifconfig的第一種格式(或使用不帶任何引數的ifconfig命令)可以用來檢視當前系統的網路配置情況。
  在剛剛安裝完系統之後,實際上是在沒有網路卡或者網路連線的情況下使用Linux,但透過ifconfig可以使用迴繞方式工作,使計算機認為自己工作在網路上。
  現在我們執行一下ifconfig命令,不帶引數的ifconfig命令可以顯示當前啟動的網路介面,其輸出結果為:
-----------------------------------------------------------
[root@machine1 /sbin]#ifconfig
eth0 Link encap:Ethernet Hwaddr 52:54:AB:DD:6F:61
inet addr:210.34.6.89 Bcast:210.34.6.127 Mask:255.255.255.128
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:46299 errors:0 dropped:0 overruns:0 frame:189
TX packets:3057 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:100
Interrupt:5 Base address:0xece0
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
UP LOOPBACK RUNNING MTU:3924 Metric:1
RX packets:44 errors:0 dropped:0 overruns:0 frame:0
TX packets:44 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
--------------------------------------------------------------------
  其中以eth0為首的部分是本機的乙太網卡配置引數,這裡顯示了網路卡在下的裝置名/dev/eth0和硬體的MAC地址52:54:AB:DD:6F:61,MAC地址是生產廠家定的,每個網路卡擁有的唯一地址。
  不過我們可以手工改動網路卡的MAC地址,只要我們在/etc/rc.d/init.d/中的network中加入:

  ifconfig eth0 hw ether xx:xx:xx:xx:xx:xx

  然後重啟,此時再用ifconfig命令檢視一下,我們就會發現網路卡的MAC地址已經變成xx:xx:xx:xx:xx:xx了。
下一行顯示本機的IP地址資訊,分別是本機的IP地址,網路廣播地址和子網掩碼。必須確認這些資訊都是正確無誤的,否則Linux伺服器無法與其它網路裝置建立連線。我們也可以手工實現IP與Mac地址的捆綁,命令是

  arp -i eth0 -s xxx.xxx.xxx.xxx(IP) xx.xx.xx.xx.xx(MAC)

接下來顯示的是裝置的網路狀態。MTU(最大傳輸單元)和Metric(度量值)欄位顯示的是該介面當前的M T U和度量值的值。按照慣例,度量值供某些作業系統所用,用於計算一條路由的成本。
再下來顯示介面通訊的網路統計值。RX和TX分別表示接收和傳送的資料包。如果你的網路卡已經完成配置卻還是無法與其它裝置通訊,那麼從RX和TX的顯示資料上可以簡單地分析一下故障原因。在這種情況下,如果你看到接收和傳送的包的計數(packets)增加,那有可能是系統的IP地址出現了混亂;如果你看到大量的錯誤(errors)和衝突(Collisions),那麼這很有可能是網路的傳輸介質出了問題,例如網線不通或hub損壞。
  再下面的Interrupt:5 Base address:0xece0顯示的是網路卡的中斷呼叫號和埠號,這是兩個非常重要的硬體配置資訊。如果您的網路卡是PCI的,那麼Linux在引導時有可能會自動配置這些資訊(也很有可能會讓您手工配置)但目前絕大多數網路卡都是PnP的,這就需要我們進行手工配置了。如果您的網路卡還沒有配置好,那麼執行:

  [root@machine1 /sbin]#ifconfig

系統只會輸出以lo為首的部分。lo是look-back網路介面,從IP地址127.0.0.1就可以看出,它代表"本機"。無論系統是否接入網路,這個裝置總是存在的,除非你在核心編譯的時候禁止了網路支援,這是一個稱為回送裝置的特殊裝置,它自動由Linux配置以提供網路的自身連線。IP地址127.0.0.1是一個特殊的回送地址(即預設的本機地址),您可以在自己的系統上用telnet對IP地址127.0.0.1進行測試。如果有inetd程式在執行的話您會從自己的機器上獲得登入提示符。Linux可以利用這個特徵在程式與模擬網路之間進行通訊。(您有興趣的話還可以試試本機的實際IP地址,如這裡的機器就是210.34.6.89,或者試試"localhost",或者"127.0.0.1",同樣可以模擬網路通訊。這可是Linux一個非常突出的優點!)
如果你只是關心某個裝置是否正常,可以在ifconfig後面加上介面名字:

[root@machine1 /sbin]# ifconfig eth0
eth0 Link encap:Ethernet HWaddr 52:54:AB:DD:6F:61
inet addr:210.34.6.89 Bcast:210.34.6.127 Mask:255.255.255.128
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:50568 errors:0 dropped:0 overruns:0 frame:198
TX packets:3200 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:100
Interrupt:5 Base address:0xece0

表示eth0裝置已經正常工作。

有時需要為某個裝置介面配置多個IP地址,辦法是使用裝置別名,例如,eth0裝置可以有eth0,eth0:0,eth0:1....多個別名,每個都可以有一個獨立的IP地址:

ifconfig eth0 210.34.6.89 netmask 255.255.255.128 broadcast 210.34.6.127
ifconfig eth0:0 210.34.6.88 netmask 255.255.255.128 broadcast 210.34.6.127

這樣,210.34.6.89和210.34.6.88都會被繫結在eth0裝置上,使用同樣的網路裝置,不同的IP地址。
如果你要暫停某個網路介面的工作,使用down引數:

ifconfig eth0 down

將取消eth0網路介面。與之對應的是有一個引數up,不過由於是預設值,所以從來不用。
  如果我們使用了帶有引數的ifconfig命令,那就可以手動設定網路卡的配置引數了。有效的ifconfig命令引數及其意義為(選項對應的特性可以開啟也可以取消,只在選項名前加一個破折號(-)即可):

Interface 網路裝置名,如eth0就表示本機的第一塊網路卡。
up 標誌介面處於" up"狀態,也就是說, IP層可以對其進行訪問。這個選項用於命令列上給出一個地址之時。如果這個介面已被" down"選項臨時性取消的話(與該選項對應的標記是UP RUNNING),還可以用於重新啟用一個介面。
down 標標誌介面處於" down"狀態,也就是說, IP層不能對其進行訪問。這個選項有效地禁止了IP通訊流通這個介面。注意,它並沒有自動刪除利用該介面的所有路由資訊。如果永久性地取消了一個介面,就應該刪除這些路由條目,並在可能的情況下,提供備用路由。
netmask 標分配子網掩碼,供介面所用。要麼給一個前面是0x的32位十六進位制號碼,要麼採用只適用於兩臺主機所用的點分四段式號碼。對SLIP和PLIP介面來說,這個選項是必須配置的。
address  設定指定介面裝置的IP地址。
dstaddr adderss 為PPP設定遠端IP地址,此關鍵字可用pointopoint代替。
irqaddress 設定指定介面裝置使用的中斷行。
pointtopoint address 該選項用於只涉及兩臺主機的點到點連結。對SLIP和PLIP介面來說,這個選項是必須配置的(如果已經設定了一個點到點地址,ifconfig就會顯示出POINTTPOINT標記)。
broadcast address 廣播地址通常源於網路編號,透過設定主機部分的所有位得來。有的I P採用的方案有所不同:這個選項可適用於某些奇怪的環境(如果已經設定了廣播地址, ifconfig就會顯示出一個BROADCAST標記)。
hw class addr     設定指定介面裝置的MAC地址,關鍵字的後面必須跟硬體名或者與之等價的ASCII碼。目前支援的硬體類有ether, ax25, ARCnet和 netrom。
metric number 該選項可用於為介面建立的路由表分配度量值。路由資訊協議( RIP)利用度量值來構建網路路由表。ifconfig所用的預設度量值是0。如果不執行RIP程式,就沒必要採用這個選項。如果要執行RIP程式,就儘量不要改變這個預設的度量值。
mtu bytes 該選項用於設定最大傳輸單元,也就是介面一次能處理的最大位元組數。對乙太網介面來說, MTU的預設設定是1500 個位元組;對SLIP介面來說,則是296個位元組。
arp 標這個選項專用於乙太網或包廣播之類的廣播網路。它啟用ARP(地址解析協議)來保護網路上各臺主機的實體地址。對廣播網來說,預設設定是" on"(開)。
promisc 將介面置入promiscuous(混亂)模式。廣播網中,這樣將導致該介面接收所有的資料包,不管其目標是不是另一臺主機。該選項允許利用包過濾器和所謂的乙太網窺視技術,對網路通訊進行分析。通常情況下,這對揪出網路故障的元兇來說,是相當有用的。但另一方面,如果有人蓄意攻擊你的網路,也可瀏覽到s通訊資料,進而獲得密碼,破壞你的網路。一項重要的保證措施是杜絕任何人將他們的計算機接入你的乙太網。另一個選項用於保護某些身份驗證協議的安全,比如Kerberos或SRA登入套件(該選項對應的標記是PROMISC)。
traIlers  開或關閉跟蹤器。目前在某些Linux系統中還無法實現此功能。
allmulti 多播地址即是向不在同一個子網上的一組主機廣播資料。多播地址尚未獲得核心支援(該選項對應的標記是ALLMULTI)
txqueuelen len   設定指定介面裝置的傳送佇列長度。

由此可以看出有大量的引數可用於配置網路卡,下面是在這臺計算機上使用ifconfig命令的例項:
------------------------------------------------------------------------------
ifconfig eth0 210.34.6.89 netmask 255.255.255.128 broadcast 210.34.6.127
------------------------------------------------------------------------------
該命令的作用是設定網路卡eth0的IP地址,網路掩碼和網路的本地廣播地址。同樣的方式可以用來配置eth1,eth2等等,通常netmask和broadcast只要設定一個就可以了。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10617731/viewspace-950271/,如需轉載,請註明出處,否則將追究法律責任。

相關文章