VirtualBox虛拟機網絡連接配接設定的四種方式
VirtualBox
是一款
SUN
出品的非常優秀的虛拟機程式,版本也非常齊全,你可以在官網上找到适合各種作業系統平台的版本。
這裡我先給大家大緻講解下
VBox
的網絡配置及應用。
VirtualBox
的提供了四種網絡Access模式,它們分别是:
1
、
NAT
網絡位址轉換模式
(NAT,Network Address Translation)
2
、
Bridged Adapter
橋接模式
3
、
Internal
内部網絡模式
4
、
Host-only Adapter
主機模式
下面我們分别對這四種網絡模式進行分析解釋:
第一種 NAT模式
解釋:
NAT
模式是最簡單的實作虛拟機上網的方式,你可以這樣了解:
Vhost
通路網絡的所有資料都是由主機提供的,
vhost
并不真實存在于網絡中,主機與網絡中的任何機器都不能檢視和通路到
Vhost
的存在。
虛拟機與主機關系:
隻能單向通路,虛拟機可以通過網絡通路到主機,主機無法通過網絡通路到虛拟機。
虛拟機與網絡中其他主機的關系:
隻能單向通路,虛拟機可以通路到網絡中其他主機,其他主機不能通過網絡通路到虛拟機。
虛拟機與虛拟機之間的關系:
互相不能通路,虛拟機與虛拟機各自完全獨立,互相間無法通過網絡通路彼此。
IP:10.0.2.15
網關:
10.0.2.2
DNS
:
10.0.2.3
一台虛拟機的多個網卡可以被設定使用
NAT
,
第一個網卡連接配接了到專用網
10.0.2.0
,第二個網卡連接配接到專用網絡
10.0.3.0
,等等。預設得到的用戶端
ip
(
IP Address
)是
10.0.2.15
,網關(
Gateway
)是
10.0.2.2
,域名伺服器(
DNS
)是
10.0.2.3
,可以手動參考這個進行修改。
NAT
方案優缺點:
筆記本已插網線時:
虛拟機可以通路主機,虛拟機可以通路網際網路,在做了端口映射後(最後有說明),主機可以通路虛拟機上的服務(如資料庫)。
筆記本沒插網線時:
主機的
“
本地連接配接
”
有紅叉的,虛拟機可以通路主機,虛拟機不可以通路網際網路,在做了端口映射後,主機可以通路虛拟機上的服務(如資料庫)。
第二種 Bridged Adapter模式
解釋:
網橋模式是我最喜歡的用的一種模式,同時,模拟度也是相當完美。你可以這樣了解,它是通過主機網卡,架設了一條橋,直接連入到網絡中了。是以,它使得虛拟機能被配置設定到一個網絡中獨立的
IP
,所有網絡功能完全和在網絡中的真實機器一樣。
虛拟機與主機關系:
可以互相通路,因為虛拟機在真實網絡段中有獨立
IP
,主機與虛拟機處于同一網絡段中,彼此可以通過各自
IP
互相通路。
虛拟機于網絡中其他主機關系:
可以互相通路,同樣因為虛拟機在真實網絡段中有獨立
IP
,虛拟機與所有網絡其他主機處于同一網絡段中,彼此可以通過各自
IP
互相通路。
虛拟機于虛拟機關系:
可以互相通路,原因同上。
IP
:一般是
DHCP
配置設定的,與主機的
“
本地連接配接
”
的
IP
是同一網段的。虛拟機就能與主機互相通信。
筆記本已插網線時:(若網絡中有
DHCP
伺服器)主機與虛拟機會通過
DHCP
分别得到一個
IP
,這兩個
IP
在同一網段。
主機與虛拟機可以
ping
通,虛拟機可以上網際網路。
筆記本沒插網線時:主機與虛拟機不能通信。主機的
“
本地連接配接
”
有紅叉,就不能手工指定
IP
。虛拟機也不能通過
DHCP
得到
IP
位址,手工指定
IP
後,也無法與主機通信,因為主機無
IP
。
這時主機的
VirtualBox Host-Only Network
網卡是有
ip
的,
192.168.56.1
。虛拟機就算手工指定了
IP 192.168.56.*
,也
ping
不能主機。
第三種 Internal模式
解釋:
内網模式,顧名思義就是内部網絡模式,虛拟機與外網完全斷開,隻實作虛拟機于虛拟機之間的内部網絡模式。
虛拟機與主機關系:
不能互相通路,彼此不屬于同一個網絡,無法互相通路。
虛拟機與網絡中其他主機關系:
不能互相通路,理由同上。
虛拟機與虛拟機關系:
可以互相通路,前提是在設定網絡時,兩台虛拟機設定同一網絡名稱。如上配置圖中,名稱為
intnet
。
IP: VirtualBox
的
DHCP
伺服器會為它配置設定
IP
,一般得到的是
192.168.56.101
,因為是從
101
起分的,也可手工指定
192.168.56.*
。
筆記本已插網線時:虛拟機可以與主機的
VirtualBox Host-Only Network
網卡通信
這種方案不受主機本地連接配接(網卡)是否有紅叉的影響。
第四種 Host-only Adapter模式
解釋:
主機模式,這是一種比較複雜的模式,需要有比較紮實的網絡基礎知識才能玩轉。可以說前面幾種模式所實作的功能,在這種模式下,通過虛拟機及網卡的設定都可以被實作。
我們可以了解為
Vbox
在主機中模拟出一張專供虛拟機使用的網卡,所有虛拟機都是連接配接到該網卡上的,我們可以通過設定這張網卡來實作上網及其他很多功能,比如(網卡共享、網卡橋接等)。
虛拟機與主機關系
預設不能互相通路,雙方不屬于同一
IP
段,
host-only
網卡預設
IP
段為
192.168.56.X
子網路遮罩為
255.255.255.0
,後面的虛拟機被配置設定到的也都是這個網段。通過網卡共享、網卡橋接等,可以實作虛拟機于主機互相通路。
虛拟機與網絡主機關系
預設不能互相通路,原因同上,通過設定,可以實作互相通路。
虛拟機與虛拟機關系
預設可以互相通路,都是同處于一個網段。
虛拟機通路主機
用的是主機的
VirtualBox Host-Only Network
網卡的
IP
:
192.168.56.1
,不管主機
“
本地連接配接
”
有無紅叉,永遠通。
主機通路虛拟機,用是的虛拟機的網卡
3
的
IP
:
192.168.56.101
,不管主機
“
本地連接配接
”
有無紅叉,永遠通。
虛拟機通路網際網路,用的是自己的網卡
2
,
這時主機要能通過
“
本地連接配接
”
有線上網,(無線網卡不行)
通過對以上幾種網絡模式的了解,我們就可以靈活運用,模拟組建出我們所想要的任何一種網絡環境了。
比如我想模拟出來一個一台主機,監控一個區域網路上網情況的網絡環境。
首先我開啟了兩台虛拟機
vhost1
與
vhost2
,當然如果硬體允許,我同樣可以再增加
vhost3
、
vhost4…
所有的
vhost
我都設定成
internat
内網模式,網絡名稱為
intnal
,網關為
192.168.56.100
,意思就是通過
192.168.56.100
網卡上網。其中有一台
vhost1
我設定為雙網卡,一張為内網模式(
192.168.56.100
),一張為網橋模式(
192.168.1.101
)。兩張網卡設定雙網卡共享上網
虛拟機之間為區域網路,其中有一台虛拟機
vhost1
通過與外網相連,所有區域網路中的虛拟機又通過
vhost1
來實作上外網。這樣
vhost1
就可以監控整個虛拟機區域網路上網情況了。
NAT
設定端口映射
http://huzhangsheng.blog.163.com/blog/static/34787784200802801435931/
你可以設定一個虛拟機的服務(比如
WEB
服務),通過使用指令行工具
VboxManage
代理。你需要知道虛拟機的服務使用哪個端口,然後決定在主機上使用哪個端口(通常但不總是想要使虛拟機和主機使用同一個端口)。在主機上提供一個服務需要使用一個端口,你能使用在主機上沒有準備用來提供服務的任何端口。一個怎樣設定新的
NAT
例子,在虛拟機上連接配接到一個
ssh
伺服器,需要下面的三個指令:
VBoxManage setextradata 'Linux Guest' 'VBoxInternal/Devices/pcnet/0/LUN#0/Config/guestssh/Protocol' TCP
VBoxManage setextradata 'Linux Guest' 'VBoxInternal/Devices/pcnet/0/LUN#0/Config/guestssh/GuestPort' 22
VBoxManage setextradata 'Linux Guest' 'VBoxInternal/Devices/pcnet/0/LUN#0/Config/guestssh/HostPort' 2222
說明:
VboxManage
是一個指令行程式,請查詢你的
VirtualBox
安裝目錄,
'Linux Guest'
是虛拟主機名。
guestssh
是一個自定義的名稱,你可以任意設定,通過上面的三個指令,把虛拟機的
22
端口
轉發到主機的
2222
端口。
又比如,我在虛拟機
debian
上安裝了
apache2
伺服器,使用
80
端口,映射到主機的
80
端口。使用下面的指令。
'C:\Program Files\innotek VirtualBox\VBoxManage.exe' setextradata 'debian' 'VBoxInternal/Devices/pcnet/0/LUN#0/Config/huzhangsheng/Protocol' TCP
'C:\Program Files\innotek VirtualBox\VBoxManage.exe' setextradata 'debian' 'VBoxInternal/Devices/pcnet/0/LUN#0/Config/huzhangsheng/GuestPort' 80
'C:\Program Files\innotek VirtualBox\VBoxManage.exe' setextradata 'debian' 'VBoxInternal/Devices/pcnet/0/LUN#0/Config/huzhangsheng/HostPort' 80