windows上的 Vmware Workstation 环境搭建
本文的视频版本:https://www.bilibili.com/video/BV1JhLRzyESh
Vmware Workstation 是一款跨平台的桌面级虚拟化软件,可以使用 Vmware 创建虚拟机,我们一般使用 Linux 虚拟机(目前主流的 Linux 发行版是 Ubuntu),可以使用 Vmware 方便的模拟真实的 Linux 环境,基于 Linux 环境进行学习、开发、部署、调试等。
这篇课程我们搭建一套最基础的 Vmware Workstation 环境,包含一台模板虚拟机,教搭建如何克隆模板虚拟机实现立即创建一太崭新可用的虚拟机。
下载 Vmware Workstation
Vmware Workstation 现在是免费非商业使用的,可以直接从官网下载,但是现在从官网下载比较麻烦,需要注册博通账号等。
推荐直接使用我的网盘中保存的软件:
https://www.alipan.com/s/oFNr4mvnHaX 提取码: 8j3s
打开自己 windows 的任务管理器,看虚拟化是否是打开的:
下载 Ubuntu 的 iso 文件
打开 https://mirrors.tuna.tsinghua.edu.cn/ubuntu-releases/ 清华大学开源软件站。
选择你需要的版本:
根据需要选择合适的 iso 镜像文件:
安装 Vmware-Workstation
配置 vmware-workstation 的网络以及 windows 的网络
然后全部点击确定。
还需要配置 vmware 中 DHCP 中的地址范围(这个地址范围要包括以后 vmware 中的所有虚拟机的 ip):
下面修改 windows 的网络配置:
右击后点击"打开网络和 intent 设置 "。
按如上格式修改 IP 信息(地址,网关,DNS 服务器),修改完毕后全部点击确定退出。
创建模板虚拟机
选我们刚刚下载的 iso 镜像文件:
这里我们的虚拟机名称命名为 ubuntu22_template,代表这是一台 ubuntu、版本为 22 的模板虚拟机。这个虚拟机的位置建议是自己创建一个专门存放所有虚拟机数据的一个目录下对应这个虚拟机的子目录。
点击完成后,就创建好了,会自动启动这台虚拟机:
后面是初始化 ubuntu 系统的步骤,所有的都直接使用默认的就可以了。
配置模板虚拟机
配置一台什么都没有的虚拟机,后面直接根据这个模板虚拟机就能克隆出无数的和模板虚拟机一样的、崭新的虚拟机了,非常方便。
配置 root 能远程登录
因为后面我们需要使用 ssh 工具连接到虚拟机来使用我们的虚拟机,不直接在 vmware-workstation 的命令行中使用虚拟机(没有语法提示,没有高亮,字体不能调节),所以我们还需要设置虚拟机能 root 用户远程登陆。
我们之前是没有配置 root 用户的密码的,可以通过如下的命令验证:
sudo grep root /etc/shadow
如果输出中 root 的密码字段为 * 或 !,表示 root 账号未设置密码(锁定状态),如果密码字段是一串哈希值(如 6 6 6…),则说明 root 用户已设置密码。
使用如下命令设置 root 用户的密码:
sudo passwd root
安装 openssh:
sudo apt install openssh-server
修改 openssh 的配置让 root 能远程登录:
sudo vim /etc/ssh/sshd_config
修改如下两个地方:
...
#PermitRootLogin prohibit-password
PermitRootLogin yes # 允许root直接登录
...
#PermitEmptyPasswords no
PermitEmptyPasswords no # 因为设置了root密码,所以需要修改为no
...
重启 ssh 服务:
systemctl restart ssh
安装 ssh 工具
参考博客:https://blog.csdn.net/qq_46028493/article/details/147522102 中 ssh 工具那一章节,选择一个自己喜欢的就好。
这里我们使用 WindTerm。
解压后记将这个固定到开始屏幕,这样点击开始屏幕中的 windTerm 图标就可以打开 windTerm 了:
使用 ssh 连接到虚拟机
使用如下命令查询模板虚拟机的 ip 地址:
sudo ip a
建议 windows 配置下虚拟机主机名到虚拟机 ip 地址的映射,这样就能直接通过虚拟机主机名访问虚拟机了,修改 C:\Windows\System32\drivers\etc
目录下的 hosts 文件(因为权限问题不能修改,建议拷贝一份到桌面,然后修改桌面的这个问题,再拖入 c 盘中覆盖掉原来的 hosts 文件):
192.168.10.70 ubuntu70
测试下是不是能 ping 通,在 windows 的 cmd 中:
ping ubuntu70
看到上面的内容就代表主机名和 ip 的映射关系配置好了。
打开 windTerm,双击 Shell sessions 创建一个新会话:
输入主机名:
设置下 windTerm 的保护密码,避免别人趁你长时间不在电脑旁边使用你的电脑的 windTerm 操作 windTerm 连接的服务器:
使用 root 登录,勾选下次自动登录:
输入用户密码:
连接到服务器成功:
配置模板虚拟机的 ip 地址为静态 ip 以及主机名
上一步我们以及通过 WindTerm 连接到了模板虚拟机,下面都在 WindTerm 中操作。
安装依赖让 ipconfig 能打印出 ip 地址,不安装会提示命令不存在:
apt install net-tools
再输入 ipconfig 命令查看虚拟机的 ip 地址:
上面显示的 ip 地址就是虚拟机的 ip。
使用 WindTerm 就是输入的这个 ip 使用 root 用户和 root 的密码连接到虚拟机。
个人习惯是将虚拟机的主机名中包含 ip 地址,这样看到主机名就知道这个虚拟机的 ip 地址是什么,比如,我们将模板虚拟机的主机名设置为 ubuntu70,就能想到它的 ip 地址是 192.168.10.70,这样就很方便。
修改主机名:
sudo vim /etc/hostname
使用如下命令找到网络接口名称:
sudo ip a
比如,上面找到的网络接口名就是 ens33,这个是要配置到下面的 ethernets 中的。
禁用网络配置覆盖行为:
sudo vim /etc/cloud/cloud.cfg.d/99-disable-network-config.cfg
内容是:
network: {config: disabled}
删除掉现在 /etc/netplan/ 下的 yaml 配置文件。
修改虚拟机的 ip 地址为静态的 ip,并指定网关为之前配置的:
sudo vim /etc/netplan/01-netcfg.yaml
手动输入如下的配置:
network:version: 2renderer: networkdethernets:ens33: #Edit this line according to your network interface name.dhcp4: noaddresses:- 192.168.10.70/24gateway4: 192.168.10.2nameservers:addresses:- 192.168.10.2- 8.8.8.8
:::warning
这里的 ens33 需要改为你查询出来的网络接口名
:::
重启让配置生效。
从模板虚拟机克隆出崭新的虚拟机
关闭我们创建的模板虚拟机,右键关闭后的模板虚拟机:
配置下虚拟机的名称和存储这个虚拟机数据的目录:
克隆完成:
多了一台克隆的虚拟机:
修改 node71 的主机名和 ip 地址:
sudo vim /etc/hostname
network:version: 2renderer: networkdethernets:ens33: #Edit this line according to your network interface name.dhcp4: noaddresses:- 192.168.10.71/24gateway4: 192.168.10.2nameservers:addresses:- 8.8.8.8- 8.8.4.4
重启。
在 windows 中配置 node71 和 ip 的映射,在 cmd 中测试确保 node71 和 ip 的映射是没问题的。
在 ssh 客户端中重新创建一个连接 node71 的会话,用户名和密码都和模板虚拟机一样,查看现在的主机名和 ip 地址,发现主机名是 node71,ip 地址是 192.168.10.71,到这里,我们就从模板虚拟机中完全克隆出一台新的虚拟机 node71 了。