VirtualBox網(wǎng)絡(luò)配置超全詳解
時間:2023-06-30 06:18:02 | 來源:網(wǎng)站運營
時間:2023-06-30 06:18:02 來源:網(wǎng)站運營
VirtualBox網(wǎng)絡(luò)配置超全詳解:
Translate By:趙開恩Date:2022年8月28日于杭州引言:近期在macbook pro m1下研究通過Vagrant配置Vmware、Virtualbox虛擬機搭建K8S集群的問題,碰到虛擬機的網(wǎng)絡(luò)設(shè)置,有許多概念性的東西會困擾到集群網(wǎng)絡(luò)的搭建,在參考文章的過程碰到一篇較好的英文blog文章,詳細介紹了虛擬機網(wǎng)絡(luò)的配置,可惜是英文,索性翻譯過來供大家參考。
在現(xiàn)代商業(yè)世界中,網(wǎng)絡(luò)是交互式計算機操作的一個重要組成部分。很難想象,在這個變化速度越來越快的世界里,沒有網(wǎng)絡(luò),如何在計算機之間交換數(shù)據(jù)。硬件虛擬化背后的核心思想之一是在所有可以使用物理計算機的場景下使用虛擬機。因此,虛擬機必須能夠使用虛擬網(wǎng)絡(luò)適配器連接到物理和虛擬網(wǎng)絡(luò)。
在VirtualBox上運行的虛擬機可以連接到不同的網(wǎng)絡(luò)。VirtualBox為虛擬機提供了多種網(wǎng)絡(luò)模式。今天的博文涉及VirtualBox網(wǎng)絡(luò)設(shè)置,幫助你以最佳方式配VirtualBox,以滿足你的需求。 下面我們將討論并比較以下這些VirualBox的網(wǎng)絡(luò)模式:
- Not Attached
- NAT
- NAT 網(wǎng)絡(luò)3、
- 橋接適配器
- Internal網(wǎng)絡(luò)
- Host-Only適配器
- 通用驅(qū)動
一、虛擬網(wǎng)絡(luò)適配器
每個VirtualBox虛擬機最多可以使用8個虛擬網(wǎng)絡(luò)適配器,每個適配器又被稱為網(wǎng)絡(luò)接口控制器(NIC)。4個虛擬網(wǎng)絡(luò)適配器可以在VirtualBox GUI(圖形用戶界面)中進行配置。所有的虛擬網(wǎng)絡(luò)適配器(最多 8 個)都可以用 VBoxManage modifyvm 命令進行配置。VBoxManage是VirtualBox的一個命令行管理工具,可用于配置所有VirtualBox設(shè)置,包括VirtualBox網(wǎng)絡(luò)設(shè)置??梢栽谔摂M機設(shè)置中訪問VirtualBox網(wǎng)絡(luò)適配器設(shè)置(選擇你的虛擬機,點擊設(shè)置,在虛擬機設(shè)置窗口中進入網(wǎng)絡(luò)部分)。
如上圖,你應(yīng)該看到4個適配器頁簽。在虛擬機創(chuàng)建后,默認(rèn)情況下會啟用一個虛擬網(wǎng)絡(luò)適配器。你可以勾選 "啟用網(wǎng)絡(luò)適配器 "復(fù)選框來啟用適配器,不勾選復(fù)選框來禁用它(這個復(fù)選框定義了虛擬網(wǎng)絡(luò)適配器設(shè)備是否連接到虛擬機上)。點擊 "高級",展開高級VirtualBox網(wǎng)絡(luò)適配器設(shè)置。
二、VirtualBox中的虛擬網(wǎng)絡(luò)適配器的類型
一個虛擬網(wǎng)絡(luò)適配器是一個軟件模擬的物理設(shè)備,有6種虛擬適配器類型可以通過VirtualBox進行虛擬化:
1、AMD PCnet-PCI II(Am79C970A)。這種網(wǎng)絡(luò)適配器是基于AMD芯片的,可以在很多情況下使用。對于Windows用戶,這種網(wǎng)絡(luò)適配器可以用于舊版本的Windows系統(tǒng)(如Windows 2000),因為較新的Windows版本,如Windows 7、8和10不包含這種適配器的內(nèi)置驅(qū)動程序。最初,Am79C970A PCI設(shè)備包含一個單芯片10-Mbit控制器,并集成了DMA引擎。這個網(wǎng)絡(luò)適配器還支持AMD的Magic Packet技術(shù),用于遠程喚醒。
2、AMD PCnet-FAST III(Am79C973)。這個虛擬化的網(wǎng)絡(luò)適配器被幾乎所有可以在VirtualBox上運行的操作系統(tǒng)所支持。GRUB(啟動加載器)可以使用這個適配器進行網(wǎng)絡(luò)啟動。與上述的網(wǎng)絡(luò)適配器類似,這個適配器也是基于AMD芯片。
3、英特爾PRO/1000 MT桌面(82540EM)。這個適配器可以與Windows Vista和較新的Windows版本完美配合。大多數(shù)的Linux發(fā)行版也支持這個適配器。
4、英特爾PRO/1000 T服務(wù)器(82543GC)。Windows XP無需安裝額外的驅(qū)動程序就能識別該適配器。
5、英特爾PRO/1000 MT服務(wù)器(82545EM)。這個適配器模型對于從其他平臺導(dǎo)入OVF模板很有用,可以加速導(dǎo)入過程。
6、Paravirtualized網(wǎng)絡(luò)適配器(virtio-net)是一個特殊情況??蛻舨僮飨到y(tǒng)必須為虛擬化環(huán)境提供一個特殊的軟件接口,而不是將大多數(shù)操作系統(tǒng)支持的網(wǎng)絡(luò)硬件虛擬化。這種方法允許你避免網(wǎng)絡(luò)硬件仿真的復(fù)雜性,因此可以提高網(wǎng)絡(luò)性能。 VirtualBox支持行業(yè)標(biāo)準(zhǔn)的virtIO網(wǎng)絡(luò)驅(qū)動。VirtIO網(wǎng)絡(luò)驅(qū)動是KVM項目的一部分,是開源的。這些驅(qū)動程序可用于內(nèi)核為2.6.25或更高版本的Linux,以及包括Windows 2000、XP和Vista等舊版本的Windows。
巨型幀(Jumbo frames) 支持VirtualBox對巨型幀(可以攜帶大小超過1500字節(jié)的數(shù)據(jù)包的以太網(wǎng)幀)提供有限的支持。如果你需要使用巨型幀,請選擇一個英特爾的虛擬網(wǎng)絡(luò)適配器,并將該適配器配置為橋接模式工作。基于AMD的虛擬網(wǎng)絡(luò)適配器不支持Jumbo幀。如果你試圖為基于AMD的虛擬網(wǎng)絡(luò)適配器啟用巨量幀,巨量幀的輸入和輸出流量將被無聲地放棄。默認(rèn)情況下,巨型幀是禁用的。
三、VirtualBox的網(wǎng)絡(luò)模式
VirtualBox提供了一長串的網(wǎng)絡(luò)模式可供選擇,這是VirtualBox網(wǎng)絡(luò)設(shè)置中最有趣的特性之一。每個虛擬網(wǎng)絡(luò)適配器都可以單獨frames配置為在不同的網(wǎng)絡(luò)模式下運行。例如,你可以為適配器1設(shè)置NAT模式,為適配器2設(shè)置Host-Only模式。你可以在下拉菜單中選擇網(wǎng)絡(luò)模式,如下圖:
讓 我來詳細看看每一種VirtualBox的網(wǎng)絡(luò)模式。
1、無連接模型(Not attached)
在虛擬機中安裝了一個虛擬網(wǎng)絡(luò)適配器,但網(wǎng)絡(luò)連接不見了,很像你在使用物理網(wǎng)絡(luò)適配器時拔掉以太網(wǎng)網(wǎng)線。這種模式對測試很有用。例如,你可以在短時間內(nèi)啟用這種網(wǎng)絡(luò)模式以模擬拔掉網(wǎng)線的情況。當(dāng)你禁用 "Not Attached "模式切換到另一種網(wǎng)絡(luò)模式時,網(wǎng)絡(luò)連接又變得可用。你還可以檢查DHCP客戶端是否能正確獲得IP地址,應(yīng)用程序是否能在連接中斷或丟包后恢復(fù)下載,等等。
除了使用 "Not Attached "網(wǎng)絡(luò)模式外,你也可以使用任何其他網(wǎng)絡(luò)模式,并使用勾選 "電纜連接 "復(fù)選框的方式模擬"Not Attached "網(wǎng)絡(luò)模式的效果。當(dāng)虛擬機處于運行狀態(tài)時,你可以勾選/不勾選該復(fù)選框(見上面的屏幕截圖)就可以達到類似"Not Attached "網(wǎng)絡(luò)模式的效果。不要忘記點擊 "確定 "來使虛擬機網(wǎng)絡(luò)配置的生效。
2、NAT
這種網(wǎng)絡(luò)模式是虛擬網(wǎng)絡(luò)適配器的默認(rèn)啟用模式。虛擬機上的操作系統(tǒng)可以通過使用虛擬NAT(網(wǎng)絡(luò)地址轉(zhuǎn)換)設(shè)備訪問物理局域網(wǎng)(LAN)中的宿主機。虛擬機上的操作系統(tǒng)也可以訪問外部網(wǎng)絡(luò),包括互聯(lián)網(wǎng)。當(dāng)VirtualBox網(wǎng)絡(luò)使用NAT網(wǎng)絡(luò)模式的時候,宿主機或其所在局域網(wǎng)的其他服務(wù)器不能直接訪問虛擬機。這種默認(rèn)的網(wǎng)絡(luò)模式對于只使用虛擬機訪問互聯(lián)網(wǎng)的用戶來說是足夠的。虛擬機網(wǎng)絡(luò)適配器的IP地址是通過DHCP獲得的,在這種網(wǎng)絡(luò)模式下使用的網(wǎng)絡(luò)IP地址不能在GUI中改變。 VirtualBox有一個內(nèi)置的DHCP服務(wù)器和NAT引擎。一個虛擬NAT設(shè)備使VirtualBox宿主機的物理網(wǎng)絡(luò)適配器作為外部網(wǎng)絡(luò)接口。在NAT模式下使用的虛擬DHCP服務(wù)器的默認(rèn)地址是10.0.2.2(這也是虛擬機的默認(rèn)網(wǎng)關(guān)IP地址)。網(wǎng)絡(luò)掩碼是255.255.255.0。如果您將2個或多個虛擬機的網(wǎng)絡(luò)適配器配置為使用NAT模式,每個虛擬機將在一個隔離網(wǎng)絡(luò)的虛擬NAT設(shè)備后獲得一個10.0.2.15的IP地址。每個虛擬機的默認(rèn)網(wǎng)關(guān)是10.0.2.2。在VirtualBox中,當(dāng)使用NAT模式時,多個虛擬機的IP地址相同,如下圖:
在VBoxManage中打開虛擬機的NAT模式可以執(zhí)行如下命令:
VBoxManage modifyvm VM_name --nic1 nat
這里,VM_name是虛擬機的名稱,nic1是虛擬網(wǎng)絡(luò)適配器的號碼,nat是你設(shè)定的VirtualBox網(wǎng)絡(luò)模式。
端口轉(zhuǎn)發(fā)可以在VirtualBox虛擬機網(wǎng)絡(luò)設(shè)置窗口中通過點擊端口轉(zhuǎn)發(fā)按鈕進行配置(見上面的截圖)。關(guān)于在VirtualBox網(wǎng)絡(luò)設(shè)置中配置端口轉(zhuǎn)發(fā)的詳細信息,你可以在下面的網(wǎng)絡(luò)模式部分之后找到。
3、NAT網(wǎng)絡(luò)
這種模式類似于你用于配置路由器的NAT模式。如果你對多個虛擬機使用NAT網(wǎng)絡(luò)模式,它們可以通過網(wǎng)絡(luò)相互通信。虛擬機可以訪問物理網(wǎng)絡(luò)中的其他主機,也可以訪問外部網(wǎng)絡(luò),包括互聯(lián)網(wǎng)。任何來自外部網(wǎng)絡(luò)的機器以及宿主機所連接的物理局域網(wǎng)的機器都不能訪問被配置為使用NAT網(wǎng)絡(luò)模式的虛擬機(類似于你配置路由器從家庭網(wǎng)絡(luò)訪問互聯(lián)網(wǎng)時的情況)。
使用NAT網(wǎng)絡(luò)模式時,你不能從宿主機訪問客機(除非你在全局VirtualBox網(wǎng)絡(luò)設(shè)置中配置了端口轉(zhuǎn)發(fā))。一個內(nèi)置的VirtualBox NAT路由器使用VirtualBox主機的物理網(wǎng)絡(luò)接口控制器作為外部網(wǎng)絡(luò)接口(和NAT模式一樣)。
網(wǎng)絡(luò)地址和名稱可以在VirtualBox首選項(文件>首選項)中更改。在首選項窗口的左窗格中,選擇網(wǎng)絡(luò)來訪問VirtualBox網(wǎng)絡(luò)設(shè)置,然后雙擊你現(xiàn)有的NAT網(wǎng)絡(luò)來編輯設(shè)置(你也可以通過點擊+或x圖標(biāo)添加一個新的網(wǎng)絡(luò)或刪除一個現(xiàn)有的網(wǎng)絡(luò))。
在彈出的對話框里可以啟用或停用DHCP、IPv6以及配置端口轉(zhuǎn)發(fā)等功能。
NAT網(wǎng)絡(luò)的默認(rèn)地址是10.0.2.0/24。默認(rèn)的網(wǎng)關(guān)IP地址是10.0.2.1(x.x.x.1的ip模版通常被用于設(shè)置默認(rèn)網(wǎng)關(guān)IP),比如,如果你在virtualbox中配置了基于NAT網(wǎng)絡(luò)模式的虛擬網(wǎng)絡(luò),設(shè)置了192.168.22.0/24的網(wǎng)絡(luò)地址,則這個網(wǎng)絡(luò)的網(wǎng)關(guān)地址會是192.168.22.1。
在NAT網(wǎng)絡(luò)模式下,你不能改變網(wǎng)關(guān)的IP地址,也不能改變由DHCP服務(wù)器分配的IP地址范圍。類似的,DHCP服務(wù)器的IP地址默認(rèn)是10.0.2.3(使用x.x.x.3的模版)。下面是一個運行在virtualbox中基于win7系統(tǒng)的虛擬機的NAT網(wǎng)絡(luò)模式下IP地址的配置情況:
如果你不想使用virtualbox的GUI界面編輯網(wǎng)絡(luò)設(shè)置,你可以通過以下命令增加一個新的NAT網(wǎng)絡(luò):
VBoxManage natnetwork add --netname natnet1 --network “192.168.22.0/24” --enable
這里natnet1是NAT網(wǎng)絡(luò)的名稱,192.168.22.0/24是NAT網(wǎng)絡(luò)的地址。
如果你想配置虛擬機網(wǎng)絡(luò)適配器以便能通過VBoxManage使用NAT網(wǎng)絡(luò)模式,可以運行以下命令:
VBoxManage modifyvm VM_name --nic1 natnetwork
這里nic1是第一個虛擬網(wǎng)絡(luò)適配器(網(wǎng)絡(luò)控制接口),natnetwork是VirtualBox網(wǎng)絡(luò)模式的名稱,VirtualBox網(wǎng)絡(luò)模式的名稱選項有:none, null, nat, natnetwork, bridged, intnet, hostonly, generic。應(yīng)用這些設(shè)置前需要先關(guān)閉虛擬機。
端口轉(zhuǎn)發(fā)是另外一個可以從這個窗口訪問和配置的選項。端口轉(zhuǎn)發(fā)可以用來配置從宿主機以及與宿主機同一物理網(wǎng)絡(luò)的其他主機訪問虛擬機內(nèi)操作系統(tǒng)上運行的服務(wù)的路徑(詳見下文)。
正如你所看到的,在VirtualBox GUI中,NAT模式和NAT網(wǎng)絡(luò)模式的端口轉(zhuǎn)發(fā)設(shè)置的位置是不同的。NAT模式的端口轉(zhuǎn)發(fā)設(shè)置在VM > 設(shè)置 > 網(wǎng)絡(luò)中可用,而NAT網(wǎng)絡(luò)模式的端口轉(zhuǎn)發(fā)設(shè)置可以在文件 > 首選項 > 網(wǎng)絡(luò)中配置。這是因為NAT模式的端口轉(zhuǎn)發(fā)規(guī)則對每個虛擬機來說是單獨的,而NAT網(wǎng)絡(luò)模式的端口轉(zhuǎn)發(fā)規(guī)則對多個虛擬機來說是共同的,這些虛擬機的適配器都連接到相應(yīng)的NAT網(wǎng)絡(luò)。請參閱下面的 "端口轉(zhuǎn)發(fā) "部分中關(guān)于配置端口轉(zhuǎn)發(fā)的詳細信息。
4、橋接適配器
該模式用于將虛擬機的虛擬網(wǎng)絡(luò)適配器與VirtualBox主機的物理網(wǎng)絡(luò)適配器相連。虛擬機的虛擬網(wǎng)絡(luò)適配器使用主機網(wǎng)絡(luò)接口進行網(wǎng)絡(luò)連接。簡單地說,虛擬網(wǎng)絡(luò)適配器直接發(fā)送或接收網(wǎng)絡(luò)數(shù)據(jù)包,不使用額外的路由。
橋接網(wǎng)絡(luò)模式使用一個特殊的網(wǎng)絡(luò)過濾器驅(qū)動程序,以過濾來自主機的物理網(wǎng)絡(luò)適配器的數(shù)據(jù)。這種網(wǎng)絡(luò)模式下,宿主機所在的物理本地局域網(wǎng)的服務(wù)器都能獨立對等地訪問跑在虛擬機上的服務(wù)器。
在VirtualBox中使用橋接網(wǎng)絡(luò)模式時,你可以從虛擬機訪問宿主機、宿主機所在物理網(wǎng)絡(luò)的其他主機以及外部網(wǎng)絡(luò),包括互聯(lián)網(wǎng)。虛擬機也可以被同一物理局域網(wǎng)中的宿主機以及其他主機(或虛擬機)所訪問。如果你在宿主機上有多個物理網(wǎng)絡(luò)適配器,你應(yīng)該在VirtualBox網(wǎng)絡(luò)設(shè)置中選擇正確的適配器。
在下面的截圖中,你可以看到兩個物理網(wǎng)絡(luò)適配器--以太網(wǎng)適配器和Wi-Fi適配器。如果你對無線網(wǎng)絡(luò)適配器使用橋接模式,你就不能在虛擬機操作系統(tǒng)中使用該Wi-Fi適配器的底層特性。例如,你不能選擇要連接的Wi-Fi網(wǎng)絡(luò),啟用監(jiān)控模式等。相反,你需要連接到宿主機上的Wi-Fi網(wǎng)絡(luò)。如果你必須在虛擬機的客戶操作系統(tǒng)中使用Wi-Fi適配器的所有功能,請使用USB Wi-Fi適配器和USB Pass-through功能,詳細說明見Kali Linux的博文。
在 VirtualBox 中,使用橋接模式時,虛擬機的虛擬網(wǎng)絡(luò)適配器的 IP 地址可以與宿主機的物理網(wǎng)絡(luò)適配器的 IP 地址屬于同一個網(wǎng)段。如果物理網(wǎng)絡(luò)中有DHCP服務(wù)器,虛擬機的虛擬網(wǎng)絡(luò)適配器將在橋接模式下自動獲得IP地址(如果在虛擬機操作系統(tǒng)的網(wǎng)絡(luò)接口設(shè)置中設(shè)置了自動獲得IP地址)。因此,在橋接模式下運行的虛擬網(wǎng)絡(luò)適配器的默認(rèn)網(wǎng)關(guān)與主機的默認(rèn)網(wǎng)關(guān)相同。讓我們看看一個有IP地址的簡單例子。
- 物理網(wǎng)絡(luò)的地址段是:10.10.10.0
- 物理網(wǎng)絡(luò)的默認(rèn)網(wǎng)關(guān)IP地址是:10.10.10.1
- DHCP服務(wù)器的IP地址是:10.10.10.1
- 宿主機的IP地址配置是:IP地址:10.10.10.72;子網(wǎng)掩碼:255.255.255.0;默認(rèn)網(wǎng)關(guān):10.10.10.1
- 虛擬機的IP地址配置是:IP地址:10.10.10.91;子網(wǎng)掩碼:255.255.255.0;默認(rèn)網(wǎng)關(guān):10.10.10.1
有時你可能發(fā)現(xiàn)物理網(wǎng)絡(luò)中有多個網(wǎng)關(guān)。你可以通過一個網(wǎng)關(guān)將宿主機接入某個必要的網(wǎng)絡(luò),然后使用另一個網(wǎng)關(guān)將虛擬機接入其他的網(wǎng)絡(luò)。你也可以修改虛擬機的路由表,使用兩個網(wǎng)關(guān)接入到合適的網(wǎng)絡(luò)。正如你所見,橋接網(wǎng)絡(luò)模式是Virtualbox網(wǎng)絡(luò)設(shè)置中非常強大的選項,可以應(yīng)用在許多的場景下。
混雜模式。這種模式允許網(wǎng)絡(luò)適配器中轉(zhuǎn)所有接收到的流量,無論流量是尋址哪個適配器的。在正常模式下,網(wǎng)絡(luò)適配器只接收包括該特定網(wǎng)絡(luò)適配器的MAC地址作為目標(biāo)地址的幀。在正常模式下,被尋址到與所選適配卡的MAC地址不同的MAC地址的幀(當(dāng)流量不是廣播時)會被丟棄?;祀s模式使一個物理網(wǎng)絡(luò)適配器有多個MAC地址成為可能,允許所有傳入的流量通過主機的物理網(wǎng)絡(luò)適配器,到達虛擬機的虛擬網(wǎng)絡(luò)適配器,該虛擬機有自己的MAC地址,并被認(rèn)為是宿主機物理適配器上的另一個mac地址,即使該流量并不是尋址該特定虛擬機的虛擬網(wǎng)絡(luò)適配器。
大多數(shù)無線網(wǎng)絡(luò)適配器不支持混雜模式。與Wi-Fi適配器的橋接是通過以下方式完成的--VirtualBox在必須傳送到虛擬機的虛擬網(wǎng)絡(luò)適配器的以太網(wǎng)幀頭中替換了適當(dāng)?shù)腗AC地址(該流量必須使用主機Wi-Fi適配器的MAC地址)?;祀s模式對網(wǎng)絡(luò)測試和安全審計很有用。你可以在VirtualBox網(wǎng)絡(luò)設(shè)置中啟用混雜模式,并用嗅探器監(jiān)測網(wǎng)絡(luò)流量。使用混雜模式有三個選項:
1、Deny。
任何不以虛擬機的虛擬網(wǎng)卡為目的地的流量都將被屏蔽。這個選項是默認(rèn)設(shè)置。
2、Allow VMs。
除了去向或來自于虛擬機的流量,其他流量都將被屏蔽。
3、Allow ALL。
這一模式下沒有限制,虛擬機的網(wǎng)卡可以看到所有進來、出去的流量?;祀s模式不僅可以用于橋接網(wǎng)絡(luò)模式,也可以用于NAT網(wǎng)絡(luò)模式,Internal網(wǎng)絡(luò)模式和Host-only適配器模式。
5、Internal Network
VirtualBox中的虛擬機網(wǎng)卡被配置成Internal network模式的時候,他們會被接入一個隔離的虛擬網(wǎng)絡(luò)。在這個隔離的虛擬網(wǎng)絡(luò)中,虛擬機之間可以互相通信,但是他們不能和Virtualbox中的宿主機通信,不能和宿主機所在的局域網(wǎng)中的其他主機通信,也不能外部網(wǎng)絡(luò)通信。宿主機或其他設(shè)備可以訪問接入到Internal Network中的虛擬機。Virtualbox中的Internal network可以用來模擬真實網(wǎng)絡(luò)。
例如,你可以創(chuàng)建3個虛擬機,每個虛擬機都有一個連接到internal network的虛擬網(wǎng)絡(luò)適配器(適配器1)。這些網(wǎng)絡(luò)適配器的IP地址是被定義為VirtualBox internal network的子網(wǎng)中的IP(你應(yīng)該手動定義子網(wǎng))。其中一個虛擬機(VM1)也有2個虛擬網(wǎng)絡(luò)適配器,第2個網(wǎng)絡(luò)適配器被配置為在NAT模式下運行。VM1虛擬機被配置為一個路由器(創(chuàng)建路由器的最佳解決方案之一是安裝Linux和配置IPTABLES,但在VirtualBox網(wǎng)絡(luò)測試的情況下,第一次可以使用更簡單的路由解決方案)。如果 VM1 運行internal network模式下的網(wǎng)絡(luò)適配器的 IP 地址在 VM2 和 VM3 的網(wǎng)絡(luò)設(shè)置中被設(shè)置為網(wǎng)關(guān), 那么VM2 和 VM3 就可以訪問外部網(wǎng)絡(luò)。這個例子的網(wǎng)絡(luò)配置如下:
VM1:IP地址-192.168.23.1(internal network模式);10.0.2.15(NAT模式);網(wǎng)關(guān)10.0.2.2(Virtualbox 內(nèi)置NAT設(shè)備的IP地址)
VM2:IP地址:192.168.23.2(internal network),網(wǎng)關(guān)-192.168.23.1VM3:IP地址:192.168.23.3(internal network),網(wǎng)關(guān)-192.168.23.1
VirtualBox internal network 子網(wǎng)設(shè)置:192.168.23.0
詳見下圖:
注意:您也可以部署這樣的虛擬基礎(chǔ)設(shè)施來進行防火墻規(guī)則測試,但在連接外部網(wǎng)絡(luò)時,更好的方案是為VM1的第2個虛擬網(wǎng)絡(luò)適配器設(shè)置橋接模式而不是NAT模式。
6、Host-only Adapter
這種網(wǎng)絡(luò)模式用于在宿主機和虛擬機之間進行通信。一個虛擬機可以與連接到host-only網(wǎng)絡(luò)的其他虛擬機通信,也可以與宿主機通信。VirtualBox宿主機可以訪問所有連接到host-only網(wǎng)絡(luò)的虛擬機。
VirutalBox Host-only虛擬網(wǎng)絡(luò)適配器在宿主機的操作系統(tǒng)中創(chuàng)建,在Host-only網(wǎng)絡(luò)中使用,你可以在文件-宿主機網(wǎng)絡(luò)管理菜單中編輯這個virtual box網(wǎng)絡(luò)的設(shè)置,如下:
在我們的例子中,Host-only網(wǎng)絡(luò)的默認(rèn)網(wǎng)絡(luò)段是192.168.56.0/24,宿主機上的虛擬網(wǎng)絡(luò)適配器的IP地址是192.168.56.1。你可以在適配器標(biāo)簽中手動編輯這些IP地址。可以通過勾選適當(dāng)?shù)膹?fù)選框來啟用或禁用DHCP服務(wù)器。在DHCP服務(wù)器選項卡中,你可以設(shè)置DHCP服務(wù)器的IP地址、網(wǎng)絡(luò)掩碼以及DHCP發(fā)布的IP地址范圍。
虛擬機的虛擬網(wǎng)絡(luò)適配器在其IP配置中沒有網(wǎng)關(guān),因為host-only模式不允許你連接到host-only網(wǎng)絡(luò)以外的任何設(shè)備。也可以創(chuàng)建1個以上的VirtualBox host-only網(wǎng)絡(luò)適配器,以便使用不同的host-only網(wǎng)絡(luò)--只需按下“創(chuàng)建”按鈕即可。如果不再需要host-only網(wǎng)絡(luò),只需選擇適配器并點擊刪除即可。
7、Generic Driver
這種網(wǎng)絡(luò)模式允許你共享通用網(wǎng)絡(luò)接口,用戶可以選擇一個擴展包中分發(fā)的或VirtualBox自帶的合適的驅(qū)動。
Generic Driver模式有兩個可用的子模式:UDP隧道和VDE(虛擬分布式以太網(wǎng))網(wǎng)絡(luò)。
UDP隧道。運行在不同宿主機上的虛擬機可以通過使用現(xiàn)有的網(wǎng)絡(luò)基礎(chǔ)設(shè)施進行透明的通信。
VDE網(wǎng)絡(luò)。虛擬機可以連接到 Linux 或 FreeBSD 主機上的虛擬分布式交換機。你需要從源代碼編譯VirtualBox來使用VDE網(wǎng)絡(luò),因為標(biāo)準(zhǔn)的VirtualBox包不包括這個功能。
8、VirtualBox網(wǎng)絡(luò)模式比較
為了方便,我們使用下邊對Virtualbox支持的各網(wǎng)絡(luò)模式進行了一個匯總總結(jié):
9、端口轉(zhuǎn)發(fā)
端口轉(zhuǎn)發(fā)是將尋址向某個IP地址和端口的流量轉(zhuǎn)發(fā)到另一個不同的IP地址和端口的處理操作。服務(wù)器和其他路由設(shè)備上可以使用專門應(yīng)用程序來實現(xiàn)端口轉(zhuǎn)發(fā)。端口轉(zhuǎn)發(fā)最常用的一個應(yīng)用場景是為隱藏在NAT后邊的特定的網(wǎng)絡(luò)設(shè)備提供外部網(wǎng)絡(luò)訪問入口。
配置完端口轉(zhuǎn)發(fā)規(guī)則后,客戶端可以通過連接路由器(或主機)外部IP地址和專用端口來訪問特定的服務(wù)。網(wǎng)絡(luò)包會首先被路由器上的一個應(yīng)用程序所截獲,然后這個應(yīng)用程序會讀取網(wǎng)絡(luò)包頭中的目的IP地址和端口號(IP包頭,含有TCP或UDP段的包頭)。如果包頭中目的IP地址和端口號的組合能與端口轉(zhuǎn)發(fā)規(guī)則集合中的某個條件匹配上,路由器程序就會重寫包頭中的信息(IP地址和/或端口號),并根據(jù)端口轉(zhuǎn)發(fā)規(guī)則將包/段發(fā)送給另一個網(wǎng)絡(luò)接口。
默認(rèn)情況下,VirtualBox宿主機和其他局域網(wǎng)中的主機不能訪問網(wǎng)絡(luò)適配器被設(shè)置成NAT或NAT Network模式的VirtualBox虛擬機,但是VirutalBox提供了內(nèi)置的端口轉(zhuǎn)發(fā)特性支持了這種類型的訪問。
四、Example 1 – SSH
訪問現(xiàn)在讓我們考慮配置連接到VirtualBox虛擬機的端口轉(zhuǎn)發(fā)的示例,使用的例子是連接到運行在Ubuntu Linux虛擬機上的SSH服務(wù)器,該虛擬機通過NAT模式連接到網(wǎng)絡(luò)。你可以在這篇博文中閱讀如何在VirtualBox上安裝Ubuntu。(
https://www.nakivo.com/blog/install-ubuntu-on-virtualbox-virtual-machine/)
輸入數(shù)據(jù):
宿主機IP地址:10.10.10.72(一個物理的NIC)
Ubuntu虛擬機IP地址:10.0.2.15(NAT模式)
用戶名稱:user1
1、在Ubuntu虛擬機上安裝SSH服務(wù)器apt-get install openssh-server
2、編輯SSH服務(wù)器配置文件vim /etc/ssh/sshd_config
3、去掉下邊語句的注釋,打開使用密碼認(rèn)證的功能PasswordAuthentication yes
4、重啟SSH進程服務(wù)/etc/init.d/ssh restart
5、確認(rèn)SSH服務(wù)器正常工作并嘗試從localhost(Ubuntu虛擬機)連接到SSH服務(wù)器
6、如果一切順利,你就可以開始在virtualbox中配置端口轉(zhuǎn)發(fā)了正如你所記得的,你應(yīng)該打開虛擬機設(shè)置,選擇網(wǎng)絡(luò)部分。選擇被配置為在NAT模式下工作的虛擬網(wǎng)絡(luò)適配器,展開高級設(shè)置,點擊端口轉(zhuǎn)發(fā)按鈕。點擊 "+"圖標(biāo),在虛擬機的VirtualBox網(wǎng)絡(luò)設(shè)置中添加一個新的端口轉(zhuǎn)發(fā)規(guī)則,如下圖:
SSH服務(wù)器默認(rèn)監(jiān)聽22端口。讓我們創(chuàng)建一個規(guī)則允許你將virtual box宿主機8022端口的連接請求轉(zhuǎn)發(fā)到Ubuntu虛擬機SSH服務(wù)器監(jiān)聽的22端口。首先,你可以創(chuàng)建一條規(guī)則允許來自Virtualbox宿主機的連接,如下圖:
VirtualBox GUI中配置端口轉(zhuǎn)發(fā)規(guī)則的窗口視圖如下圖所示:
在Virtualbox的宿主機上打開SSH客戶端(如windows下的PuTTY)并連接127.0.0.1的8022端口。如果你創(chuàng)建了一個類似的端口轉(zhuǎn)發(fā)規(guī)則,其中將定義VirtualBox宿主機的物理網(wǎng)絡(luò)適配器的真實IP地址,而不是localhost的IP地址(127.0.0.1),那么宿主機所在物理網(wǎng)絡(luò)中的其他主機將能夠通過SSH連接到VirtualBox主機的8022端口來訪問Ubuntu 虛擬機。在這個例子中,VirtualBox宿主機上的物理網(wǎng)卡的IP地址是10.10.10.72。
在你的virtualbox宿主機或同一局域網(wǎng)的其他主機上打開一個SSH客戶端,連接到你的virtualbox宿主機IP的8022端口,你就可以訪問virtualbox上的虛擬機了。
五、Example 2 – HTTP access
如果你想在你的虛擬機上部署一個Web服務(wù)器,并提供從外部訪問你的網(wǎng)站,你可以添加另一個端口轉(zhuǎn)發(fā)規(guī)則。讓我們考慮如何配置該端口轉(zhuǎn)發(fā)規(guī)則,以便從VirtualBox宿主機和連接到物理局域網(wǎng)(LAN)的其他機器訪問部署在Ubuntu虛擬機上的網(wǎng)站。在這個例子中,使用Apache作為web服務(wù)器。首先,在Virtualbox上運行的Ubuntu虛擬機部署Apache軟件。apt-get install apache2
默認(rèn)情況下Ubuntu的ufw防火墻是關(guān)閉的。如果你Ubuntu虛擬機上的防火墻是打開的,要確保可以訪問TCP80端口。安裝完Apache后,在Ubuntu虛擬機上打開一個Web瀏覽器,輸入http://127.0.0.1 訪問apache的默認(rèn)頁面。如果一切順利,我們將能看到Apache的默認(rèn)頁面。這意味著,現(xiàn)在你可以在VirtualBox網(wǎng)絡(luò)設(shè)置中配置一個端口轉(zhuǎn)發(fā)規(guī)則,用于訪問Ubuntu虛擬機上托管的網(wǎng)站。打開端口轉(zhuǎn)發(fā)設(shè)置窗口,進入虛擬機設(shè)置>網(wǎng)絡(luò)>[選擇你的適配器]>端口轉(zhuǎn)發(fā)(與上述解釋類似)。你可以通過以下方式添加一個新規(guī)則。
在宿主機或連接到物理網(wǎng)絡(luò)的任何其他機器上打開Web瀏覽器,輸入VirtualBox宿主機的IP地址和上面創(chuàng)建的端口轉(zhuǎn)發(fā)規(guī)則中定義的端口:
http://10.10.10.72:8080在當(dāng)前的例子中,10.10.10.72是VirtualBox宿主機的IP地址,8080是VirtualBox宿主機上監(jiān)聽的TCP端口。配置端口轉(zhuǎn)發(fā)的結(jié)果顯示在下面的屏幕截圖上:
你也可以為通過RDP、FTP和其他協(xié)議訪問虛擬機創(chuàng)建類似的規(guī)則。為虛擬網(wǎng)絡(luò)適配器在NAT網(wǎng)絡(luò)模式下工作的虛擬機配置端口轉(zhuǎn)發(fā)的功能類似(見上面解釋NAT網(wǎng)絡(luò)模式的部分)。
六、結(jié)論
VirtualBox是一個強大的虛擬化解決方案,它很靈活,提供了廣泛的網(wǎng)絡(luò)設(shè)置。每個虛擬機最多可以使用8個虛擬網(wǎng)絡(luò)適配器,每個網(wǎng)絡(luò)適配器都可以被模擬成相應(yīng)型號的真實英特爾和AMD網(wǎng)絡(luò)接口控制器(NIC)。VirtualBox網(wǎng)絡(luò)適配器設(shè)置允許你改變每個虛擬網(wǎng)卡的MAC地址,插入或拔出虛擬網(wǎng)線,并選擇網(wǎng)絡(luò)模式。為虛擬網(wǎng)絡(luò)適配器設(shè)置網(wǎng)絡(luò)模式是VirtualBox網(wǎng)絡(luò)設(shè)置中最有趣和重要的部分之一。有六種網(wǎng)絡(luò)模式,每一種都可以用于不同的使用情況??梢耘渲枚丝谵D(zhuǎn)發(fā),以便外部服務(wù)器訪問網(wǎng)絡(luò)適配器以NAT或NAT網(wǎng)絡(luò)模式運行的虛擬機。
今天的blog已經(jīng)涵蓋了VirtualBox的網(wǎng)絡(luò)設(shè)置,但如果你想了解更多關(guān)于VirtualBox的信息,歡迎你查看我們關(guān)于VirtualBox使用、安裝VirtualBox擴展包和更新VirtualBox的博文。你也可以閱讀關(guān)于VirtualBox與VMware和Hyper-V比較的博文,其中也討論了這些虛擬化平臺的網(wǎng)絡(luò)設(shè)置。
翻譯自NAKIVO Blog ,原文地址:
https://www.nakivo.com/blog/virtualbox-network-setting-guide/
關(guān)鍵詞:網(wǎng)絡(luò),配置