Windows平台下Multipass使用VirtualBox驅動踩坑指南


首先

如果不是特殊要求,windows下建議還是直接用默認的hyperV會簡單很多
至於windows如何開啟hyperV搜下都有,這里便不再贅述
如果懶得折騰,建議還是直接安裝Ubuntu服務端

以下內容基於官方文檔,建議以最新的官方文檔為准

安裝

進入multipass官網選擇windows平台下載
image

安裝的過程中有可以選擇驅動的選項,默認是hyperV,選擇VBox
image

默認添加環境變量
image
剩下的就是修改安裝路徑等此處略過

啟動后cmd里輸入multipass version測試是否安裝成功
image

設置

安裝成功后先不急着起實例
官方文檔
使用管理員權限打開cmd修改multipass驅動
multipass set local.driver=virtualbox
測試是否修改成功
multipass get local.driver
image
起個實例試試,開始的時候可能會慢一點,得等一會
multipass launch -n test1
image
具體的內存cpu等設置見文檔

再多驗證一下
multipass list
image
這時候你會發現實例的IPv4為空,但這並不影響訪問外網,實例默認會有NAT網卡。這里的IPv4指的是實例和宿主機的內網ip。
如果不需要配置內網ip,看到這里就可以結束了。


內網IP設置

首先確保Path配置了vbox的環境變量
image
下載PSTools
查看VBox已有的hostonly接口名稱
PsExec.exe -s $env:VBOX_MSI_INSTALL_PATH\VBoxManage.exe list hostonlyifs
image
一般會有一個默認的名為VirtualBox Host-Only Ethernet Adapter的接口,直接使用這個就行,如果沒有的話也可以自己新建一個
VBoxManage hostonlyif create
詳見文檔
添加hostonly網卡,用到的接口名字必須對應
PsExec.exe -s $env:VBOX_MSI_INSTALL_PATH\VBoxManage.exe modifyvm testUbuntu --nic2 hostonly --hostonlyadapter2 'VirtualBox Host-Only Ethernet Adapter'
--nic2 這個2指的是虛擬機的第2張網卡,--hostonlyadapter2 中的2也是一樣
添加后使用showvminfo 查看虛擬機信息
\PsExec.exe -s $env:VBOX_MSI_INSTALL_PATH\VBoxManage.exe showvminfo 虛擬機名字 |findstr NIC
直接看網卡狀態信息
image
可以看到有兩張網卡,NIC1也就是默認的NAT網卡,NIC2是剛才添加的hostonly網卡,interface也就是接口名字必須和前面查到hostonly接口名字一致!
其他網卡都為未啟用的狀態
*VBox GUI 界面配置hostonly網卡見附4

接着進到實例當中修改網絡配置
multipass shell test1
先用ip link或其他查網卡的命令查一下
image
注意enp038是剛才添加的網卡
Ubuntu在18.04后的網絡配置方法為修改Networkplan的YAML文件
在/etc/netplan/*.yaml 先備份后再對文件進行修改
查下宿主機的vbox網卡
image
再對實例的YAML文件進行添加
image
關閉dhcp4
測試下外網
image
測試內網
image
這里是宿主機ping實例,如果從實例ping宿主機因為防火牆可能ping不通

注意:不要把宿主機的網關加上,否則只能訪問內網!
加上192.168.56.1網關后發現內網可以正常外網ping不通
apt-get update時會報錯"Temporary failure resolving"
找了一圈有說是dns沒加的,嘗試在/etc/resolv.conf中添加8.8.8.8和114.114.114.114 加了之后沒用
最后查看了下路由sudo -n route發現0.0.0.0指向兩個不同的網關
image
刪除/etc/netplan/*.yaml文件中添加的宿主機的網關后重新應用配置文件sudo netplan try sudo netplan apply 后再次查看路由正常,能ping通內外網

具體的Ubuntu網絡配置請自行搜索,這里就不再詳細描述

附加

1

如果在實例中開啟了ufw防火牆,請務必把22端口優先添加的允許規則中,multipass實例默認使用ssh和宿主機通信

2

multipass info命令下展示的實例信息可能不全,如果要看完整信息建議到vbox中查看

3

默認情況下multipass的數據文件目錄在
C:\Windows\System32\config\systemprofile\AppData\Roaming\multipassd
可以通過創建mklink軟連接的形式搬家到其他目錄下,mklink的使用方法推薦下這篇win10下使用mklink命令給C盤軟件搬家

4.前台配置VBox網卡

管理員下執行
& $env:USERPROFILE\Downloads\PSTools\PsExec.exe -s -i $env:VBOX_MSI_INSTALL_PATH\VirtualBox.exe
此時會將運行的實例通過virtualbox圖形頁面展示出來
image
建議先將實例停止在進行網絡配置
multipass stop test1
點擊設置-網絡,此時可以看到默認的NAT網卡,點擊網卡2,點擊啟用並添加hostonly網卡
image


歡迎交流探討!


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM