無論是Linux自動安裝還是我們手工安裝,Linux都會向你詢問有關網絡的問題並配置相關的軟件。這個用於配置網卡的基本命令就是ifconfig。 在執行ifconfig命令後,系統將在內核表中設置必要的參數,這樣Linux就知道如何與網絡上的網卡通信。ifconfig命令有以下兩種格式: ※ifconfig [interface] ※ifconfig interface [aftype] option address … ifconfig的第一種格式(或使用不帶任何參數的ifconfig命令)可以用來查看當前系統的網絡配置情況。 在剛剛安裝完系統之後,實際上是在沒有網卡或者網絡連接的情況下使用Linux,但通過ifconfig可以使用回繞方式工作,使計算機認為自己工作在網絡上。 現在我們運行一下ifconfig命令,不帶參數的ifconfig命令可以顯示當前啟動的網絡接口,其輸出結果為:-----------------------------------------------------------[root@machine1 /sbin]#ifconfigeth0 Link encap:Ethernet Hwaddr 52:54:AB:DD:6F:61inet addr:210.34.6.89 Bcast:210.34.6.127 Mask:255.255.255.128UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1RX packets:46299 errors:0 dropped:0 overruns:0 frame:189TX packets:3057 errors:0 dropped:0 overruns:0 carrier:0collisions:0 txqueuelen:100Interrupt:5 Base address:0xece0lo Link encap:Local Loopbackinet addr:127.0.0.1 Mask:255.0.0.0UP LOOPBACK RUNNING MTU:3924 Metric:1RX packets:44 errors:0 dropped:0 overruns:0 frame:0TX packets:44 errors:0 dropped:0 overruns:0 carrier:0collisions: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 eth0eth0 Link encap:Ethernet HWaddr 52:54:AB:DD:6F:61inet addr:210.34.6.89 Bcast:210.34.6.127 Mask:255.255.255.128UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1RX packets:50568 errors:0 dropped:0 overruns:0 frame:198TX packets:3200 errors:0 dropped:0 overruns:0 carrier:0collisions:0 txqueuelen:100Interrupt: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.127ifconfig 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只要設置一個就可以了。