前言
這玩意說白了就是一個(gè)輕量級(jí)的虛擬機(jī)脑蠕,允許在Win中啟動(dòng)一個(gè)完整的虛擬機(jī)皿曲,比VM操作更加的友善更加的Linux摩疑,底層用的是Hyper-V。雖然WIndows中有WSL也挺好用的鞋怀,但是如果需要測(cè)試一些比較敏感的Shell腳本或者操作比較底層的庫的話双泪,這玩意玩壞了就重建一個(gè)就行了。
我個(gè)人比較喜歡用這個(gè)系統(tǒng)去構(gòu)建離線的deb的包密似,或者去測(cè)試一些腳本焙矛,還有運(yùn)行一些服務(wù),這樣子我只要將這個(gè)虛擬機(jī)關(guān)閉我這個(gè)服務(wù)就結(jié)束了残腌,不會(huì)影響我的Win系統(tǒng)村斟,雖然WSL也能實(shí)現(xiàn)這個(gè)需求,但是我用下來發(fā)現(xiàn)他們兩的使用場(chǎng)景不太一樣抛猫,這個(gè)玩意適合運(yùn)行一些輔助服務(wù)蟆盹,WSL更加適合開發(fā)使用。Docker-Desktop也能運(yùn)行服務(wù)的說闺金,但是總的來說這里面運(yùn)行的服務(wù)會(huì)更加的穩(wěn)定逾滥,不會(huì)受到Win的影響,長(zhǎng)時(shí)間運(yùn)行的服務(wù)我更喜歡放這個(gè)里面運(yùn)行败匹。
總的來說存在即合理寨昙,和WSL有不同的使用場(chǎng)景,看個(gè)人需要掀亩。
安裝
開啟 Hyper-V
控制面板->程序->啟用或關(guān)閉Windows功能->Hyper-V
將這個(gè)選項(xiàng)勾選好舔哪,然后點(diǎn)擊確認(rèn),安裝提示操作即可槽棍,開啟之后需要重啟電腦捉蚤。
安裝 Multipass
Multipass下載地址
下載完畢之后雙擊安裝一直下一步就安裝完畢了抬驴。
裝完了需要將存儲(chǔ)地址改一下,如果只有C盤就當(dāng)我沒說這個(gè)缆巧,如果放C盤怎爵,久了會(huì)影響Win的運(yùn)行速度
mkdir "D:\Multipass"
Set-ItemProperty -Path "HKLM:System\CurrentControlSet\Control\Session Manager\Environment" -Name MULTIPASS_STORAGE -Value
安裝完畢之后要重啟一下電腦,否則存儲(chǔ)位置不會(huì)變V鸦取!姆蘸!
創(chuàng)建網(wǎng)橋供虛擬機(jī)使用(固定IP用)
這一步如果不指定一個(gè)網(wǎng)卡的話一些持久運(yùn)行的虛擬機(jī)就會(huì)出現(xiàn)每次啟動(dòng)IP和網(wǎng)關(guān)地址都會(huì)變的問題
我建議是指定一個(gè)墩莫,后期會(huì)比較方便。
# 創(chuàng)建虛擬機(jī)的網(wǎng)絡(luò)
New-VMSwitch -SwitchName "vmnet" -SwitchType Internal
# 創(chuàng)建虛擬網(wǎng)卡
New-NetIPAddress -IPAddress "158.50.0.1" -PrefixLength 24 -InterfaceAlias "vEthernet (vmnet)"
# 開啟NAT
New-NetNat -Name vmnet -InternalIPInterfaceAddressPrefix 158.50.0.0/24
新建虛擬機(jī)
# 創(chuàng)建一個(gè) 4核心 4G內(nèi)存 10G存儲(chǔ)的虛擬機(jī) 并將虛擬網(wǎng)絡(luò) vmnet作為第二個(gè)網(wǎng)卡
multipass launch --name vm1 --cpus 4 --memory 4G --disk 20G --network name=vmnet,mode=manual
進(jìn)入虛擬機(jī)中
執(zhí)行如下的命令就會(huì)進(jìn)入虛擬機(jī)的命令行中
multipass shell vm1
配置虛擬機(jī)固定IP
啟動(dòng)的就是一個(gè)完整的Ubuntu虛擬機(jī)逞敷,可以直接使用Ubuntu的方式進(jìn)行IP固定
打開配置文件狂秦,并添加如下的配置即可
配置文件地址為 sudo vi /etc/netplan/50-cloud-init.yaml
eth1: # 網(wǎng)卡名稱,這是固定的
addresses: [158.50.0.2/24] # IP地址推捐,連接的網(wǎng)卡同段即可裂问,可以選擇0.2~0.253之間
gateway4: 158.50.0.1 # 網(wǎng)卡的網(wǎng)關(guān)
nameservers:
addresses: [114.114.114.114] # DNS地址
修改完畢應(yīng)該是這樣的
然后執(zhí)行網(wǎng)絡(luò)重啟指令可以
sudo netplan apply
宿主機(jī)端口轉(zhuǎn)發(fā)
虛擬機(jī)安裝之后所有的服務(wù)和端口都只能在本機(jī)進(jìn)行訪問,如果想要外部也訪問這個(gè)端口提供的服務(wù)牛柒,需要將Win的端口做一個(gè)轉(zhuǎn)發(fā)
# 開啟WIndows的防火墻
New-NetFirewallRule -DisplayName "Allow TCP 80" -Direction Inbound -LocalPort 80 -Protocol TCP -Action Allow
# 端口轉(zhuǎn)發(fā)
netsh interface portproxy add v4tov4 listenaddress=0.0.0.0 listenport=80 connectaddress=158.50.0.2 connectport=80
常用指令集
multipass shell <vm_name> # 進(jìn)入某個(gè)虛擬機(jī)
multipass stop <vm_name> # 停止某個(gè)虛擬機(jī)
multipass start <vm_name> # 啟動(dòng)虛擬機(jī)
multipass restart <vm_name> # 重啟虛擬機(jī)
multipass list # 列出虛擬機(jī)列表
multipass delete <vm_name> # 清理已經(jīng)刪除的虛擬機(jī)
multipass purge # 清理已經(jīng)刪除的虛擬機(jī)
multipass --help # 查看指令幫助