VMware虛擬機的網絡設置

在不少狀況下,電腦愛好者須要有一個網絡環境來學習網絡服務器的安裝和設置,黑客攻防技術等,可是每每大部分的業餘電腦愛好者都沒有這樣的條件.虛擬機軟件VMware的出現使得咱們能夠以很是低廉的價格來得到一個很是高效實用的網絡實驗平臺.然而,VMware虛擬機的網絡設置一直是不少初學者感到困惑的地方,經常在各大電腦論壇上看到有人尋求有關VMware網絡設置解決方案的貼子,雖然互連網上也有不少這方面的文章,但每每說的不夠完整,或者寫的過於專業,使初學者看後還是一頭雲霧.針對這個狀況,筆者在學習閱讀網絡上的各種文章和VMware軟件的文檔後,結合本身的經驗整理出這些內容,力圖比較詳悉又簡明易懂的表述來講明VMware虛擬機網絡的設置過程.
下面我想以Linux平臺的VMware虛擬機的安裝和網絡的設置爲例來講明VMware的安裝和網絡設置過程。
1、VMware的安裝
1,得到VMware
在Internet上能夠下載到VMware Workstation的試用版本,不少Linux站點均可如下載
推薦兩個有VMware下載的網站: 
http://www.linuxeden.com
http://www.linuxfans.org
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窗口管理器就能夠省下不少內存,而且在虛擬機中跑WIN9八、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! 之類的提示。說明已經安裝成功。
2、運行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
UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:100 
RX bytes:0 (0.0 b)  TX bytes:0 (0.0 b)
能夠看到VMware的虛擬網絡設備vmnet1 和vmnet8
若是用ifconfig命令沒有看到這兩個虛擬設備則說明VMware的後臺服務程序沒有運行,執行vmware的時候將出錯,請用上面講的命令運行。
VMware不是免費軟件,第一次運行的時候須要輸入序列號,你能夠按GET SN按扭從VMware官方網站獲得一個試用三個月的序列號。爲了不麻煩我先貼幾個在這裏:
VMWare 3.0 for Linux :
625AX-8DE40-46RA3-30HUM 
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設置,讓虛擬機從光盤啓動,保存後重起虛擬機,這樣就能夠從光盤啓動,安裝系統了。
(注意:在vmware的使用中筆者發現這樣一個問題:在主系統沒有安裝顯卡3D驅動程序的狀況下在虛擬機上安裝虛擬系統會很慢,並且常常失去響應,可是裝上了顯卡的3D加速驅動後安裝明顯加快,因此在安裝虛擬系統的過程當中若是發現相似問題,能夠先把顯卡3D驅動裝上再試。)
系統安裝好後別忘了安裝VM TOOLS,(VMware 工具欄——>Settings——>VMware Tools Install)這會顯著增長虛擬系統的性能。
3、虛擬機的網絡設置(原理篇)
在正式開始以前,我想有必要先來學習一些必要的網絡知識。不然,在不懂得任何原理的狀況下依葫蘆畫瓢雖然可解一時之須要,但遇到具體狀況改變的狀況下就只能乾瞪眼了。因爲篇幅限制,這裏只講和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"是虛擬系統上的虛擬設備,在安裝完虛擬系統後能夠在設備管理器中看到,前兩個隸屬於真實系統,是你的真實電腦中的設備,後一個隸屬於虛擬系統,是虛擬電腦中的設備,不要搞混淆。
---------------           --------------          --------------
|  網絡A      |           |  路由器    |          |  網絡B     |
|             |           |            |          |            |
|         □--|-----------|--□    □--|----------|--□        |
|         1   |           |  2     3   |          |  4         |
---------------           --------------          --------------
----------------           -------------------------      --------------         
|   虛擬系統   |           |  主系統(路由器)       |      | 真實網絡   |
|              |           |                       |      |            |        
|          □--|-----------|--□     □<--->□-----|------|--□        |
|AMD PCNET卡   |           |vmnet1 vmnet8 真實網卡 |      |  4         |   
----------------           -------------------------      --------------   
圖 二
讓咱們來和上面的網絡和路由器的關係作一個比對。
能夠看到要想虛擬系統和主系統通訊必須使AMD PCNET 網卡和vmnet1組成一個網絡。
而vmnet1原本就在主系統中,系統能夠直接訪問,因此主系統又充當了路由器的功能,只要有這兩個虛擬設備主系統和虛擬系統就能夠通信。
關鍵在於三點:
1.肯定網卡AMD PCNET和vmnet1的網絡號相同。
2.在虛擬系統裏設置網絡屬性,把網關地址設爲vmnet1的地址。
3.開啓主系統的路由功能,使它成爲一臺路由器。
事實上,若是你只須要虛擬系統和主系統通訊,而不須要和主系統所在的真實網絡上的其餘主機通訊的話只要知足第一點就能夠了。由於知足第一點,主系統和虛擬系統就在同一網絡中了,不須要路由器即可通訊。可是大多數狀況下咱們須要虛擬系統和主系統所在的真實網絡通訊,這就須要知足其餘兩點了。
4、虛擬機的網絡設置(實施篇)
1,  咱們先來讓虛擬系統和主系統聯繫上。
在VMware安裝的時候安裝程序會自動給vmnet1分配一個IP地址,下面是筆者電腦上例子:
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)
在第二行能夠看到安裝程序給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
Reply from 192.168.221.1: bytes=32 time<10ms TTL=64
Reply from 192.168.221.1: bytes=32 time<10ms TTL=64
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
回顧一下上面講的三個條件:
--------------------------------------------------------------
關鍵在於三點:
1.肯定網卡AMD PCNET和vmnet1的網絡號相同。
2.在虛擬系統裏設置網絡屬性,把網關地址設爲vmnet1的地址。
3.開啓主系統的路由功能,使它成爲一臺路由器。
--------------------------------------------------------------
前兩點咱們已經在第一部分中作好了,如今只要開啓了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 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         www.gucuiwen.co 0.0.0.0         UG    0      0        0 eth0
-------------------------------------------------------------------------------
默認狀況下啓動網絡設備的時候系統會把該設備的IP地址添加到路由表中,若是沒有的話能夠從新啓動一下網絡服務:
#service network restart
再來開啓路由功能:
# echo 1 > /proc/sys/net/ipv4/ip_forward
至此,linux的路由功能已經打開,你的linux系統已經成了一臺路由器,鏈接着虛擬的網絡和真實網絡。虛擬網絡和真實網絡間就能夠通訊了。出於安全考慮,若是有必要的話還須要用iptables命令來設置一下路由規則。 (責任編輯:zhaohb)
相關文章
相關標籤/搜索