『壹』 Virtual Box虛擬機CentOS 7.x雙網卡網路配置
首先科普下 Virtual Box 虛擬機的幾種主流的網路設置方式,先上圖(來源官方文檔)
我們的目標是實現類似於橋接模式的那種區域網虛擬機主機互通並且能夠訪問外網的網路模式,以滿足我們日常架設本地伺服器測試環境的需求。但是又不想使用橋接模式,因為會佔用真實區域網的 IP 地址,這點對於管理嚴格一點的公司內網來說非常棘手;切換網路容易產生 IP 沖突,就要針對虛擬機更改 IP 配置,非常的麻煩。
那哪種模式才能滿足我們的需求呢?
以上介紹的單純任何一種模式都無法滿足,就算能滿足也要做相應的設置,而不是默認配置完就能支持。比如 Host-only 模式就可以通過配置宿主機物理網卡和虛擬的網卡之間進行網路共享實現。但是考慮到不通操作系統(例如:Mac OS X、Windows)設置的方式肯定存在差異,沒法做到跨平台,換一個操作系統部署同一套環境免不了學習成本,所以這種方式不予考慮。
那還有沒有其他方式呢?
答案是有的,不過需要結合幾種網路模式來實現。
這里我們採用 雙網卡+Host-only+NAT 網路模式來實現。
虛擬機管理軟體是支持定製硬體的(當然這里所說的硬體是指軟體模擬的),所以添加網卡就可以滿足。
假設你已經擁有了一台安裝好 CentOS 7.x 的虛擬機
Virtual Box 側邊欄選中你要配置的虛擬機,我這里是 centos7-origin ,點擊右邊的設置
選中側邊欄的網路一欄,點擊」網卡1「標簽頁,配置連接方式為「僅主機網路」,界面名稱選默認的就好
點擊「網卡2」標簽頁,配置連接方式為「網路地址轉換」,注意要勾上「啟用網路連接」的選框。如果有需要,你也還可以配置「網卡3」、「網卡4」。這里我們只需要配置兩張網卡
按以上步驟添加好網卡啟動虛擬機
輸入 ip addr 命令,此時能看到兩張網卡,依次為前面我們設置的 Host-only 、 NAT 模式
cd /etc/sysconfig/network-scripts && ls 可以看到存在 ifcfg-enp0s3 這個網卡的配置文件,後綴對應的就是前面看到的網卡名
cp ifcfg-enp0s3 ifcfg-enp0s8 拷貝 ifcfg-enp0s3 命名 ifcfg-enp0s8 (對應前面的第二張網卡名)
nmcli con show (使用這個命令需要 NetworkManager 這個服務是開啟的)查看網卡的 UUID 並通過 nmcli con show > ~/uuid.txt 記錄到文件以備修改網卡配置用(這里文件名和路徑自己定,也可以同我一樣放在家目錄,因為我沒有用 ssh 工具連接虛擬機,到時候給網卡設置上對應的 UUID 沒法復制粘貼,輸入會比較麻煩,所以先把查看到的 UUID 信息輸出到文件,修改網卡配置文件時可以讀入文件的內容方便編輯)
我們採用靜態 IP 的方式配置Host-only模式的網卡,也就是 enp0s3 這塊
回到Virtual Box主界面點擊菜單管理->主機網路管理器,彈出對話框如下
這里採用固定 IP 配置,網路選項卡->手動配置如上
配置虛擬機 Host-only 模式的網卡 vi ifcfg-enp0s3
注意,網段需要跟上面主機網路配置的網卡處於同一網段,網關地址這里設置為主機網路配置的網卡地址一致
接著編輯 enp0s8 這張網卡, vi ifcfg-enp0s8 命令模式下游標移動到最後一行讀入我們之前保存的網卡 UUID 文件 : r ~/uuid.txt 方便修改。因為這里是NAT模式,所以只要修改以上四個地方。
systemctl restart network 重啟網路
ip addr 查看網卡是否配置成功,如上說明配置沒問題
依次測試 Host-only 模式訪問宿主機、 NAT 模式訪問宿主機、訪問外網
測試宿主機訪問虛擬機
這樣,整個網路便搭建好了,接著就可以歡樂的搭建本地伺服器測試環境了
『貳』 虛擬機與宿主機之間使用同一個網段方法
1)打開win10的設備管理器,定位到網路適配器,然後從操作菜單里點擊「添加過時硬體」
2)選擇「安裝我手動從列表選擇的硬體」
3)選擇安裝的硬體是「網路適配器」,並且在下一步里,選擇安裝的是Microsoft公司的「Microsoft KM-TEST環回適配器」
4)繼續下一步完成安裝後,進入網路連接配置功能里,就會多了一個虛擬網卡了
5)對該虛擬網卡的屬性進行設置,記得不用設置網關,也不用設置DNS,如下圖:
6)在真正的網卡上設置網路共享,記得共享上網的網卡需要選擇剛剛新增的虛擬網卡,如下圖:
7)進入virtual box主機里設置虛擬主機的網路為「橋接網路」,並且指定的網卡是剛剛新增的虛擬網卡,如下圖:
或者vm
8)啟動虛擬主機,給虛擬主機的網卡配置一個跟虛擬網卡處於同一網段的IP,並且將網關指定為虛擬網卡設置的IP地址:
9)systemctl restart netwrok 重啟網路,然後win10主機和linux虛擬主機就可以通訊了,同時linux虛擬主機也可以訪問互聯網了
『叄』 Hyper-V虛擬機和宿主機內網外區域網互通配置
1.新建交換機選擇外部
2.乙太網設置剛創建交換器的網路
3. 原宿主機網路設置這樣類似, 選擇共享
4.虛擬選擇剛創建好的網路適配器
OK!!
『肆』 虛擬機三種網路模式的配置及原理分析
我們首先說一下VMware的幾個虛擬設備
VMnet0:用於虛擬橋接網路下的虛擬交換機
VMnet1:用於虛擬 Host -Only網路下的虛擬交換機
VMnet8:用於虛擬NAT網路下的虛擬交換機
VMware Network Adepter VMnet1(以下下簡稱Adepter VMnet1):Host用於與Host-Only虛擬網路進行通信的虛擬網卡
VMware Network Adepter VMnet8(以下下簡稱Adepter VMnet8):Host用於與NAT虛擬網路進行通信的虛擬網卡
一、NAT模式(最easy的)
1、虛擬機通過Vmnet8虛擬交換機鏈接宿主機的Adapter Vmnet8虛擬網卡上,實現與宿主機雙向通信;
2、VMnet8提供虛擬NAT服務和虛擬DHCP服務,虛擬NAT設備與宿主機真實網卡直接相連,實現訪問互聯網;
3、此模式下未用到Vmnet1虛擬網卡
二、HOST-ONLY模式(研究一晚上,困)
1、虛擬機通過Vmnet1交換機鏈接宿主機Adapter Vmnet1虛擬網卡上,實現宿主機到虛擬機的單項通信(虛擬機此時訪問不了宿主機);
2、Vmnet1提供虛擬DHCP服務;
3、要想實現虛擬機到宿主機的單項通信和讓虛擬機訪問外網,需要做:
1、將宿主機真實網卡適配器開啟網路共享模式(ICS);
2、將Adapter Vmnet1虛擬網卡地址設置為192.168.x.1(固定格式的,一般無需手動更改,通常第1步設置完後,該虛擬網卡的地址會自動填 寫,通常會填寫192.168.137.1,但經過測試也可自己修改第三位數字,實際就是虛擬路由。但是,為什麼第四位不能設置成別的數 字? 怎 么強制改都不行,很奇妙。)
3、將Vmnet1虛擬交換機的IP端子網設為192.168.x.0,此時可以關閉DHCP功能,因為,虛擬機要配置靜態ip,不關閉也無所謂;
4、將虛擬機的網卡地址改為靜態的,(我的網卡名叫ens33),具體配置如下:
TYPE="Ethernet"
BOOTPROTO=static
DEFROUTE="yes"
PEERDNS="yes"
PEERROUTES="yes"
IPV4_FAILURE_FATAL="no"
IPV6INIT="yes"
IPV6_AUTOCONF="yes"
IPV6_DEFROUTE="yes"
IPV6_PEERDNS="yes"
IPV6_PEERROUTES="yes"
IPV6_FAILURE_FATAL="no"
IPV6_ADDR_GEN_MODE="stable-privacy"
NAME="ens33"
UUID="c7d8063c-0dc0-4e94-b229-568f0421e678"
DEVICE="ens33"
ONBOOT="yes"
IPADDR="192.168.137.128"
NETMASK=255.255.255.0
GATEWAY=192.168.137.1
DNS1=8.8.8.8
DNS2=144.144.144.144
5、重啟下network服務,大功告成;那麼問題來了:樓主在反復測試的時候發現當把 Adapter Vmnet1虛擬網卡地址設置為192.168.1.1時 (即與宿主機真實路由地址相同時)會發生奇怪的現象就是,虛擬機可以訪問網路但是不能訪問宿主機,很詭異,不懂其中原理。
三、Bridged模式(再加一上午)
1、純手動配置ip
2、將虛擬機ip設置成與宿主機真實網卡ip同一網段,並且相同網段和dns網址,具體配置如下:
TYPE="Ethernet"
BOOTPROTO=static
DEFROUTE="yes"
PEERDNS="yes"
PEERROUTES="yes"
IPV4_FAILURE_FATAL="no"
IPV6INIT="yes"
IPV6_AUTOCONF="yes"
IPV6_DEFROUTE="yes"
IPV6_PEERDNS="yes"
IPV6_PEERROUTES="yes"
IPV6_FAILURE_FATAL="no"
IPV6_ADDR_GEN_MODE="stable-privacy"
NAME="ens33"
UUID="c7d8063c-0dc0-4e94-b229-568f0421e678"
DEVICE="ens33"
ONBOOT="yes"
IPADDR="192.168.1.128"
NETMASK=255.255.255.0
GATEWAY=192.168.1.1
DNS1=192.168.1.1
3、重啟下network服務,就可實現宿主機與虛擬機的雙向通信,宿主機可訪問互聯網;
四、最後問題,如何讓虛擬機提供互聯網服務?即,使任何互聯網上的主機可以訪問區域網內的虛擬機
1、設置自己的路由器,將轉發地址和埠映射到虛擬機的ip和埠上即可
2、上述方法沒有經過驗證,不知道三種網路模式是否都支持
五、總結原理,其實經過一番折騰後不難發現:
1、NAT模式和Host-Only模式在區域網內互聯的方式是相同的:
NAT的鏈路:宿主機 <----->Adapter Vmnet8虛擬網卡 <----->Vmnet8虛擬交換機<----->虛擬機虛擬網卡(ens33)<----->虛擬機
Host-Only的鏈路:宿主機<----->Adapter Vmnet1虛擬網卡 <----->Vmnet1虛擬交換機<----->虛擬機虛擬網卡(ens33)<----->虛擬機
2、在連接互聯網方面,NAT模式通過虛擬的NAT服務實現上網,Host-Only模式通過宿主機的真實網卡的網路共享上網
NAT的鏈路:互聯網<----->物理路由器<----->NAT虛擬服務<----->VMnet8虛擬交換機<----->虛擬機虛擬網卡(ens33)<----->虛擬機
Host-Only的鏈路:互聯網<----->物理路由器<----->Adapter Vmnet1虛擬網卡共享宿主機真實網卡的網路<----->VMnet1虛擬交換機<-----> 虛擬機虛擬網卡(ens33)<----->虛擬機
3、至於Bridged模式實際可理解為與宿主機同一區域網內的設備
類似於把宿主機虛擬為一個交換機,所有橋接設置的虛擬機通過VMnet0虛擬交換機連接到這個交換機的一個介面上,宿主機也同樣插在這個 交換機當中。
鏈路:物理路由器<----->VMnet0虛擬交換機與宿主機真實網卡橋接<----->虛擬機虛擬網卡(ens33)<----->虛擬機
(以上屬於個人分析,有待考證,如有錯誤,還望指正)
『伍』 虛擬機的主要網路設置方式 有圖最好
VMWare提供了三種工作模式,它們是bridged(橋接模式)、NAT(網路地址轉換模式)和host-only(主機模式)。要想在網路管理和維護中合理應用它們,你就應該先了解一下這三種工作模式。
bridged(橋接模式)
在這種模式下,VMWare虛擬出來的操作系統就像是區域網中的一台獨立的主機,它可以訪問網內任何一台機器。在橋接模式下,你需要手工為虛擬 系統配置IP地址、子網掩碼,而且還要和宿主機器處於同一網段,這樣虛擬系統才能和宿主機器進行通信。同時,由於這個虛擬系統是區域網中的一個獨立的主機 系統,那麼就可以手工配置它的TCP/IP配置信息,以實現通過區域網的網關或路由器訪問互聯網。
host-only(主機模式)
在某些特殊的網路調試環境中,要求將真實環境和虛擬環境隔離開,這時你就可採用host-only模式。在host-only模式中,所有的虛擬系統是可以相互通信的,但虛擬系統和真實的網路是被隔離開的。
NAT(網路地址轉換模式)
使用NAT模式,就是讓虛擬系統藉助NAT(網路地址轉換)功能,通過宿主機器所在的網路來訪問公網。也就是說,使用NAT模式可以實現在虛擬 系統里訪問互聯網。NAT模式下的虛擬系統的TCP/IP配置信息是由VMnet8(NAT)虛擬網路的DHCP伺服器提供的,無法進行手工修改,因此虛 擬系統也就無法和本區域網中的其他真實主機進行通訊。
如果你想利用VMWare安裝一個新的虛擬系統,在虛擬系統中不用進行任何手工配置就能直接訪問互聯網,建議你採用NAT模式。