天天看點

VMware虛拟機的網絡設定

在很多情況下,電腦愛好者需要有一個網絡環境來學習網絡伺服器的安裝和設定,黑客攻防技術等,但是往往大部分的業餘電腦愛好者都沒有這樣的條件.虛拟機軟體VMware的出現使得我們可以以非常低廉的價格來獲得一個非常高效實用的網絡實驗平台.然而,VMware虛拟機的網絡設定一直是很多初學者感到困惑的地方,常常在各大電腦論壇上看到有人尋求有關VMware網絡設定解決方案的貼子,雖然互連網上也有很多這方面的文章,但往往說的不夠完整,或者寫的過于專業,使初學者看後仍是一頭雲霧.針對這個情況,筆者在學習閱讀網絡上的各類文章和VMware軟體的文檔後,結合自己的經驗整理出這些内容,力圖比較詳悉又簡明易懂的表述來說明VMware虛拟機網絡的設定過程.

下面我想以Linux平台的VMware虛拟機的安裝和網絡的設定為例來說明VMware的安裝和網絡設定過程。

一、VMware的安裝

1,獲得VMware

在Internet上可以下載下傳到VMware Workstation的試用版本,很多Linux站點都可以下載下傳

推薦兩個有VMware下載下傳的網站:

[url]http://www.linuxeden.com[/url]

[url]http://www.linuxfans.org[/url]

2,安裝VMware的硬體要求

虛拟機是極費電腦資源的軟體,對電腦的硬體要求比較高,尤其是對記憶體容量要求更高。一般來說256M記憶體是底線,相對來說CPU就沒那麼高要求了,一般五六百MHz以上的CPU就可以跑起來,當然如果想使得虛拟系統和實際系統都運作的比較流暢,并且可以在虛拟系統和主系統上運作PHOTOSHP,CAD等大型軟體的話,推薦使用512M的記憶體,1G以上的CPU。就本人的電腦而言,配置是 毒龍700M CPU+256M SDRAM記憶體,跑Redhat 8.0主系統和Windows 2000 Server虛拟系統,并分别在主系統和虛拟系統上運作DNS伺服器,HTTP伺服器,FTP伺服器等,系統基本可以跑的流暢 ,記憶體使用率在 52%以上,CPU使用率在9%左右,swap使用量達57M(平時隻要5M左右),這也僅僅是在正常運作時的資源耗費情況,在虛拟系統開機和關機的時候實際資源耗費量更大。如果想在跑虛拟系統的時候順便聽聽MP3的話,MP3有明顯的停頓和暴音。基本上是用足了資源,當然再在主系統和虛拟系統上運作幾個FTP和HTTP用戶端,還是可以的。如果你的記憶體隻有128M,理論上還可以跑虛拟機,盡量關閉所有的Linux背景程序,不用KDE,GNOME等這樣的大型桌面管理系統,而隻用X和TWM視窗管理器就可以省下很多記憶體,并且在虛拟機中跑WIN98、WIN95或者字元界面的Linux系統等對硬體要求比較低的系統,跑VMware還是可以的,隻是在視窗切換的時候會有一點卡。如果你的記憶體隻有64M的話那你隻能乞求奇迹的發生了,或者能跑個DOS虛拟系統? 有興趣的朋友不妨去試一下,看看VMware對硬體要求的極限是多少。

3,VMware的安裝

解壓縮軟體包:

#tar xfvz VMware-workstation-3.2.0-2230.tar.gz

進入安裝目錄

#cd vmware-distrib

運作安裝程式

#./vmware-install.pl

根據提示安裝軟體,安裝程式會詢問軟體各種檔案的安裝目錄,直接回車用預設值就可以了。

需要注意不要盲目直接按回車,在安裝程式提示是否讓Vmware支援網絡的時候一定要選擇yes,在提示是否支援host-only網絡的是時候也要選擇yes。

注意:VMware在安裝過程中會根據你的系統核心版本選擇一個和系統比對的配置,如果找不到則需要編譯,是以你需要一個GCC編譯器,否則VMware将無法安裝。

如果安裝順利,安裝程式會有類似 : enjoy vmware! 之類的提示。說明已經安裝成功。

二、運作VMware

在終端中輸入vmware并回車就可以運作VMware

有一點需要注意,VMware隻是一個前台程式,它的運作需要VMware背景虛拟裝置的支援,即在你運作VMware前你已經運作了VMware的背景服務程式,一般情況下安裝程式安裝完以後會執行這個工作,并把VMware的啟動腳本添加到 /etc/rc.d/init.d目錄下,使它在每次開機的時候都自動運作,如果由于某種原因已經把VMware的背景服務程式關閉請手動開啟:

#service vmware start

用ifconfig檢視vmware的虛拟網絡裝置:

#ifconfig

lo        Link encap:Local Loopback 

inet addr:127.0.0.1  Mask:255.0.0.0

UP LOOPBACK RUNNING  MTU:16436  Metric:1

RX packets:454 errors:0 dropped:0 overruns:0 frame:0

TX packets:454 errors:0 dropped:0 overruns:0 carrier:0

collisions:0 txqueuelen:0

RX bytes:33512 (32.7 Kb)  TX bytes:33512 (32.7 Kb)

vmnet1    Link encap:Ethernet  HWaddr 00:50:56:C0:00:01 

inet addr:192.168.221.1  Bcast:192.168.221.255  Mask:255.255.255.0

UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1

RX packets:191 errors:0 dropped:0 overruns:0 frame:0

TX packets:63 errors:0 dropped:0 overruns:0 carrier:0

collisions:0 txqueuelen:100

RX bytes:0 (0.0 b)  TX bytes:0 (0.0 b)

vmnet8    Link encap:Ethernet  HWaddr 00:50:56:C0:00:08 

inet addr:172.16.74.1  Bcast:172.16.74.255  Mask:255.255.255.0

RX packets:0 errors:0 dropped:0 overruns:0 frame:0

TX packets:0 errors:0 dropped:0 overruns:0 carrier:0

可以看到VMware的虛拟網絡裝置vmnet1 和vmnet8

如果用ifconfig指令沒有看到這兩個虛拟裝置則說明VMware的背景服務程式沒有運作,執行vmware的時候将出錯,請用上面講的指令運作。

VMware不是免費軟體,第一次運作的時候需要輸入序列号,你可以按GET SN按扭從VMware官方網站得到一個試用三個月的序列号。為了避免麻煩我先貼幾個在這裡:

VMWare 3.0 for Linux :

625AX-8DE40-46RA3-30HUM

60N88-8DW44-16H77-32KT4

6818X-84WD1-01KDK-3JN9X

FOR win V3.2.0-2230

0F11N-004U4-0U0HJ-12XDG

04590-00NU1-0UMKX-161AW

0DM1J-004H0-0KTA4-1614F

04HCM-085K0-0R8UM-1FH0U

0451J-0AJHJ-0KXKX-1412U

輸入序列号後會彈出虛拟機配置向導,這些内容不在本文叙述範圍内,而且這些比較容易掌握,是以這部分内容請讀者自己去摸索。

按VMware工具條上的“Power On”按鈕啟動虛拟機,按F2鍵進入BIOS設定,讓虛拟機從CD光牒啟動,儲存後重起虛拟機,這樣就可以從CD光牒啟動,安裝系統了。

(注意:在vmware的使用中筆者發現這樣一個問題:在主系統沒有安裝顯示卡3D驅動程式的情況下在虛拟機上安裝虛拟系統會很慢,而且經常失去響應,但是裝上了顯示卡的3D加速驅動後安裝明顯加快,是以在安裝虛拟系統的過程中如果發現類似問題,可以先把顯示卡3D驅動裝上再試。)

系統安裝好後别忘了安裝VM TOOLS,(VMware 工具欄——>Settings——>VMware Tools Install)這會顯著增加虛拟系統的性能。

三、虛拟機的網絡設定(原理篇)

在正式開始之前,我想有必要先來學習一些必要的網絡知識。否則,在不懂得任何原理的情況下依葫蘆畫瓢雖然可解一時之需要,但遇到具體情況改變的情況下就隻能幹瞪眼了。由于篇幅限制,這裡隻講和VMware設定有關的一點簡單網絡知識。

1,什麼是網絡?

Internet是指“互連網”,好象這句話說的有點多餘,不過确實有很多人對他有錯誤的了解,“互連網”是指一個個網絡互連,而不是像有些人想象的那樣把一台台電腦雜亂無章的互連。當我們需要用電腦和遠方的電腦通訊的時候,先把本地電腦組成一個網絡,當然,遠方的電腦也要組成一個網絡,在把這兩個網絡“互連”起來,組成“互連網”。用電話線和MODEM撥号上網的時候是通過電話線先把自己的電腦連到ISP(Internet Service Provider 網絡服務提供商)的網絡中,再經過ISP的網絡和世界各地的電腦通信。

2,電腦如何通過網絡傳遞資料?

每一個網絡需要一個網絡位址,網絡中的電腦需要一個在網絡中唯一确定的辨別,網絡号和電腦的辨別号組成了IP位址,是以IP位址是由網絡号和主機号組成的。當你的電腦要和其他的電腦通信的時候,電腦會先根據IP位址和子網路遮罩确定目标主機是在本地網絡中還是在遠端網絡中,如果在本地網絡中則直接把一個包含資訊的IP資料包發送到本地網絡上,目标主機會檢測到并接收,如果目标主機在遠端網絡則需要通過一台被稱為網關的的電腦轉發到遠端網絡,網關(geteway)可以看做是連接配接網絡和網絡的橋梁,網關的概念很廣,這裡為了簡化起見,我們暫且認為它和路由器是同一個概念。路由器(router)是一種連接配接網絡和網絡,并選擇IP資料包傳送的路徑的一台特殊計算機。很多情況下網關的概念等同于路由器。

3,網絡中電腦的IP位址有何要求?

在同一個網絡中,每台電腦必須具有相同的網絡号,這樣電腦才認為目标主機是在本網絡中并且可以正确送達,如果網絡号不同,即使目标主機已經用網線連到本網絡中資料也不能直接送達,即使這兩台電腦近在咫尺,在電腦看來仍舊是一台遠端電腦.比如一個網絡的網絡号為192.168.0,則該網絡中的計算機的IP位址必須以192.168.0開頭。假如要傳送一個資料包到網絡号為192.168.1的網絡,則必須通過路由器轉發,如果該網絡中沒有路由器,則發送失敗。是以,為了連接配接兩個網絡,一台路又器至少要有兩個網絡接口(網卡、數據機等聯網裝置稱為網絡接口)。網絡和路由器的關系見下圖:

---------------           --------------          --------------

|  網絡A      |           |  路由器    |          |  網絡B     |

|             |           |            |          |            |

|         □--|-----------|--□    □--|----------|--□        |

|         1   |           |  2     3   |          |  4         |

圖 一

圖中的小方框表示網卡或其他網絡接口。

可以看到路由器至少有兩個網絡接口。

假設網絡A的位址為192.168.0 網卡1的位址為192.168.0.1

網絡B的位址為192.168.1 網卡4的位址為192.168.1.1

則路由器上的網卡2必須屬于網絡 192.168.0 位址為192.168.0.x (x為任意小于255的數)

路由器上的網卡3必須屬于網絡 192.168.1 位址為192.168.1.x (x為任意小于255的數)

就是說,路由器既屬于網絡A,又屬于網絡B,這樣才起到橋梁的作用。

當資料從網絡A發往網絡B時,路由器從網卡2接收資料,經過改裝後通過網卡3發送資料到網絡B。

這樣,我們稱網卡2的位址 192.168.0.x為網絡A的網關

網卡3的位址 192.168.1.x為網絡B的網關

4,VMware虛拟機提供了那些虛拟網絡裝置?

預設安裝的情況下VMware提供了虛拟網卡vmnet1和vmnet8,還有在虛拟系統上的虛拟網卡 "AMD  PCNET Family PCI Ethernet Adapter"

請注意,vmnet1和vmnet8是主系統上虛拟裝置,用ifconfig指令可以看到,而"AMD  PCNET Family PCI Ethernet Adapter"是虛拟系統上的虛拟裝置,在安裝完虛拟系統後可以在裝置管理器中看到,前兩個隸屬于真實系統,是你的真實電腦中的裝置,後一個隸屬于虛拟系統,是虛拟電腦中的裝置,不要搞混淆。

----------------           -------------------------      --------------        

|   虛拟系統   |           |  主系統(路由器)       |      | 真實網絡   |

|              |           |                       |      |            |       

|          □--|-----------|--□     □<--->□-----|------|--□        |

|AMD PCNET卡   |           |vmnet1 vmnet8 真實網卡 |      |  4         |  

----------------           -------------------------      --------------   

圖 二

讓我們來和上面的網絡和路由器的關系做一個比對。

可以看到要想虛拟系統和主系統通信必須使AMD PCNET 網卡和vmnet1組成一個網絡。

而vmnet1本來就在主系統中,系統可以直接通路,是以主系統又充當了路由器的功能,隻要有這兩個虛拟裝置主系統和虛拟系統就可以通訊。

關鍵在于三點:

1.确定網卡AMD PCNET和vmnet1的網絡号相同。

2.在虛拟系統裡設定網絡屬性,把網關位址設為vmnet1的位址。

3.開啟主系統的路由功能,使它成為一台路由器。

事實上,如果你隻需要虛拟系統和主系統通信,而不需要和主系統所在的真實網絡上的其他主機通信的話隻要滿足第一點就可以了。因為滿足第一點,主系統和虛拟系統就在同一網絡中了,不需要路由器便可通信。但是大多數情況下我們需要虛拟系統和主系統所在的真實網絡通信,這就需要滿足其他兩點了。

四、虛拟機的網絡設定(實施篇)

1,  我們先來讓虛拟系統和主系統聯系上。

在VMware安裝的時候安裝程式會自動給vmnet1配置設定一個IP位址,下面是筆者電腦上例子:

在第二行可以看到安裝程式給vmnet1配置設定的IP位址為192.168.221.1(注意每次安裝VMware IP位址是随機配置設定的,實際的情況與這裡的例子會不同)。即虛拟網卡vmnet1屬于網絡192.168.221。是以,我們需要啟動虛拟系統,設定網絡屬性,把虛拟系統的網卡"AMD  PCNET Family PCI Ethernet Adapter"的IP位址設定為192.168.221.x (x為除1以外2~254之間的任意數字筆者把它設定為2),把網關設定為vmnet1的位址:192.168.221.1(如果不和外界真實網絡通信的話網關可以不設)

windows 2000和XP 設定後立即生效,win98需要重新啟動,linux需要重新啟動網絡服務:

#service network restart

在主系統上ping一下虛拟系統:

#ping -c 3 192.168.221.2

PING 192.168.221.2 (192.168.221.2) from 192.168.221.1 : 56(84) bytes of data.

64 bytes from 192.168.221.2: icmp_seq=1 ttl=128 time=6.91 ms

64 bytes from 192.168.221.2: icmp_seq=2 ttl=128 time=0.425 ms

64 bytes from 192.168.221.2: icmp_seq=3 ttl=128 time=0.527 ms

--- 192.168.221.2 ping statistics ---

3 packets transmitted, 3 received, 0% loss, time 2001ms

rtt min/avg/max/mdev = 0.425/2.623/6.917/3.036 ms

yeah!通了!

再在虛拟系統上ping主系統:

C:\>ping 192.168.221.1

Pinging 192.168.221.1 with 32 bytes of data:

Reply from 192.168.221.1: bytes=32 time<10ms TTL=64

Ping statistics for 192.168.221.1:

Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),

Approximate round trip times in milli-seconds:

Minimum = 0ms, Maximum =  0ms, Average =  0ms

yeah!又通了!主系統和虛拟系統順利聯系上啦!

2, 讓虛拟系統和主系統所在的真實網絡通信

首先在你的電腦上需要有一塊與真實網絡相連真實的網卡(如圖二所示)。vmnet8就在與真實網絡通訊的時候起作用了,vmnet8會和真實網卡對應起來,虛拟系統要發送資料包到真實網絡中的時候,真實系統是一台路由器,首先資料發到虛拟網卡vmnet1,然後經過路由器(這裡就是主系統linux)發到vmnet8,由于vmnet8和真實網卡是對應起來的,這一機制是有vmware完成的,是以發到vmnet8上的網卡就等于傳送到了真實網卡上,然後資料包再通過真實網卡發送到真實網絡,整個過程請看圖二。如果你的系統上有兩塊以上的真實網卡,在安裝的時候安裝程式會詢問把虛拟網卡對應到哪個真實網卡上。可以根據實際情況選擇。

把vmnet8的IP位址設定為和真實網卡在同一網絡的位址,假設真實網絡的網絡号為192.168.0,真實網卡的IP位址為192.168.0.1則可設定vmnet8的IP位址為192.168.0.2

在linux中方法如下:

#ifconfig vmnet8 down

#ifconfig vmnet8 192.168.0.2 up

回顧一下上面講的三個條件:

--------------------------------------------------------------

前兩點我們已經在第一部分中做好了,現在隻要開啟了linux的路由功能虛拟系統就可以和外界通訊了。

linux是一個天生的網絡作業系統,他在網絡方面的強大功能使得它在網絡伺服器領域有廣泛的應用。用linux來做路由器甚至不需要額外的軟體,linux的核心直接支援靜态路由的功能。我們要做的隻是把路由功能打開就可以了。

可以先看看路由表:

#route

确定所有網卡的IP位址或網絡位址都在Destination一欄裡,如下圖:

-------------------------------------------------------------------------------

Kernel IP routing table

Destination     Gateway         Genmask         Flags Metric Ref    Use Iface

192.168.0.0     *               255.255.255.0   U     0      0        0 eth1

192.168.0.0     *               255.255.255.0   U     0      0        0 vmnet8

192.168.221.0   *               255.255.255.0   U     0      0        0 vmnet1

127.0.0.0       *               255.0.0.0       U     0      0        0 lo

default         [url]www.gucuiwen.co[/url] 0.0.0.0         UG    0      0        0 eth0

預設情況下啟動網絡裝置的時候系統會把該裝置的IP位址添加到路由表中,如果沒有的話可以重新啟動一下網絡服務:

再來開啟路由功能:

# echo 1 > /proc/sys/net/ipv4/ip_forward

至此,linux的路由功能已經打開,你的linux系統已經成了一台路由器,連接配接着虛拟的網絡和真實網絡。虛拟網絡和真實網絡間就可以通信了。出于安全考慮,如果有必要的話還需要用iptables指令來設定一下路由規則。 (責任編輯:zhaohb)本文出自 51CTO.COM技術部落格

繼續閱讀