轉載自http://linuxme.blog.51cto.com/1850814/389691
宿主機為linux、windows分別實現VMware三種方式上網
一、VMware三種方式工作原理
1 Host-only連接方式
讓虛機具有與宿主機不同的各自獨立IP地址,但與宿主機位于不同網段,同時為宿主主機新增一個IP地址,且保證該IP地址與各虛機IP地址位于同一網段。最終結果是新建了一個由所有虛機與宿主主機所構成的局域網,但該局域網與宿主主機本身所處的現有局域網是相互獨立的,如果不做額外路由設置,這兩個局域網之間不會連通,因此新建的局域網可以認為是一個單獨從屬于當前宿主主機的私有網絡,其成員為當前宿主主機和相關的所有虛機,這也是Host-only命名的由來。
從網絡技術上相當于為宿主主機增添了一個虛擬網卡,讓宿主主機變成一臺雙網卡主機(宿主網卡+虛擬網卡)。同時在宿主主機后端加設一個虛擬交換機,讓宿主主機和所有虛機構成另一個虛擬的局域網。由于具備雙網卡,宿主主機可同時參與兩個局域網(現有的宿主局域網+新建的虛擬局域網),只不過缺省情況下兩個局域網不連通。
2 Bridge(橋接)連接方式
讓虛機具有與宿主機不同的各自獨立IP地址,但與宿主機保持在同一網段,最終結果是所有虛機都加入宿主主機所在的局域網,這與在該局域網中添加入其他宿主主機在效果上沒什么區別。
從網絡技術上相當于在宿主主機前端加設了一個虛擬交換機,然后宿主主機和所有虛機共享這個交換機;或者干脆理解成在宿主主機上作點增強,使其兼具一個交換機(當然是虛擬的)功能,供該宿主主機和網段內其他虛機使用。
3 NAT連接方式
雖然從表面現象看,虛機無自己的IP地址,而是共享宿主主機的IP地址,但技術本質上卻是基于Host-only方式的(即,虛機還是有自己獨立IP地址的,只不過實際中不投入使用),與Host-only方式一樣,宿主主機成為雙網卡主機,同時參與現有的宿主局域網和新建的虛擬局域網,但由于加設了一個虛擬的NAT服務器,使得虛擬局域網內的虛機在對外訪問時,完全“冒用”宿主主機的IP地址,這樣從外部網絡來看,只能看到宿主主機,完全看不到新建的虛擬局域網。
了解原理后讓讓我們開始配置吧!
二、首先介紹宿主機是RedHat Enterprise Linux 5.X
安裝環境:
1、? 宿主機系統:RedHat Enterprise Linux 5.X
2、? 虛擬機系統:RedHat Enterprise Linux 5.X
3、? Vmware版本:vmware workstation 6.5
目的:實現虛擬機系統上網
方法一:host only方式
對宿主機系統的設置:
先來看看其網卡情況
[root@localhost ~]# ifconfig
eth0????? Link encap:Ethernet? HWaddr 00:26:22:08:60:18
inet addr:10.106.34.219? Bcast:10.106.34.255? Mask:255.255.255.0
inet6 addr: fe80::226:22ff:fe08:6018/64 Scope:Link
UP BROADCAST RUNNING MULTICAST? MTU:1500? Metric:1
RX packets:197 errors:0 dropped:0 overruns:0 frame:0
TX packets:54 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:17811 (17.3 KiB)? TX bytes:11066 (10.8 KiB)
Interrupt:177
lo??????? Link encap:Local Loopback
inet addr:127.0.0.1? Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING? MTU:16436? Metric:1
RX packets:33 errors:0 dropped:0 overruns:0 frame:0
TX packets:33 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:3266 (3.1 KiB)? TX bytes:3266 (3.1 KiB)
virbr0??? Link encap:Ethernet? HWaddr 00:00:00:00:00:00
inet addr:192.168.122.1? Bcast:192.168.122.255? Mask:255.255.255.0
inet6 addr: fe80::200:ff:fe00:0/64 Scope:Link
UP BROADCAST RUNNING MULTICAST? MTU:1500? Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:49 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:0 (0.0 b)? TX bytes:10600 (10.3 KiB)
vmnet1??? Link encap:Ethernet? HWaddr 00:50:56:C0:00:01
inet addr:172.16.73.1? Bcast:172.16.73.255? Mask:255.255.255.0
inet6 addr: fe80::250:56ff:fec0:1/64 Scope:Link
UP BROADCAST RUNNING MULTICAST? MTU:1500? Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:52 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
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:192.168.135.1? Bcast:192.168.135.255? Mask:255.255.255.0
inet6 addr: fe80::250:56ff:fec0:8/64 Scope:Link
UP BROADCAST RUNNING MULTICAST? MTU:1500? Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:48 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:0 (0.0 b)? TX bytes:0 (0.0 b)
注意:其 中VMnet1是虛擬機Host-only模式的網絡接口,VMnet8是NAT模式的網絡接口,virbr0是Bridged模式網絡接口
為了避免影響關閉virbr0,vmnet8
ifconfig virbr0 down
ifconfig vmnet8 down
我們都知道host only方式,使用的是vmnet1這個網卡,下面我們就來對其配
為了方便我把vmnet1網卡設置成臨時ip(即設置后立即生效)
ifconfig vmnet1 192.168.1.1/24
查看配置
[root@localhost ~]# ifconfig
eth0????? Link encap:Ethernet? HWaddr 00:26:22:08:60:18
inet addr:10.106.34.219? Bcast:10.106.34.255? Mask:255.255.255.0
inet6 addr: 2001:da8:5000:881a:226:22ff:fe08:6018/64 Scope:Global
inet6 addr: fe80::226:22ff:fe08:6018/64 Scope:Link
UP BROADCAST RUNNING MULTICAST? MTU:1500? Metric:1
RX packets:3984 errors:0 dropped:0 overruns:0 frame:0
TX packets:2633 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:1884087 (1.7 MiB)? TX bytes:580140 (566.5 KiB)
Interrupt:177
lo??????? Link encap:Local Loopback
inet addr:127.0.0.1? Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING? MTU:16436? Metric:1
RX packets:33 errors:0 dropped:0 overruns:0 frame:0
TX packets:33 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:3266 (3.1 KiB)? TX bytes:3266 (3.1 KiB)
vmnet1??? Link encap:Ethernet? HWaddr 00:50:56:C0:00:01
inet addr:192.168.1.1Bcast:192.168.1.255? Mask:255.255.255.0
inet6 addr: fe80::250:56ff:fec0:1/64 Scope:Link
UP BROADCAST RUNNING MULTICAST? MTU:1500? Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:64 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:0 (0.0 b)? TX bytes:0 (0.0 b)
查看DNS
vim /etc/resolv.conf
nameserver 202.196.64.1
對虛擬機系統進行設置
cd /etc/sysconfig/network-scripts/
vim ifcfg-eth0
DEVICE=eth0
BOOTPROTO=none
ONBOOT=yes
HWADDR=00:0c:29:f1:3d:d7
NETMASK=255.255.255.0
IPADDR=192.168.1.11
GATEWAY=192.168.1.1
TYPE=Ethernet
保存退出
cd /etc/
vim resolv.conf
#加一條DNS服務器
nameserver 202.196.64.1
保存退出
這里需要注意三點:
1.網關:是vmnet1的ip地址
2.宿主機與虛擬機DNS相同
3.宿主機的網卡eth0與vmnet1不要在同一個網段
上述設置后,你會發現還不能上網
原因是因為發送數據包,源ip 是 192.168.1.11數據包能發出去但回不來。我們需要在宿主機上做一下源地址轉換即SNAT
在宿主機上配置防火墻:
如果是第一次配置iptables,啟動防火墻
service iptables start
iptables -F
添加規則:
iptables -t nat -A POSTROUTING -s 192.168.1.11 -j MASQUERADE
MASQUERADE的意思是進行地址偽裝,偽裝成宿主機連外網網卡的ip,這條語句也可寫成
iptables -t nat -A POSTROUTING -s 192.168.1.11 -j SNAT --to 10.106.34.219
保存規則:
iptables-save > myfirewall.back
下次恢復:
iptables-restore < myfirewall.back
好了這時你在虛擬機里上網了
方法二.NAT或Bridged方式
在以linux為宿主機的情況下,以NAT或Bridged方式實現上網,與host only 的配置差不多
區別是NAT方式用的網卡是vmnet8 , Bridged方式用的網卡是virbr0
三、宿主機window7
.安裝環境:
1、? 宿主機系統:window7
2、? 虛擬機系統:RedHat Enterprise Linux 5.X
3、? Vmware版本:vmware workstation 6.5
目的:實現虛擬機系統上網
方法一:host only方式
宿主機的配置
如下圖第一個網卡是物理網卡,第二個是vmnet1,第三個是vmnet8,
查看物理網卡的設置
啟用vmnet1
對物理網卡點右鍵-> 屬性
選擇共享
勾上兩個復選框
點擊確定出現如下圖,點擊是
查看vmnet1的網卡配置(這里ip自動變為192.168.137.1)
對虛擬機的配置
配置虛擬機(linux)系統的網卡(在命令行輸入setup)
選擇網絡配置
如下圖eth0網卡的配置(注意網關與vmnet1的ip相同)
編輯一下dns
注意DNS與宿主機的DNS相同
保存退出重啟網絡服務
ping一下百度
好了現在能上網了?。。?/p>
方法二:NAT方式
其實NAT的方式實現上網,與host only方式實現方式基本一樣,這里我簡要介紹一下
對宿主機的配置
禁用vmnet1并刪除其ip,啟用vmnet8后續操作與vmnet1的相同,vmnet8的ip自動變成192.168.137.1
對虛擬機系統的配置
網卡類型改為NAT,其余的配置不變
好了以NAT方式也可以上網了
方法三:bridged方式
bridged方式更簡單,禁用vmnet1和vmnet8,只要物理網卡與bridged(虛擬機)網卡在同一個網段且兩個ip都可上網即可,在這里就不在重復介紹了?。?!