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密码登陆
服务器托管,北京服务器托管,服务器租用 http://www.fwqtg.net
目录 第一步、选择搭建平台WordPress 第二步、选域名 1)域名在哪买? 2)域名怎么选? 3)以阿里云为例,讲解怎么买域名 第三步、选择服务器 第四步、申请主机、安装WordPress 第五步、选择WordPress模板 1. Blocksy(免费) …