4. 虚拟机基础配置:配置网络、安装SSH服务、设置共享文件夹与换源

好,虚拟机装好了,系统也跑起来了。但说实话,这时候的虚拟机就像个刚出生的婴儿——啥也不会,啥也干不了。你得给它配上网,让它能跟外界交流;你得给它装个SSH,方便你远程操作;你还得让它能跟宿主机共享文件,不然每次传个代码都要U盘拷来拷去,那也太原始了。

我个人习惯,拿到一台新虚拟机,第一件事就是把这四样东西搞定。不然你后面编译鸿蒙源码的时候,会发现自己寸步难行。好,咱们一个一个来。

4.1 配置网络:让虚拟机连上互联网

网络配置是基础中的基础。没有网络,你连apt-get都用不了,更别说下载鸿蒙源码了。

VirtualBox默认提供了几种网络模式,我推荐你用网络地址转换(NAT)仅主机(Host-Only)的组合。为什么?NAT让虚拟机可以访问外网,Host-Only让宿主机可以访问虚拟机。两全其美。

配置步骤:

  1. 在VirtualBox中选中你的虚拟机,点击「设置」→「网络」
  2. 网卡1:启用「网络地址转换(NAT)」,用于访问互联网
  3. 网卡2:启用「仅主机(Host-Only)」,用于宿主机与虚拟机通信
  4. 启动虚拟机,进入Ubuntu系统

进系统后,检查一下网络状态。打开终端,输入:

ip a

你会看到两个网络接口:一个叫enp0s3(NAT),一个叫enp0s8(Host-Only)。如果都有IP地址,说明配置成功了。

小技巧:如果发现没有IP,可以试试 sudo dhclient enp0s8 手动获取IP。我在项目中遇到过好几次,虚拟机重启后Host-Only网卡拿不到IP,跑一下这个命令就好了。

然后测试一下能不能上网:

ping -c 4 8.8.8.8

能通?好,网络搞定了。

4.2 安装SSH服务:远程操作的门

为什么要装SSH?你想想看,每次操作虚拟机都要打开VirtualBox的窗口,鼠标还要在宿主机和虚拟机之间切换,多麻烦。装了SSH,你就可以用终端工具(比如MobaXterm、Xshell)直接连上去,复制粘贴都方便得多。

安装SSH服务其实就一行命令:

sudo apt-get update
sudo apt-get install -y openssh-server

装完之后,检查一下服务状态:

sudo systemctl status ssh

如果显示active (running),说明SSH服务已经跑起来了。嗯,这里要注意,Ubuntu默认是不允许root用户通过SSH登录的。我个人习惯用普通用户登录,需要root权限时再sudo,这样更安全。

如果你想修改SSH配置,比如改端口号或者允许root登录,可以编辑这个文件:

sudo vim /etc/ssh/sshd_config

改完之后记得重启服务:

sudo systemctl restart ssh

避坑指南:我曾经在配置SSH时忘了开防火墙端口,结果怎么连都连不上。如果你也遇到这种情况,检查一下:sudo ufw allow 22。当然,如果你改了端口号,记得把22换成你设的端口。

现在,你可以在宿主机上用SSH客户端连接虚拟机了。IP地址就用刚才ip a看到的Host-Only网卡IP。比如:

ssh username@192.168.56.101

连上了?恭喜,你已经可以远程操作了。

4.3 设置共享文件夹:宿主机与虚拟机的桥梁

编译鸿蒙源码需要下载大量文件,你总不能在虚拟机里用浏览器慢慢下吧?更高效的做法是:在宿主机上下载好,然后通过共享文件夹传给虚拟机。

设置共享文件夹分两步:先在VirtualBox里配置,再在虚拟机里挂载。

第一步:VirtualBox配置

  1. 选中虚拟机,点击「设置」→「共享文件夹」
  2. 点击右侧的「+」号,添加一个共享文件夹
  3. 选择宿主机上的一个目录(比如 D:\鸿蒙共享
  4. 勾选「自动挂载」和「固定分配」

第二步:虚拟机内挂载

启动虚拟机,安装VirtualBox增强功能:

sudo apt-get install -y virtualbox-guest-utils

然后重启虚拟机。重启后,共享文件夹会自动挂载到 /media/sf_共享文件夹名 下。

个人经验:如果你发现挂载后没有读写权限,那是因为你的用户不在vboxsf组里。执行这个命令:sudo usermod -aG vboxsf $USER,然后注销重新登录就好了。我刚开始用共享文件夹时就被这个坑过,文件能看到但就是写不进去,折腾了半天才发现是权限问题。

现在,你可以在宿主机和虚拟机之间自由地传文件了。下载好的鸿蒙源码压缩包,直接扔进共享文件夹,虚拟机里就能用。

4.4 换源:让软件下载飞起来

Ubuntu默认的软件源在国外,下载速度慢得让人抓狂。你想想看,apt-get install一个几百兆的包,等它下载完,黄花菜都凉了。所以,换源是必须的。

国内有很多镜像源可以选择,比如清华源、阿里源、中科大源。我个人习惯用清华源,稳定且更新及时。

换源的操作很简单,就是修改/etc/apt/sources.list文件。先备份原文件:

sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak

然后编辑它:

sudo vim /etc/apt/sources.list

把里面的内容全部替换成清华源。以Ubuntu 20.04为例:

deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-updates main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-backports main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-security main restricted universe multiverse

保存退出后,更新一下软件列表:

sudo apt-get update

你会发现,下载速度从几十KB/s飙到了几MB/s。这才是该有的速度嘛。

换源前后对比:

项目 换源前 换源后
apt-get update耗时 约3-5分钟 约10-20秒
下载速度 50-100 KB/s 2-10 MB/s
稳定性 经常超时 稳定连接

注意:不同版本的Ubuntu对应的源不一样。比如Ubuntu 22.04的代号是jammy,20.04是focal。千万别搞混了,否则apt-get会报错。我见过有人把20.04的源配到22.04上,结果一堆依赖问题,最后只能重装系统。

4.5 本章知识体系

好,到这为止,虚拟机的四个基础配置就全部完成了。我把它们的关系画了张图,方便你理解:

虚拟机基础配置 配置网络 安装SSH服务 共享文件夹 换源 NAT + Host-Only openssh-server VirtualBox增强功能 清华源 / 阿里源

这四个配置环环相扣。网络是基础,SSH是工具,共享文件夹是桥梁,换源是加速器。少了任何一个,你后面编译鸿蒙源码时都会遇到麻烦。

我个人建议,把这四个步骤写成脚本,以后装新虚拟机时直接跑一遍,省时省力。毕竟,好记性不如烂笔头嘛。


专注资料整理