VirtualBox是一款SUN出品的非常優秀的虛擬機程序,版本也非常齊全,你可以在官網上找到適合各種操作系統平臺的版本。
這�塈琤�給大家大致講解下VBox的網絡配置及應用。
VirtualBox的提供了四種網絡接入模式,它們分別是:
1、NAT 網絡地址轉換模式(NAT,Network Address Translation)
2、Bridged Adapter 橋接模式
3、Internal 內部網絡模式
4、Host-only Adapter 主機模式
這�塈琤�給大家大致講解下VBox的網絡配置及應用。
VirtualBox的提供了四種網絡接入模式,它們分別是:
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方案優缺點:
筆記本已插網線時: 虛擬機可以訪問主機,虛擬機可以訪問互聯網,在做了端口映射後(最後有說明),主機可以訪問虛擬機上的服務(如數據庫)。
筆記本沒插網線時: 主機的"本地連接"有紅叉的,虛擬機可以訪問主機,虛擬機不可以訪問互聯網,在做了端口映射後,主機可以訪問虛擬機上的服務(如數據庫)。
解釋:
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不能主機。
解釋:
網橋模式是我最喜歡的用的一種模式,同時,模擬度也是相當完美。你可以這樣理解,它是通過主機網卡,架設了一條橋,直接連入到網絡中了。因此,它使得虛擬機能被分配到一個網絡中獨立的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 網卡通信
這種方案不受主機本地連接(網卡)是否有紅叉的影響。
解釋:
內網模式,顧名思義就是內部網絡模式,虛擬機與外網完全斷開,只實現虛擬機於虛擬機之間的內部網絡模式。
虛擬機與主機關系:
不能相互訪問,彼此不屬於同一個網絡,無法相互訪問。
虛擬機與網絡中其他主機關系:
不能相互訪問,理由同上。
虛擬機與虛擬機關系:
可以相互訪問,前提是在設置網絡時,兩臺虛擬機設置同一網絡名稱。如上配置圖中,名稱為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, 這時主機要能通過"本地連接"有線上網,(無線網卡不行)
解釋:
主機模式,這是一種比較復雜的模式,需要有比較紮實的網絡基礎知識才能玩轉。可以說前面幾種模式所實現的功能,在這種模式下,通過虛擬機及網卡的設置都可以被實現。
我們可以理解為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就可以監控整個虛擬機局域網上網情況了。
比如我想模擬出來一個一臺主機,監控一個局域網上網情況的網絡環境。
首先我開啟了兩臺虛擬機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/34787...
你可以設置一個虛擬機的服務(比如 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
註意:要使設置生效,請關掉 VirtualBox 再運行虛擬機,我把 VirtualBox 安裝在 winxp 上,在虛擬機中安裝 debian 4.02r ,虛擬機名是 debian ,並安裝了 apache2 php5 mysql-server ,在主機上用IE瀏覽 http://localhost,成功轉發到虛擬機 debian 的 apache2 web 服務器上
http://huzhangsheng.blog.163.com/blog/static/34787...
你可以設置一個虛擬機的服務(比如 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
註意:要使設置生效,請關掉 VirtualBox 再運行虛擬機,我把 VirtualBox 安裝在 winxp 上,在虛擬機中安裝 debian 4.02r ,虛擬機名是 debian ,並安裝了 apache2 php5 mysql-server ,在主機上用IE瀏覽 http://localhost,成功轉發到虛擬機 debian 的 apache2 web 服務器上
沒有留言:
張貼留言