原文:https://zhuanlan.zhihu.com/p/458822186
----------------
近期在使用VirtualBox的時候遇到這樣的場景,我們需要讓宿主機可以訪問虛擬機內部的服務,並且虛擬機可以上網。VirtualBox默認的網絡方式是Nat網絡地址轉換,虛擬機可以直接上網但是宿主機卻無法訪問虛擬機的服務。
四種網絡類型
1、NAT 網絡地址轉換模式(NAT,Network Address Translation) 2、Bridged Adapter 橋接模式 3、Internal 內部網絡模式 4、Host-only Adapter
主機模式VMWare中有三種,其實他跟VMWare 的網絡連接方式都是一樣概念,只是比VMWare多了Internal方式。要讓自己(或別人)理解深刻,方法就是做比較和打比方,比較之間的不同和相同,拿熟知的事物打比方。先來一張圖,通過這張圖就很容易看出這4種方式的區別:
解決方案
我們可以使用雙網卡的配置來完成這個需求。
首先將網卡1設置爲僅主機(Host-Only)網絡
如果沒有這個選項,那麼點擊管理,然後點擊主機網絡管理器,點擊創建新建一個host-only網絡即可
然後啓用網卡2,將網卡2設置爲網絡地址轉換NAT
然後啓動ubuntu,命令行中輸入ip a
查看網卡,由圖中我們可以看到已經有兩張網卡:enp0s3和enp0s8
我們在/etc/netplan/文件夾下新建一個網卡配置文件netcfg.yaml
cd /etc/netplan/
vim netcfg.yaml
然後寫上如下內容:
network:
version: 2
renderer: networkd
ethernets:
enp0s3: //對應網卡名稱,這個是host-only網絡
addresses:
- 192.168.56.101/24 // 我們給虛擬機分配的內網固定靜態ip地址
dhcp4: no
enp0s8: // 這個是nat地址轉換網絡
addresses: []
dhcp4: true
然後保存,使用以下命令讓配置生效:
sudo netplan generate
sudo netplan apply
這個時候配置應該生效了,可以ping一下我們給虛擬機配置的ip看看是否可ping通
如果ping不通,可以嘗試重啓試一下。
我們在虛擬機內部ping一下百度,驗證是否可以上網
虛擬主機內部我安裝了寶塔,所以接下來嘗試訪問寶塔的端口看是否正常
ok,至此已配置完成。
本文參考:https://www.jianshu.com/p/cc6ed627b5d4
https://blog.csdn.net/qq_38505969/article/details/110231506
https://www.jianshu.com/p/6a2cec8de3f1