虛擬機不能上網?虛擬機和宿主機不能互通?一文搞定網絡問題
為了學習和使用Linux,多數人選擇了使用虛擬機的方式來安裝Linux系統。這樣我們就可以在windows系統中安裝Linux系統了,其中windows機器系統本身我們稱作宿主機,安裝的虛擬機系統我們簡稱虛擬機。
由于虛擬機提供的幾種網絡方式,要么是虛擬機可以ping通宿主機反之不行,要么是虛擬機之間可以互通但宿主機不能訪問虛擬機,所以在實際應用中多數被兩者間的網絡互通和是否能上網的問題所困擾。
本文將介紹三種網絡配置方式,實現虛擬機和宿主機之間互通并且可以訪問互聯網。首先我宿主機的IP地址為:192.168.1.117。

查看宿主機網絡IP地址
一、直接使用橋接的方式
橋接方式下,不用做太多設置,虛擬機會自動獲取和宿主機同網段的IP,和宿主機網絡中的其他主機處于同等地位,所以虛擬機和宿主機可以互相直接通信,且只要宿主機可以上網,虛擬機即可上網。

設置虛擬機網絡連接方式為橋接
經過上面的網絡設置后,我們進入虛擬機系統,查看IP地址為192.168.1.220,且可以ping通www.baidu.com,可以實現和宿主機互通也可以實現上網。如圖:

虛擬機centos系統中設置網絡IP地址
在宿主機中通過ping命令,測試虛擬機中的ip地址設置是否成功,ping通則說明設置成功。宿主機和虛擬機可以互通!

二、使用網絡地址轉換NAT+端口轉發的方式
使用網絡地址轉換加端口轉發的方式,虛擬機可以直接ping通宿主機,但是宿主機無法直接ping通虛擬機。不過宿主機可以通過類似Xshell的遠程連接軟件,設置相關參數后即可訪問虛擬機。且只要宿主機可以上網,虛擬機即可直接上網。注意是網絡地址轉換NAT,不是NAT網絡。配置如下:

配置虛擬機網絡連接為NAT方式,并設置端口轉發
設置后,虛擬機獲取的IP地址為10.0.2.15。經過測試可以ping通宿主機IP,可以ping通www.baidu.com。

在虛擬機的centos中設置ip地址
在Xshell中的配置端口轉發的相關參數:

xshell中配置端口轉發參數
配置完成后,登陸虛擬機,測試連接訪問情況,效果圖如下:

通過xshell登陸虛擬機centos系統
三、NAT網絡+host-only雙網卡方式
此種雙網卡的方式,結合了NAT可以訪問外網的優點和host-only可以實現虛擬機之間互通且宿主機可以訪問虛擬機的特長,實現了兩者的互通且可以上網的功能。具體配置如下:
需要先配置VirtualBox的全局變量,通過“管理”-->“全局設定”選項配置NAT和host-only的雙網卡。
1、配置NAT網卡,我們使用IP地址為10.0.2.X的網段,記得開啟DHCP服務。

虛擬機中設置網絡連接方式為nat+host only
2、配置host-only網卡,由于host-only方式會在本機網絡中新增一塊網卡,這里我們設置其IP地址段為192.168.65.X,其中此塊網卡IP地址為192.168.65.1,并且開啟DHCP服務。

配置虛擬機的網絡連接host only
虛擬機中DHCP服務器配置如下:

虛擬機中配置dhcp服務
全局配置完畢后,需要對虛擬機進行雙網卡配置,分別為虛擬機添加NAT和host-only網卡。先配置nat網卡1:

虛擬機中配置網卡1為NAT
再配置網卡2為host-only:

虛擬機中配置網卡2為host only
至此雙網卡配置完畢,我們可以打開虛擬機進行網絡驗證。
首先看到虛擬機中的網卡變成了兩塊:eth0(10.0.2.8)和eth1(192.168.65.2)。

虛擬機centos系統中查看網卡
虛擬機ping通宿主機192.168.1.117,虛擬機ping通www.baidu.com。

虛擬機centos系統中ping命令測試互通
宿主機可以ping通虛擬機的192.168.65.2的地址:

宿主機中通過ping命令測試互通
以上就是三種可以實現宿主機和虛擬機互相訪問通信的且保證可以上網的實現,大家可以根據自己的需要選擇合適的方式。