0 前言
以前大学用的6代 i5 闲置在家吃灰尘,想着物尽其用的准则,想着搞个虚拟机来折腾下 linux 环境。于是装置 Multipass 来玩玩(其实是我当初用的电脑只有 16G 内存不够跑几个虚拟机实例┑( ̄  ̄)┍)。
对于 Mutlipass
Multipass 是 Ubuntu 官网推广的一个反对多个虚拟机实例运行的平台,非常适合 win 用户学习和应用 linux 环境。
官网地址:https://multipass.run/
1 在 Hyper-v 管理器增加虚构网卡
在装置 Multipass 时,windows 会主动开启 hyper-v 的性能(毕竟 windows 跑虚拟机依赖这个性能)。
以 win10 为例,须要在 “虚构交换机治理” -> 抉择“内部”类型的虚构交换机
这里我创立的虚构交换机名称为ext-switch
2 查看本机 ip
在 cmd 中,输出 ipconfig
,查看本机 ipv4 地址,以本机为例, ipv4 地址为 10.0.0.18
3 创立虚拟机
这里以创立 1 cpu/4G ram/20G disk 为例:
multipass launch -c 1 -m 4G -d 20G -n my-instance-1
稍等片刻,就创立和启动好名为 my-instance-1
的实例
4 向虚拟机增加网卡
4.1 在 hyper-v 给虚拟机调配虚拟机网卡
抉择咱们刚刚创立好的虚拟机,点击“设置”:
点击“增加硬件”,抉择“网络适配器”
而后抉择咱们后面创立好名为 ext-switch
的网络适配器
4.2 进入虚拟机:
multipass shell my-instance-1
4.3 批改 netplan 文件
netplan 是 ubuntu 保护网卡信息的中央,配置文件地址在 /etc/netplan/50-cloud-init.yaml
批改文件信息:
sudo vi /etc/netplan/50-cloud-init.yaml
批改后的文件内容信息:
# This file is generated from information provided by the datasource. Changes# to it will not persist across an instance reboot. To disable cloud-init's# network configuration capabilities, write a file# /etc/cloud/cloud.cfg.d/99-disable-network-config.cfg with the following:# network: {config: disabled}network: ethernets: eth0: dhcp4: true match: macaddress: 52:54:00:51:78:3a set-name: eth0 eth1: addresses: - 10.0.0.102/24 nameservers: addresses: [10.0.0.1] routes: - to: default via: 10.0.0.1 version: 2
这里新建了一个名为 eth1
的网卡信息,蕴含了 addresses
,nameserverss
和 routes
的信息。
addresses
项为 ipv4 的地址列表,因为本机的 ip 地址为10.0.0.18
,故咱们这里的地址必须为10.0.0.{虚拟机须要应用局域网未应用过的ipv4地址}/24
,我这里为10.0.0.102/24
。因为地址应用了 cidr 来示意,故子网掩码是255.255.255.0
。nameservers
则是 dns 服务器,通常都是咱们连贯局域网的路由器地址,这里是[10.0.0.1]
routes
则是网关,网关也是间接走局域网路由器的地址,这里是10.0.0.1
。
4.3 利用批改后的 netplan
sudo netplan --debug apply
输出上述命令来利用批改后的 netplan 配置信息,其中 --debug
参数不便咱们查看利用过程中有没有报错(毕竟 shell 外面手写配置信息容易翻车,特地是 windows 自带的 cmd ┑( ̄  ̄)┍)
4.4 验证是否失效
退出以后 cmd 的会话,而后从新关上 cmd ,输出 multipass shell my-instance-1
从新进入实例,这时咱们看到新建的网卡曾经可能应用了(在 IPv4 address for eth1 的中央)
5 局域网拜访
笔者以后应用的 ubuntu 版本为 ubuntu 22.04.2 LTS
版本,曾经内置了 openssh
,故不须要另外装置 openssh
。
5.1 批改 ssh 配置信息
ssh 配置信息目录在 /etc/ssh/sshd_config
中,默认状况下,ssh 是不反对明码登录的,这里要批改以下信息以反对其余机器通过明码登录该节点:
# 在 vi 命令中,能够通过 :/PasswordAuthentication 疾速搜寻到该行配置PasswordAuthentication yes# 容许 root 用户登录PermitRootLogin yes
批改结束后,重启 ssh 服务:
sudo service ssh restart
5.2 批改以后登录用户的明码
通过 multipass 创立的实例,是没有指定明码的,所以咱们要重置明码,我这里的用户为 ubuntu
:
sudo passwd ubuntu
5.3 验证后果
通过其余机器 ssh 登录(这里应用的 termius)
6 参考博客/论坛
- 为Multipass的Ubuntu实例增加固定IP
- netplan generate:
gateway4
has been deprecated, use default routes instead - canonical/netplan github 例子
- ubuntu开启ssh明码登陆