■ 枝江市職業教育中心 楊華 梅瀚林
編者按:很多人在使用Linux虛擬機進行網絡配置時會出現各種各樣的錯誤,筆者以Centos-6.5版本為例,對一些常見的Linux虛擬機網絡配置故障進行了詳細說明。
由 于Linux相對于Windows是開源的,而且在安全上要優于后者,現在各行各業應用很廣泛,越來越多的人也在學習Linux。但是有些時候單獨裝它來學習,實在是很浪費,虛擬機就成了最好的選擇。
但在使用虛擬機軟件的時候,很多初學者都會遇到很多問題,其中網絡連接問題是大家遇到最多問題之一。
對于Windwos下的網絡配置,因為是圖形化的界面,操作起來非常方便。但在Linux(本 文 以 Centos-6.5版本為例)虛擬機下配置就不是那么輕松了。
因為它是依賴在虛擬機下配置,首先要保證服務正常啟動,再就是網絡的配置文件有多個,需要手工配置。稍不注意就可能導致網絡配置不成功。
下面以常見幾例故障來分析。
首先需要簡要弄清虛擬機中的三種網絡工作模式,它們分別是:Bridged(橋接模式)、NAT(網絡地址轉換模式)、Host-Only(僅主機模式)。系統會為這三種工種模式分別虛擬出三種虛擬網 卡 即 VMnet0、VMnet8和VMnet1。
在此模式下,虛擬機和主機就好比插在同一臺交換機上的兩臺電腦。如果主機連接在開啟了DHCP服務的(無線)路由器上,這時虛擬機能夠自動獲得IP地址。如果局域網內沒有提供DHCP服務的設備,那就需要手動配置IP地址,只需仿照主機網卡的IP地址,設置一個同網段的不同的IP地址即可。
注 意 :VMnet0其實是物理網卡上的VMware bridge protocol橋接協議,它是不會出現在本地網絡連接上,打開本地連接或其他無線網卡的屬性,看下是否有這個協議,有的話就有橋接模式!
【網卡無法正常啟動】
1.克隆系統網卡配置信息不對稱
【故障現象】
Device eth0 does not seem to be present,delaying initialization.
【故障分析】
Linux(Centos-6.5)虛擬機克隆后,啟動系統發現網卡無法啟動,然后輸入命令“ifup eth0”會提 示“Device eth0 does not seem to be present,delaying initialization”,翻譯過來即設備eth0似乎不存在,延遲初始化。原因是系統克隆后保留了之前的網絡配置信息,其中重要一個參數就是網上的物理地址即MAC,而克隆的系統在啟動時會隨機生產一個新的網卡MAC,與配置文件不匹配,導致網卡初始化失敗。
【故障排除】
在“虛擬機設置”對話框的“網絡適配器→高級配置”選項中(如圖1所示),查看克隆系統網卡初始化的MAC,然后在網絡配置文件中進行相應修改。
[root@yum ~]# vim /etc/sysconfig/networkscripts/ifcfg-eth0
將 DEVICE=”eth0″ 改成 DEVICE=”eth1″ ,
將 HWADDR=”08:00:27:7e: 8c:e7″改成上面的MAC地址
HWADDR=” 00:0C:29:14:F7:39″
重新啟動網絡:service network restart
2.NetworkManager和network沖突
【故障現象】
重啟網絡服務時,[root@HBZJ /]# service network restart

圖1 網絡適配器高級設置
Error: Device not managed by NetworkManager or unavailable
或者重啟網卡設備時,[root@HBZJ /]# ifup eth1
Error: Connection activation failed: The connection is not for this device.
【故障分析】
對于初學者來講,一般是采用系統的默認配置,在LINUX中,之前的網絡連接配置是能過ifcfg配置文件的編輯來進行,當然系統也提供了一個SETUP程序來進行簡單圖形化的操作,不管是哪種方式都是配置文件的修改,讓它生效。
現在Linux為了加強網絡連接的管理,方便用戶(特別是習慣了Windows操作)對各種網絡配置又增加了NetworkManager軟件,它也支持傳統的ifcfg 類型配置文件。核心是 NetworkManager守護進程,還提供了命令行工具 nmcli,以及圖形界面配置工具。
我們用戶最直觀的感受如果啟用了NetworkManager服 務,在系統右上角就會出現像Windows一樣的網絡連接圖標,然后可以直接利用圖形界面進行網絡各種配置。ifcfg類型配置文件中有一個重要參數“NM_CONTROLLED="yes"”, 這 決定是否可以由NNetwork Manager托管,意味著通過軟件可以直接修改ifcfg配置文件。
但是對于極度依賴網絡、經常進行遠程管理的系統管理員來說,這東西就是一個災難。當系統管理員按以前的習慣,在遠程連接的終端上,修改ifcfg配置文件時,如果內容不完全正確,有很大概率導致網絡中斷(重要原因是當前配置文件是實時生效的),導致遠程連接死機,無法進行任何操作,管理員只能到機房去(如果幸運,離機房比較近的話),到服務器的Console終端來進行修改。
【故障排除】
關閉NetworkManager服務
# chkconfig NetworkManager off --永久關閉服務,需要重啟
# service NetworkManager stop --立即關閉服務,不需要重啟
注意:配置linux網絡IP的時候,設置ifcfg-eh0文件就行了,這是系統級別的,而在圖形界面手工配置的IP設置,是用戶級別的,且重啟后,系統會優先加載系統級別的配置,建議關掉圖形界面配置,即關閉NetworkManager服務。
【網卡能正常啟動,但無法獲取IP地址】
1.橋接網卡選擇錯誤;
【故障現象】

圖2 系統網絡服務啟動

圖3 橋接模式網卡選擇

圖4 NAT模式拓樸圖
能夠通過ifconfig命令顯示網卡的基本信息,但唯獨沒有IP 地址相關信息,進行網絡服務重新啟動,如圖2所示,系統一直在獲取網卡的IP配置信息。
【故障分析】
根據經驗,應該是DHCP服務的問題,查看系統日志(/var/messages)發現提示“NO DHCPOFFERS received”,然后獲取IP都是失敗。但檢測物理機上的IP地址是可以正常獲取的,分析很有可能就是在橋接模式配置上了。進入到虛擬機的橋接配置界面一看真相大白,如圖3所示。可能由于人為誤操作,導致橋接網卡配置到了虛擬網卡上了。
【問題探討】
橋接模式不是跟直接通過物理網卡模擬一臺真實的設備,為什么還要設計這樣一個網卡的選項,還容易出錯?其實這樣設計是為了應對物理機上可能安裝多塊網卡,連接到不同的網絡,這種情況下就要根據實際情況下橋接到不同的網卡了。
【故障排除】
只要選擇橋接到物理網卡上,然后重新啟動網絡服務即可。
NAT模式與VMnet8虛擬網卡進行通信,從主機的“VMWare Virtual Ethernet Adapter for VMnet8”虛擬網卡出來,連接到VMnet8虛擬交換機,虛擬交換機的另外的口連接到虛擬的NAT服務器(這也是一個VMware組件),還有一個口連接到虛擬DHCP服務器,其他的口連虛擬機,虛擬機的網關即是“VMWare Virtual Ethernet Adapter for VMnet8”網卡所在的機器,就是你的Host機器(如圖4所示)。
同 樣,用ipconfig也可以看出來,你的虛擬機的默認網關也指向了你的“VMWare Virtual Ethernet Adapter for VMnet8”虛擬網卡地址。
【故障現象】
VMnet8虛擬網卡沒有啟動。
【分析排錯】
這個需要在虛擬機里作配置才有的,在虛擬網絡配置器里將 VMnet8進行NAT模式配置,要“將主機虛擬適配器連接到此網絡”和“使用本地DHCP服務將IP地址分配給虛擬機”兩項全部選中,這樣才會在本地網絡配置中出現VMnet8虛擬網卡。
【故障現象】
VMnet8虛擬網卡能正常配置啟動。但系統啟動后無法獲取IP。
【分析排錯】
Windows系統服務中的VMware DHCP Service服務項沒有正常啟動,從而導致虛擬機客戶端無法正常獲取IP,重新啟動該服務即可。
【故障現象】
能夠正常獲取IP,但無法訪問外網。
【分析排錯】
Windows系統服務中的VMware NAT Service服務項沒有正常啟動,從而導致虛擬機客戶端沒有與外網連接的路徑,重新啟動該服務即可。
【故障現象】
能夠通過IP訪問外網,不能進行域名解析訪問。
【分析排錯】
這是虛擬機系統上DNS配置錯誤引起的,ifcfg類型配置文件中有一項關于的DNS配置,默認情況下是沒有配置,它會根據DHCP自動獲取相關DNS,如果人為修改造成一個錯誤的DNS服務地址,這就將導致域名解析錯誤。
有的用戶認為可以修改/etc/resolv.conf配置文件來配置本的DNS服務,其實這個選項是根據網卡配置文件來,所以會發現配置完重新啟動會丟失,又回到之前的配置。這主要是系統域名解析的優先級是“hosts文件”→“網卡配置文件”→ “/etc/resolv.conf”,所 以 如果網卡配置文件的DNS選擇沒有更改過來,始終不會更改成功。
要么更改網卡配置文件中DNS選項為正確的IP指向,或者直接注釋掉該選項,系統會用默認網關作為DNS,雖然在配置文件中看不到,但 在“/etc/resolv.conf”配置文件中會發現DNS已經同步到默認網關了。