使用solusvm开单ip nat小鸡,是真的麻烦。而如果不出售的话,VMware可以实现相同需求。

1.这里不是VMware安装CentOS7,而是CentOS7安装VMware,需要注意这方面的区别。
2.我写这个教程用的VMware Workstation 15 ,而不是VMware Workstation 16,是因为我写这篇教程的时候VMware Workstation 16激活码网上还没有,15也够用了吧。
3.你可以在vmware安装的centos嵌套虚拟化安装使用vmware,但无法在hyper-v安装的centos嵌套虚拟化安装使用vmware
Hyper-V虚拟机内不支持Hyper-V以外的虚拟化应用程序,强行使用可能会出现问题。这包括需要硬件虚拟化扩展的所有软件。
4.实体机(独服)上的centos安装之前要确认是否支持虚拟化,vmware虚拟机内的centos需要使用lsmod查看是否有kvm来确定是否支持虚拟化。

准备

1.系统安装好centos7的桌面以及vnc,vnc配置好显示的分辨率,为了方便我就用CentOS-7-x86_64-LiveKDE-2003中科大镜像吧。centos7的系统根目录请拉到最大,也就是按照centos7默认配置安装到硬盘。
我之所以不用纯字符界面的centos7而是用livekde的版本,是因为纯字符界面安装完,通过Windows 的VMware无法连接,查看并没有生成虚拟vmnet网卡,但安装了图形化界面的测试主机,图形化界面安装时就正常。
因为我用的服务器不是我自己的,为了完成任务的话我还是尽可能减少麻烦别人吧,因此用最稳妥的方法。
以上是我查资料的时候原作者说的,但实际上我安装的时候没这个问题,因此可以不用桌面版的centos.
2.准备好VMware15的linux安装包,如果不知道在哪找的可以点击下载
以下内容非必要内容,主要是我想备注下怎么用CentOS 7 LiveKDE的vnc
4.CentOS 7 LiveKDE安装的时候最开始不会先进安装界面,需要从这里进入,点击安装才会进入centos的安装界面。接下来就是centos7普通的安装界面了。
centos7 livekde install安装
3.CentOS 7 LiveKDE自带了vnc服务端,叫Krfb,直接用即可。
4.你可以不用桌面端的centos7,我也在纯字符版centos测试确认可行。

安装nat软件

说实话iptables是最好的,但我现在用起来最舒服的就是appnode了,为了我自己用的舒服的话,我还是用appnode的端口映射吧。你也可以用逗逼的iptables脚本。
安装appnode的控制中心和受控端即可。

安装VMware Workstation 15

用sftp、直接下载的方式将VMware Workstation 15安装包放到centos7内

安装环境

yum install gcc gcc-c++ kernel-devel 
yum groupinstall "Development tools"
yum install kernel-devel
yum install elfutils-libelf-devel

安装elfutils-libelf-devel以便于正常构建 VMware 内核模块
使用rpm -qa | grep kernel-headers查找内核,如果找不到的话就使用yum install kernel-headers安装
使用

yum -y install perl gcc kernel-devel libX11 libXinerama libXcursor libXtst

保证必须的环境

开始安装

给予权限:

sudo su
chmod +x VMware-Workstation-Full-15.5.6-16341506.x86_64.bundle

可以使用的key

YG5H2-ANZ0H-M8ERY-TXZZZ-YKRV8
UG5J2-0ME12-M89WY-NPWXX-WQH88
UA5DR-2ZD4H-089FY-6YQ5T-YPRX6
GA590-86Y05-4806Y-X4PEE-ZV8E0
ZF582-0NW5N-H8D2P-0XZEE-Z22VA
YA18K-0WY8P-H85DY-L4NZG-X7RAD

执行下面的命令安装

sh VMware-Workstation-Full-15.5.6-16341506.x86_64.bundle --console 

--console的含义是使您可以使用终端进行安装。
安装完成后会自启动
1.安装的时候会提示用户协议,按q,然后使用yes即可同意
2.按需选择,前两问是询问是否自动更新和加入客户改善计划,我是填的no

安装完成后,使用ps -aux | grep vmware查看是否正常启动

[root@localhost ~]# ps -aux | grep vmware
root      15750  0.0  0.0  15176  1356 ?        Ss   16:33   0:00 /usr/bin/vmware-usbarbitrator
root      17171  2.3  0.7 1183684 63584 ?       Sl   16:33   0:04 /usr/lib/vmware/bin/vmware-hostd -a /etc/vmware/hostd/config.xml
root      17397  0.0  0.0  21276   348 ?        Ss   16:34   0:00 /usr/bin/vmnet-dhcpd -s 6 -cf /etc/vmware/vmnet1/dhcpd/dhcpd.conf -lf /etc/vmware/vmnet1/dhcpd/dhcpd.leases -pf /var/run/vmnet-dhcpd-vmnet1.pid vmnet1
root      17401  0.0  0.0  14012  1364 ?        S    16:34   0:00 /usr/bin/vmnet-natd -s 6 -m /etc/vmware/vmnet8/nat.mac -c /etc/vmware/vmnet8/nat/nat.conf
root      17409  0.0  0.0  21276   344 ?        Ss   16:34   0:00 /usr/bin/vmnet-dhcpd -s 6 -cf /etc/vmware/vmnet8/dhcpd/dhcpd.conf -lf /etc/vmware/vmnet8/dhcpd/dhcpd.leases -pf /var/run/vmnet-dhcpd-vmnet8.pid vmnet8
root      17425  0.0  0.0  16804   868 ?        Ss   16:34   0:00 /usr/sbin/vmware-authdlauncher
root      17467  0.0  0.0 112828   976 pts/0    S+   16:37   0:00 grep --color=auto vmware

然后重启母鸡。

使用

在Windows的VMware Workstation客户端使用连接远程服务器
服务器名称:填入ip:端口,例如1.1.1.1:4443
用户名和密码为你母鸡拥有vmware的用户名和密码,例如root。
centos里跑centos

嵌套虚拟化

由于我需要在vm内安装idv/vdi,因此需要嵌套虚拟化。
进入终端
基于 Intel 的处理器运行以下命令:

[root@kvm-hypervisor ~]# cat /sys/module/kvm_intel/parameters/nested
N

基于 AMD 的处理器运行以下命令:

[root@kvm-hypervisor ~]# cat /sys/module/kvm_amd/parameters/nested
N

上述命令输出 N 表示嵌套虚拟化是禁用的。如果我们得到的输出是 Y 则表示在您的宿主机已启用嵌套虚拟化。

现在启用嵌套虚拟化,使用以下内容创建一个文件名为 /etc/modprobe.d/kvm-nested.conf 的文件:

[root@kvm-hypervisor ~]# vi /etc/modprobe.d/kvm-nested.conf
options kvm-intel nested=1
options kvm-intel enable_shadow_vmcs=1
options kvm-intel enable_apicv=1
options kvm-intel ept=1

保存并退出文件。

现在移除 kvm_intel 模块然后通过 modprobe 命令添加同样的模块。在移除模块之前,确保虚拟机已关机,否则我们会得到像 “modprobe: FATAL: Module kvm_intel is in use” 这样的错误信息。

[root@kvm-hypervisor ~]# modprobe -r kvm_intel
[root@kvm-hypervisor ~]# modprobe -a kvm_intel

现在验证嵌套虚拟化功能是否启用。

[root@kvm-hypervisor ~]# cat /sys/module/kvm_intel/parameters/nested
Y

重启服务器,再执行一次看看。
是Y则说明嵌套虚拟化成功
为了验证是否真的开启了嵌套虚拟化,建议创建个虚拟机,然后在虚拟机内查看:
执行命令:

cat /proc/cpuinfo |grep vmx

如果有输出,则说明CPU支持虚拟化技术。

--------> svm - Secure virtual machine, AMD的虚拟化技术AMD-V

--------> vmx - Intel的虚拟化技术Intel-VT

然后执行命令:

lsmod |grep kvm

可以对比以下结果:

未开启

kvm 554609 0

irqbypass 13503 1 kvm

已开启

kvm_intel 170181 0

kvm 554609 1 kvm_intel

irqbypass 13503 1 kvm

如果没有开启的话,先注意下创建虚拟机的时候开启了CPU嵌套虚拟化了吗,然后再看看上文配置是否正确。
centos-vmware-server嵌套虚拟化

卸载

使用vmware-installer -u vmware-workstation即可卸载。


参考:
CentOS 7 安装VMware Workstation 15
VMware Workstation Pro Product Documentation
How to Install VMware Workstation Pro 15 on Linux Systems
Install VMware Workstation Pro 15 on CentOS 8
Run Hyper-V in a Virtual Machine with Nested Virtualization
在 Centos7 的KVM上启用嵌套虚拟化
如何查看linux是否打开虚拟化

最后修改:2021 年 02 月 10 日 03 : 57 PM