VirtualBox網(wǎng)絡(luò)之nat網(wǎng)絡(luò)使用及說明
NAT網(wǎng)絡(luò)主要作用是用于虛擬機與外網(wǎng)互通,它是宿主機內(nèi)部的local網(wǎng)絡(luò),只有本主機內(nèi)部可見,不能跨宿主機。
1.設(shè)置默認電腦存儲位置
VirualBox創(chuàng)建虛擬機時會占用宿主機的磁盤空間,默認情況下會是C盤,C盤一般是系統(tǒng)盤,不希望在C盤下存儲用戶數(shù)據(jù),可通過如下步驟更改默認設(shè)置。啟動VitualBox后,點擊菜單欄中的管理按鍵,從彈出的下拉列表里選擇全局設(shè)定,然后再從彈出的對話框中選擇常規(guī)選項。默認虛擬電腦位置這一欄設(shè)置成數(shù)據(jù)盤下的某個目錄,如下圖1所示:

圖1
2.創(chuàng)建NAT網(wǎng)絡(luò)
在創(chuàng)建虛擬機并為其指定NAT網(wǎng)絡(luò)時,會彈出如下圖2所示的界面,其中包含網(wǎng)絡(luò)地址轉(zhuǎn)換(NAT)與NAT網(wǎng)絡(luò)兩個選項,這兩個選項有什么區(qū)別呢?
可以這樣理解,網(wǎng)絡(luò)地址轉(zhuǎn)換(NAT)為VirtualBox內(nèi)置的已經(jīng)創(chuàng)建好的NAT網(wǎng)絡(luò),其網(wǎng)段為10.0.2.0/24,這個網(wǎng)絡(luò)不允許用戶管理,為了直觀起見,在本例中創(chuàng)建自己的NAT網(wǎng)絡(luò)。

圖2
點擊菜單中的管理按鍵,選擇全局設(shè)定,再從對話框中選擇網(wǎng)絡(luò),然后點擊界面上的加號圖標,彈出NAT網(wǎng)絡(luò)明細對話框。其中網(wǎng)絡(luò)名稱隨意,網(wǎng)絡(luò)CIDR一欄的地址不能與宿主機所屬的任何一個物理網(wǎng)絡(luò)沖突,也不能與宿主機中已經(jīng)存在的其它虛擬網(wǎng)絡(luò)沖突,下圖3中,CIDR為10.0.3.0/24,VirtualBox會將10.0.3.1這個IP設(shè)置成網(wǎng)關(guān),并且選中支持DHCP選擇。這樣就創(chuàng)建了網(wǎng)絡(luò)號為10.0.3、具備DHCP功能、默認網(wǎng)關(guān)為10.0.3.1的NAT網(wǎng)絡(luò),這些功能都是Virtualbox通過一個服務(wù)進程實現(xiàn)的。

圖3
3.創(chuàng)建虛擬機
NAT網(wǎng)絡(luò)已經(jīng)就緒,接下來可以創(chuàng)建虛擬機了。
第一步:點擊工具欄上的創(chuàng)建按鍵,在彈出的對話框中點擊專家模式,如下圖4所示,輸入新創(chuàng)建虛擬機的名稱,選擇相對應(yīng)的類型、版本。為虛擬機分配內(nèi)存,這里是1G,這個是創(chuàng)建者自行分配。選擇現(xiàn)在創(chuàng)建虛擬硬盤,并點擊創(chuàng)建。

圖4
第二步:創(chuàng)建虛擬磁盤,虛擬機也需要磁盤。在VirtualBox中,虛擬機中的磁盤其實就是宿主機中的某個特殊格式的文件,現(xiàn)在創(chuàng)建這個文件。如下圖5所示。圖中ubuntu-01就是文件名,文件大小設(shè)置成10G,虛擬磁盤文件類型有六種,對于某些特殊的操作系統(tǒng),操作系統(tǒng)中的特殊應(yīng)用如數(shù)據(jù)庫,為了實現(xiàn)某些特殊的功能或者更好的IO性能可能會對這個有要求,本例中可任選其一,然后點擊創(chuàng)建,就會在文章一開頭設(shè)置的目錄下,生成一個名為ubuntu-01的文件,這個文件就是虛擬機的系統(tǒng)盤。如果有必要的話,可以創(chuàng)建多個這種文件,然后將創(chuàng)建好的文件掛接到虛擬機上去,就像在物理機下新插入一張磁盤一樣。

圖5
第三步:創(chuàng)建網(wǎng)卡。完成以上兩步后,已經(jīng)擁有了一個可以安裝操作系統(tǒng)的虛擬機了,如下圖6所示,

圖6
在安裝操作系統(tǒng)之前,可以對虛擬機進行更詳細的控制,如指定CPU數(shù),添加網(wǎng)卡等。先選中虛擬機,然后點擊工具欄上的設(shè)置按鍵,從彈出的對話框中選擇系統(tǒng)選項,然后再點處理器,如下圖7,可以看到這個虛擬機默認使用一個CPU,就采用默認設(shè)置。

圖7
然后再點擊網(wǎng)絡(luò)選項,如下圖8所示。首先只啟用網(wǎng)卡1,其它不啟用。連接方式選擇NAT網(wǎng)絡(luò),然后從界面名稱的下拉列表中選擇在第創(chuàng)建NET網(wǎng)絡(luò)步驟中指定的NAT網(wǎng)絡(luò)名稱。高級選項中采用默認值,Virtualbox自動生成的MAC地址,這個就是虛擬網(wǎng)卡的MAC地址了。

圖8
虛擬機CPU、磁盤、網(wǎng)卡都有了,就像一臺真正的物理機了。然后按相同步驟創(chuàng)建另外一臺虛擬機ubuntu-02。在安裝操作系統(tǒng)之前,先俯瞰一下虛擬機的目前的網(wǎng)絡(luò)示意圖,看一下VirtualBox為做了那些事情,如下圖9。

圖9
首先,VirtualBox為創(chuàng)建了一個虛擬的二層交換機,兩臺虛擬機中的網(wǎng)卡都聯(lián)接在這臺交換機上。同時,此交換機具備DHCP功能,管理10.0.3.0/24的地址池,它的網(wǎng)關(guān)地址是10.0.3.1。另外DHCP還負責管理DNS地址,這里的DNS地址的來源是宿主機,VirtualBox從宿主機拿到后設(shè)置在這里。當虛擬機啟動時,DHCP服務(wù)會為它分配IP地址,設(shè)置網(wǎng)關(guān),設(shè)置DNS服務(wù)器地址。
其次,VirtualBox為創(chuàng)建了一個三層的虛擬路由器,路由器中的路由表來源于宿主機,其實是與宿主機共享路由表。同時,因為創(chuàng)建的是NAT網(wǎng)絡(luò),這個路由器除了一般的路由功能,還是一個配置了NAT功能的路由器,實現(xiàn)宿主機IP地址+端口號與虛擬機IP地址+端口號之間的映射,最終實現(xiàn)與外部網(wǎng)絡(luò)的通信。
可以看出,已經(jīng)實現(xiàn)了一個完整的內(nèi)部網(wǎng)絡(luò),包括帶DHCP功能的二層交換機與帶NAT功能的三層路由器。
4.安裝操作系統(tǒng)
有了網(wǎng)絡(luò),有了虛擬機,接下來就是安裝操作系統(tǒng)了。為兩臺虛擬機安裝ubuntu操作系統(tǒng),使用的ISO文件為ubuntu-16.04.3-server-amd64.iso,沒有的話可以去官網(wǎng)先下載到本地。先選中創(chuàng)建好的虛擬機,再點擊工具欄中的啟動按鍵,會彈出一個對話框,如下圖10所示,在對話框中指定本地的iso文件的路徑,然后再按啟動,余下的步驟與在物理相上安裝操作系統(tǒng)一樣,此處不表。

圖10
為兩臺虛擬機安裝好操作系統(tǒng),然后啟動。確認一下ubuntu-01這臺虛擬機的網(wǎng)絡(luò)設(shè)置。
確認網(wǎng)卡配置,如下圖11

圖11
enp0s3就是在創(chuàng)建網(wǎng)卡步驟中創(chuàng)建,它分配到的IP地址為10.0.3.5。由圖9可知,這個IP是由宿主機中的DHCP指定。
接下來看一下路由表,如圖12。

圖12
共有兩條配置,使用的網(wǎng)卡都是dnp03s.當目錄主機屬于10.0.3這個網(wǎng)絡(luò)時,直接交付,因為處于同一網(wǎng)段,所以不起路由,就是第二條配置。除10.0.3網(wǎng)段以外的目的主機,都走默認路由10.0.3.1,此時數(shù)據(jù)包就會通過圖9中的網(wǎng)絡(luò)地址轉(zhuǎn)換,映射成宿主機IP,然后通過宿主機路由,最后通過宿主機上的網(wǎng)卡發(fā)送出去,反之已然。
確認一下DNS配置,如圖13,與宿主機配置相同.

圖13
ping一下外網(wǎng),如圖14,是通的,能正確解析域名。

圖14
ping一下另一臺虛擬機,如圖15也是通的。

圖15
5.VirtualBox NAT網(wǎng)絡(luò)常見問題及解決方法
問題1:安裝操作系統(tǒng)時提示無法通過DHCP服務(wù)配置網(wǎng)絡(luò)
VirtualBox是通過某個服務(wù)進程提供網(wǎng)絡(luò)服務(wù)的,如果創(chuàng)建好網(wǎng)絡(luò)后長時間不用或者運行了很長時間,相關(guān)的進程可能會被動或者主動的down掉,可重啟VirtualBox,或者像如圖3中所示的將啟用網(wǎng)絡(luò)處的對號去掉,然后再重新勾選,一般就可以解決了。
問題2:ping不通過外網(wǎng)
由網(wǎng)9可知道,與外網(wǎng)的通信實際上是先通過NAT,然后由宿主機代為轉(zhuǎn)發(fā)。ping不通有可能是宿主機本身就不可以,有可能是因為宿主機防火墻的限制,這個時候可以關(guān)閉宿主機防火墻,也可能是宿主機所在網(wǎng)絡(luò)的限制,網(wǎng)絡(luò)管理員限制了特定端口以及特定流量包通過本網(wǎng)絡(luò)。ping不通不等于不能聯(lián)外網(wǎng)。
問題3:無法解析域名。
這個問題是因為虛擬機DNS服務(wù)器IP地址設(shè)置不正確。一般情況下虛擬機中的DNS設(shè)置與宿主機是一樣的,但是也不盡然。如果是在公司創(chuàng)建的網(wǎng)絡(luò),然后把電腦拿回家用,這個時候宿主機的DNS設(shè)置就會發(fā)生變化,而VirtualBox目前并不能實時的將宿主機的這種變化反映到虛擬機中去,而虛擬機中原來的DNS服務(wù)器地址在新的網(wǎng)絡(luò)環(huán)境下可能是無效的,從而無法解析域名。可以手動設(shè)置成正確的DNS服務(wù)器地址,也可以像問題1一樣重新啟動VirtualBox,然后在虛擬機中重新啟動一下網(wǎng)絡(luò)服務(wù),保證雙方一致。
問題4:無法聯(lián)到外網(wǎng)。
虛擬機安裝好以了以后,在后續(xù)的操作時有意無意之間,改變了虛擬機的路由表或者iptables設(shè)置,導致網(wǎng)絡(luò)不通,手動恢復即可。
總結(jié)
如果遇到網(wǎng)絡(luò)問題,首先重新啟動VirtualBox,無法解決的話就查看虛擬機網(wǎng)絡(luò)配置,無非就是網(wǎng)卡配置、DNS配置、路由表、iptables等,找到問題解決即可。
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
VirtualBox虛擬機轉(zhuǎn)移到新硬盤報錯的問題解決
由于硬盤擴容,把虛擬機文件夾整體移動到新硬盤上,再次注冊虛擬機文件報錯,本文就來介紹一下VirtualBox虛擬機轉(zhuǎn)移到新硬盤報錯的問題解決,感興趣的可以了解一下2025-04-04
Virtualbox主機和虛擬機之間實現(xiàn)文件夾共享及雙向拷貝
在VirtualBox中實現(xiàn)主機與虛擬機之間的文件夾共享與雙向文件傳輸,首先需要安裝并準備虛擬機和增強功能,然后,設(shè)置文件夾共享并訪問共享文件夾,最后,確保網(wǎng)絡(luò)連接正常,并檢查日志文件以獲取更多信息2025-02-02
virtualBox實現(xiàn)windows和Ubuntu之間的復制粘貼方式
文章介紹了如何在Windows和Ubuntu之間實現(xiàn)復制粘貼功能,包括設(shè)置共享粘貼板和安裝VirtualBox增強功能,并列舉了Windows和Ubuntu的復制粘貼快捷鍵的不同2026-03-03
VirtualBox創(chuàng)建虛擬機,使用vagrant問題
本文介紹了如何下載、安裝和配置VirtualBox和Vagrant,以及如何使用Vagrant創(chuàng)建和管理虛擬機2026-03-03
VirtualBox 配置虛擬網(wǎng)卡(橋接),實現(xiàn)主機-虛擬機網(wǎng)絡(luò)互通(圖文教程)
這篇文章主要介紹了VirtualBox 配置虛擬網(wǎng)卡(橋接),實現(xiàn)主機-虛擬機網(wǎng)絡(luò)互通(圖文教程),有需要的朋友可以了解一下。2016-11-11
VirtualBox 共享文件夾設(shè)置及開機自動掛載詳細教程
本篇文章主要介紹了VirtualBox 共享文件夾設(shè)置及開機自動掛載詳細教程,感興趣的同學可以了解一下。2016-11-11

