如果出現主機無法ping通虛擬機的情況,請首先確認虛擬機防火墻已關閉。
一、NAT模式
特點:
1、如果主機可以上網,虛擬機可以上網
2、虛擬機之間不能ping通
3、虛擬機可以ping通主機(此時ping虛擬機的網關,即是ping主機)
4、主機不能ping通虛擬機
應用場景:
虛擬機只要求可以上網,無其它特殊要求,滿足最一般需求
配置方法:
連接方式 選擇 網絡地址轉換(NAT)
高級-控制芯片 選擇 PCnet-FAST III
高級-混雜模式 拒絕
高級-接入網線 √
(虛擬機ip自動獲取)
ip樣式:
ip 10.0.2.15
網關 10.0.2.2
注意此處的網關在不同虛擬機中可能是同一個值,但是這歸屬于不同的NAT Engine,因此實際上各個虛擬機用的不是同一個網關
原理:
虛擬機的請求傳遞給NAT Engine,由它來利用主機進行對外的網絡訪問,返回的數據包再由NAT Engine給虛擬機。
NAT是VirtualBox為新建虛擬機默認設置的網卡環境。VirtualBox虛擬出一個路由器,為虛擬機中的網卡分配參數:
IP地址10.0.2.15
子網掩碼255.255.255.0
廣播地址10.0.2.255
默認網關10.0.2.2
DNS服務器與主機中的相同
DHCP服務器10.0.2.2
其中10.0.2.2分配給主機,也就是用主機作網關,利用主機的網絡訪問inertnet。虛擬機通過10.0.2.2能訪問主機中搭建的網絡服務,但是主機不能訪問虛擬機中搭建的網絡服務(需要用端口轉接才能訪問)。同時,使用NAT網絡環境的各個虛擬機之間也不能相互訪問,因為它們的IP地址都是10.0.2.15!即使設置在NAT網絡環境中的網卡為手動指定地址!
圖1 ?NAT網絡環境
二、Bridged Adapter模式(橋接模式)
特點:
1、如果主機可以上網,虛擬機可以上網
2、虛擬機之間可以ping通
3、虛擬機可以ping通主機
4、主機可以ping通虛擬機
以上各點基于一個前提:主機可以上網
5、如果主機不可以上網,所有1-4特點均無
應用場景:
虛擬機要求可以上網,且虛擬機完全模擬一臺實體機
配置方法:
連接方式 選擇 橋接網卡
界面名稱 選擇 (如果你的筆記本有無線網卡和有線網卡,需要根據現在的上網方式對應選擇)
高級-控制芯片 選擇 PCnet-FAST III
高級-混雜模式 拒絕
高級-接入網線 √
(虛擬機ip自動獲取)
ip樣式:
ip 與本機ip在同一網段內
網關 與本機網關相同
原理:
通過主機網卡,架設一條橋,直接連入到網絡中。它使得虛擬機能被分配到一個網絡中獨立的IP,所有網絡功能完全和
在網絡中的真實機器一樣。
(虛擬機是通過主機所在網絡中的DHCP服務得到ip地址的,所以按理來說,兩者是完全獨立的,但事實卻是虛擬機是沒
有獨立硬件的,它還是要依靠主機的網卡,因此,主機要斷開網絡,虛擬機也就沒法拿到ip了,所以呵呵~~所有特點全
消失咯)
Bridged networking網絡環境中的虛擬網卡與主機中的網卡屬于同一個等級,就像真實存在的網卡接入了你主機所在的網絡中一樣。在這種網絡環境中虛擬網卡獲得的參數由主機所在的網絡環境分配,虛擬機與主機之間是否能夠通過網絡相互訪問也由主機所在的網絡環境決定,當然,同時設置了Bridged networking網絡環境的虛擬機之間網絡互訪也由主機所在的網絡環境決定。
圖2 ?Bridged網絡環境
三、Host-only Adapter模式
特點:
1、虛擬機不可以上網
2、虛擬機之間可以ping通
3、虛擬機可以ping通主機(注意虛擬機與主機通信是通過主機的名為VirtualBox Host-Only Network的網卡,因此ip
是該網卡ip 192.168.56.1,而不是你現在正在上網所用的ip)
4、主機可以ping通虛擬機
應用場景:
在主機無法上網的情況下(主機可以上網的情況下可以用host-only,也可以用橋接),需要搭建一個模擬局域網,所有機器可以互訪
配置方法:
連接方式 選擇 僅主機(Host-Only)適配器
界面名稱 選擇 VirtualBox Host-Only Ethernet Adapter
高級-控制芯片 選擇 PCnet-FAST III
高級-混雜模式 拒絕
高級-接入網線 √
(虛擬機ip自動獲取,也可以自己進行配置,網關配置為主機中虛擬網卡的地址【默認為192.168.56.1】,ip配置為與虛擬網卡地址同網段地址)
ip樣式:
ip 與本機VirtualBox Host-Only Network的網卡ip在同一網段內(默認192.168.56.*)
網關 本機VirtualBox Host-Only Network的網卡ip(默認192.168.56.1)
原理:
通過VirtualBox Host-Only Network網卡進行通信,虛擬機以此ip作為網關,因此模擬了一個本機與各個虛擬機的局域網,如名稱所指,
應該是無法上網的(但是有人說可以通過對VirtualBox Host-Only Network網卡進行橋接等操作使虛擬機可以上網,但如此就不如直接
采用橋接來的容易了,而且,呵呵,我沒試成功,有的人也說不可以,因為主機不提供路由服務,我也不好亂說到底行不行,你自己試吧~~)
Internal networking網絡環境為設置了Internal networking網路環境的各個虛擬網卡提供了一個與主機隔絕的虛擬局域網。在Internal networking中的網卡不能自動獲得任何參數,除非手動設置或者在Internal networking網絡環境中的另一臺虛擬機中架設DHCP服務器。在Internal networking中,各個設置為Internal networking網絡環境的虛擬機之間可以任意訪問(虛擬機防火墻允許條件下),但不能訪問主機的網絡服務甚至internet。
圖3 ?Internal網絡環境
四、Internal模式(內網模式)
特點:
1、虛擬機不可以上網
2、虛擬機之間可以ping通
3、虛擬機不能ping通主機
4、主機不能ping通虛擬機
應用場景:
讓各臺虛擬機處于隔離的局域網內,只讓它們相互通信,與外界(包括主機)隔絕
配置方法:
連接方式 選擇 內部網絡
界面名稱 選擇 intnet(可以重新命名,所有放在同一局域網內的虛擬機此名稱相同)
高級-控制芯片 選擇 PCnet-FAST III
高級-混雜模式 拒絕
高級-接入網線 √
(虛擬機ip:對于XP自動獲取ip即可,但對于linux,必須手動配置ip和子網掩碼,手動配置時需保證各個虛擬機ip在同一網段)
ip樣式:
ip 169.254.147.9
子網掩碼 255.255.0.0
默認網關 無
原理:
各個虛擬機利用VirtualBox內置的DHCP服務器得到ip,數據包傳遞不經過主機所在網絡,因此安全性高,防止外部抓包~
默認情況下Host-only networking網絡環境利用VirtualBox虛擬出的DHCP服務器,為在Host-only networking中的虛擬網卡分配參數:
IP地址192.168.56.101 --- 254
子網掩碼255.255.255.0
廣播地址192.168.56.255
默認網關 無
DNS服務器 無
DHCP服務器192.168.56.100
其中192.168.56.1分配給主機,主機能ping通各個Host-only networking下的虛擬機,但虛擬機不能ping通主機。在Host-only networking網絡環境中,主機網卡與各個Host-only networking虛擬網卡構成一個局域網,主機能訪問各個虛擬機(虛擬機防火墻允許條件下),各個虛擬機之間也能相互訪問,但各個虛擬機都不能訪問internet。
圖4 ?Host-only網絡環境
圖5 ?VirtualBox網絡環境綜合應用
五、NAT模式+端口映射
將虛擬機某端口映射到主機某端口,可以使主機和外部機器訪問虛擬機提供的服務哦~~
命令如下:
(在命令行模式下,先到VirtualBox的安裝目錄下面,否則找不到命令)
vboxmanage setextradata "VBoxInternal/Devices/pcnet/0/LUN#0/Config//Protocol" TCP
vboxmanage setextradata "VBoxInternal/Devices/pcnet/0/LUN#0/Config//GuestPort" 80
vboxmanage setextradata "VBoxInternal/Devices/pcnet/0/LUN#0/Config//HostPort" 8000
NAT網絡環境下主機訪問虛擬機端口轉接:
cd ?%VBOX_INSTALL_PATH%
將主機8080端口的tcp連接轉接到指定虛擬機的8000端口
VboxManagemodifyvm"VMname"—natpf1"linkName,tcp,,8080,,8000"
[參]:VirtualBox? User Manual Version 3.2.10 Edition
上面只是簡介
下面重點
1.打開virtualbox,選擇【設置】-【網絡】2個網卡
然后你可以在ubuntu 中輸入 ifconfig -a 查看是不是3個網卡配置
如果你ifconfig 可能橋接網卡是沒有啟動的看不到
enp0s3 08 lo 分別代表nat網絡 橋接網絡 本地 ?如果分不清就看mac地址 在visualbox中你可以看到的比對下就知道
一開始我這邊是0s8沒啟動config看不到無視就好 -a就可以看到了。
2.在ubuntu中,
運行sudo vim /etc/network/interfaces
修改如下:
auto enp0s8
iface enp0s8 inet static//static 靜態 dhcp動態 這里肯定改成靜態啦
address 192.168.1.2 ?//這個隨便個你喜歡的地址 但是要和你本機的ip一個網段
netmask 255.255.255.0 ?#此處改成您的掩碼 //看上圖一樣
gateway 192.168.1.1 #此處改成您的網關 //網關一樣
運行sudo vim /etc/resolv.conf //其實正常可以不動的看看你里面有沒有 我的默認有
修改如下:// 沒得情況下再改
nameserver 172.17.11.31 #域名服務器
3.運行/etc/init.d/networking restart 重啟 如果重啟失敗你重啟虛擬機也行!