status
date
slug
summary
category
tags
icon
password
缘由
在折腾办公室远程访问网络的时候,其中一种方案选择了使用wireguard建立VPN进行连接。但是办公室主机是macos,wireguard在macos上的支持并没有linux那么灵活和易操作(主要是路由转发相关代码,尽管后来也折腾出来了),毕竟现在的linux都基本内核级支持wireguard。所以就想到了在macos上安装一台Ubuntu的虚拟机。其实macos已经安装了Parallels Desktop 17 for Mac 虚拟机,并且也成功安装了win和Ubuntu。但是考虑到他们是桌面级的系统,肯定是很迟性能,而我只是要小小的一个VPN。尽管它也成安装Ubuntu Server,包括或者选择vmware 或virtualbox。但是有没有更轻量的存在,于是发现了——Multipass
官网宣称,只需一个命令即可获得即时Ubuntu虚拟机。它是由Ubuntu运营公司Canonical开发和维护的开源项目,可以在Linux,Windows和MacOS的上安装运行Ubuntu虚拟机(只能安装Ubuntu)。它在Linux上使用KVM,Windows上抵用Hyper-V,MacoS使用Hyperkit,声称会以最小的开销运行虚拟机。
安装
以Macos为例,有两种安装方式。
方式一
使用Homebrew安装
方式二
直接从github release下载安装包文件,或官网最新的地址Download Multipass for MacOS,然后正常安装软件一样安装。
使用
创建虚拟机,并命名为abc
multipass launch --name abc
对abc虚拟机内部执行命令
lsb_release -a
multipass exec abc -- lsb_release -a
除了默认的方式创建虚拟机,还支持使用配置文件,去控制想要创建的虚拟机的内存大小、核心数、硬盘空间等参数,甚至要集成哪些软件,初始化哪些命令。
multipass launch --name efg --disk 2G --mem 256M 18.04
除此之外,也可以通过配置文件初始化内部的一些配置,比如集成环境、运行配置等。更详细的配置说明可参考官网文档。
multipass launch -n efg --cloud-init cloud-config.yaml
其中一个例子就是启动的时候执行命令去修改hosts
常用的命令
关于ssh登录
如果需要远程ssh登录Ubuntu虚拟机的,需要进行配置,默认是无法登录成功的。
首先需要设置root密码,进入内部shell环境后执行
sudo passwd
设置密码,然后切换到root用户su root
去更改ssh连接配置。vim /etc/ssh/sshd_config
修改的内容为如下,有的话就修改没有就增加
最后重启下ssh
service ssh restart
,然后再用item或ssh连接工具访问22端口连接登录。评价
使用下来和正常vps环境下的Ubuntu没啥区别,各项功能都能正常使用。最后wireguard也搭建成功了。不过就该虚拟机的单一性还是有点局限,如果能支持更多linux版本那将会更受欢迎。另外就是说是说轻量,我个人的感受是可能比docker重但比专业虚拟机轻。实际运行,只跑了一个默认Ubuntu虚拟机,表现上看内存吃的比较多,没有对比也不好说轻重。
Multipass进程看着还行。


hyperkit就是前文所说的虚拟化技术进程。这个看起来资源就多了些,但比起IDEA全家桶或是chrome毒瘤,这点内存小巫见大巫。


日常偶尔测试使用或者固定跑服务,应该也还算在合理接受范围内。
以后可以多多学习linux!
参考文章
- 作者:LXX
- 链接:https://lxx.im/article/use-multipass
- 声明:本文采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处。
相关文章