VirtualBox虚拟机网络环境解析和搭建-NAT、桥接、Host-Only、Internal、端口映射
本文以VirtualBox為例
如果出現(xiàn)主機(jī)無(wú)法ping通虛擬機(jī)的情況,請(qǐng)首先確認(rèn)虛擬機(jī)防火墻已關(guān)閉。
一、NAT模式
特點(diǎn):
1、如果主機(jī)可以上網(wǎng),虛擬機(jī)可以上網(wǎng)
2、虛擬機(jī)之間不能ping通
3、虛擬機(jī)可以ping通主機(jī)(此時(shí)ping虛擬機(jī)的網(wǎng)關(guān),即是ping主機(jī))
4、主機(jī)不能ping通虛擬機(jī)
應(yīng)用場(chǎng)景:
虛擬機(jī)只要求可以上網(wǎng),無(wú)其它特殊要求,滿足最一般需求
配置方法:
連接方式 選擇 網(wǎng)絡(luò)地址轉(zhuǎn)換(NAT)
高級(jí)-控制芯片 選擇 PCnet-FAST III
高級(jí)-混雜模式 拒絕
高級(jí)-接入網(wǎng)線 √
(虛擬機(jī)ip自動(dòng)獲取)
ip樣式:
ip 10.0.2.15
網(wǎng)關(guān) 10.0.2.2
注意此處的網(wǎng)關(guān)在不同虛擬機(jī)中可能是同一個(gè)值,但是這歸屬于不同的NAT Engine,因此實(shí)際上各個(gè)虛擬機(jī)用的不是同一個(gè)網(wǎng)關(guān)
原理:
虛擬機(jī)的請(qǐng)求傳遞給NAT Engine,由它來(lái)利用主機(jī)進(jìn)行對(duì)外的網(wǎng)絡(luò)訪問,返回的數(shù)據(jù)包再由NAT Engine給虛擬機(jī)。
二、Bridged Adapter模式(橋接模式)
特點(diǎn):
1、如果主機(jī)可以上網(wǎng),虛擬機(jī)可以上網(wǎng)
2、虛擬機(jī)之間可以ping通
3、虛擬機(jī)可以ping通主機(jī)
4、主機(jī)可以ping通虛擬機(jī)
以上各點(diǎn)基于一個(gè)前提:主機(jī)可以上網(wǎng)
5、如果主機(jī)不可以上網(wǎng),所有1-4特點(diǎn)均無(wú)
應(yīng)用場(chǎng)景:
虛擬機(jī)要求可以上網(wǎng),且虛擬機(jī)完全模擬一臺(tái)實(shí)體機(jī)
配置方法:
連接方式 選擇 橋接網(wǎng)卡
界面名稱 選擇 (如果你的筆記本有無(wú)線網(wǎng)卡和有線網(wǎng)卡,需要根據(jù)現(xiàn)在的上網(wǎng)方式對(duì)應(yīng)選擇)
?注意: 如果是筆記本pc的話,界面名稱選擇無(wú)線網(wǎng)卡,才可以正常上網(wǎng)
高級(jí)-控制芯片 選擇 PCnet-FAST III
高級(jí)-混雜模式 拒絕
高級(jí)-接入網(wǎng)線 √
(虛擬機(jī)ip自動(dòng)獲取)
ip樣式:
ip 與本機(jī)ip在同一網(wǎng)段內(nèi)
網(wǎng)關(guān) 與本機(jī)網(wǎng)關(guān)相同
原理:
通過(guò)主機(jī)網(wǎng)卡,架設(shè)一條橋,直接連入到網(wǎng)絡(luò)中。它使得虛擬機(jī)能被分配到一個(gè)網(wǎng)絡(luò)中獨(dú)立的IP,所有網(wǎng)絡(luò)功能完全和
在網(wǎng)絡(luò)中的真實(shí)機(jī)器一樣。?
(虛擬機(jī)是通過(guò)主機(jī)所在網(wǎng)絡(luò)中的DHCP服務(wù)得到ip地址的,所以按理來(lái)說(shuō),兩者是完全獨(dú)立的,但事實(shí)卻是虛擬機(jī)是沒
有獨(dú)立硬件的,它還是要依靠主機(jī)的網(wǎng)卡,因此,主機(jī)要斷開網(wǎng)絡(luò),虛擬機(jī)也就沒法拿到ip了,所以呵呵~~所有特點(diǎn)全
消失咯)
三、Host-only Adapter模式
特點(diǎn):
1、虛擬機(jī)不可以上網(wǎng)
2、虛擬機(jī)之間可以ping通
3、虛擬機(jī)可以ping通主機(jī)(注意虛擬機(jī)與主機(jī)通信是通過(guò)主機(jī)的名為VirtualBox Host-Only Network的網(wǎng)卡,因此ip
是該網(wǎng)卡ip 192.168.56.1,而不是你現(xiàn)在正在上網(wǎng)所用的ip)
4、主機(jī)可以ping通虛擬機(jī)
應(yīng)用場(chǎng)景:
在主機(jī)無(wú)法上網(wǎng)的情況下(主機(jī)可以上網(wǎng)的情況下可以用host-only,也可以用橋接),需要搭建一個(gè)模擬局域網(wǎng),所有機(jī)器可以互訪
配置方法:
連接方式 選擇 僅主機(jī)(Host-Only)適配器
界面名稱 選擇 VirtualBox Host-Only Ethernet Adapter
高級(jí)-控制芯片 選擇 PCnet-FAST III
高級(jí)-混雜模式 拒絕
高級(jí)-接入網(wǎng)線 √
(虛擬機(jī)ip自動(dòng)獲取,也可以自己進(jìn)行配置,網(wǎng)關(guān)配置為主機(jī)中虛擬網(wǎng)卡的地址【默認(rèn)為192.168.56.1】,ip配置為與虛擬網(wǎng)卡地址同網(wǎng)段地址)
ip樣式:
ip 與本機(jī)VirtualBox Host-Only Network的網(wǎng)卡ip在同一網(wǎng)段內(nèi)(默認(rèn)192.168.56.*)
網(wǎng)關(guān)?本機(jī)VirtualBox Host-Only Network的網(wǎng)卡ip(默認(rèn)192.168.56.1)
原理:
通過(guò)VirtualBox Host-Only Network網(wǎng)卡進(jìn)行通信,虛擬機(jī)以此ip作為網(wǎng)關(guān),因此模擬了一個(gè)本機(jī)與各個(gè)虛擬機(jī)的局域網(wǎng),如名稱所指,
應(yīng)該是無(wú)法上網(wǎng)的(但是有人說(shuō)可以通過(guò)對(duì)VirtualBox Host-Only Network網(wǎng)卡進(jìn)行橋接等操作使虛擬機(jī)可以上網(wǎng),但如此就不如直接
采用橋接來(lái)的容易了,而且,呵呵,我沒試成功,有的人也說(shuō)不可以,因?yàn)橹鳈C(jī)不提供路由服務(wù),我也不好亂說(shuō)到底行不行,你自己試吧~~)
四、Internal模式(內(nèi)網(wǎng)模式)
特點(diǎn):
1、虛擬機(jī)不可以上網(wǎng)
2、虛擬機(jī)之間可以ping通
3、虛擬機(jī)不能ping通主機(jī)
4、主機(jī)不能ping通虛擬機(jī)
應(yīng)用場(chǎng)景:
讓各臺(tái)虛擬機(jī)處于隔離的局域網(wǎng)內(nèi),只讓它們相互通信,與外界(包括主機(jī))隔絕
配置方法:
連接方式 選擇 內(nèi)部網(wǎng)絡(luò)
界面名稱 選擇 intnet(可以重新命名,所有放在同一局域網(wǎng)內(nèi)的虛擬機(jī)此名稱相同)
高級(jí)-控制芯片 選擇 PCnet-FAST III
高級(jí)-混雜模式 拒絕
高級(jí)-接入網(wǎng)線 √
(虛擬機(jī)ip:對(duì)于XP自動(dòng)獲取ip即可,但對(duì)于linux,必須手動(dòng)配置ip和子網(wǎng)掩碼,手動(dòng)配置時(shí)需保證各個(gè)虛擬機(jī)ip在同一網(wǎng)段)
ip樣式:
ip?169.254.147.9
子網(wǎng)掩碼 255.255.0.0
默認(rèn)網(wǎng)關(guān) 無(wú)
原理:
各個(gè)虛擬機(jī)利用VirtualBox內(nèi)置的DHCP服務(wù)器得到ip,數(shù)據(jù)包傳遞不經(jīng)過(guò)主機(jī)所在網(wǎng)絡(luò),因此安全性高,防止外部抓包~
五、NAT模式+端口映射
將虛擬機(jī)某端口映射到主機(jī)某端口,可以使主機(jī)和外部機(jī)器訪問虛擬機(jī)提供的服務(wù)哦~~
命令如下:
(在命令行模式下,先到VirtualBox的安裝目錄下面,否則找不到命令)
vboxmanage setextradata <VM name> "VBoxInternal/Devices/pcnet/0/LUN#0/Config/<rule name>/Protocol" TCP
vboxmanage setextradata <VM name> "VBoxInternal/Devices/pcnet/0/LUN#0/Config/<rule name>/GuestPort" 80
vboxmanage setextradata <VM name> "VBoxInternal/Devices/pcnet/0/LUN#0/Config/<rule name>/HostPort" 8000
總結(jié)
以上是生活随笔為你收集整理的VirtualBox虚拟机网络环境解析和搭建-NAT、桥接、Host-Only、Internal、端口映射的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: c++中使用 hiredis/hir
- 下一篇: configure: error: no