实时警报通知:微信告警通知的重要性解析
705
2023-03-07
如何检测Linux Guest VM使用的哪种虚拟化技术
写在前面的话
如果我有一台基于云的虚拟机,并且运行了Ubuntu或CentOS的Linux服务器系统,而这些设备可能是虚拟化的,也可能不是虚拟化的,那我们应该如何去判断这台Linux Guest系统设备使用的是哪种虚拟化技术(VMWARE/ KVM/ XEN/ VirtualBox/ Container/lxc/Hyper-V等等)呢?那我们如何才能识别一台CentOS 7 Linux VPS所使用的虚拟化技术类型呢?
技术分析
我们需要使用virt-what程序(一个Shell脚本)来检测目标设备系统所使用的虚拟化技术类型,它可以打印出每一条关于目标设备虚拟化技术的相关信息。在这篇文章中,我们将介绍如何去判断Linux Guest VM虚拟化技术类型。
判断Linux Guest VM虚拟化技术类型
正如我们刚才说的,我们需要使用virt-what Linux命令来判断一个程序当前是否在一台虚拟机设备上运行。该脚本支持各种虚拟机管理程序,接下来,我们看看如何在不同的Linux发行版系统中安装virt-what。
Debian或Ubuntu Linux安装
首先,运行下列apt命令/apt-get命令:
$ sudo apt-get install virt-what
$ sudo apt-get install virt-what
或者
$ sudo apt install virt-what
$ sudo apt install virt-what
在RHEL/CentOS/Scientific Linux VM中安装virt-what
我们可以使用yum命令完成安装:
$ sudo yum install virt-what
$ sudo yum install virt-what
Fedora Linux VM安装virt-what来检测当前环境是否为虚拟机环境
执行dnf命令:
$ sudo dnf install virt-what
$ sudo dnf install virt-what
Suse/OpenSUSE安装
运行zypper命令:
sudo zypper in virt-what
sudo zypper in virt-what
判断远程服务器是否为虚拟机环境
我们可以直接输入并运行下列命令:
$ $ sudo virt-what xen xen-domU
$ $ sudo virt-what xen xen-domU
输出结果
$ $ sudo virt-what kvm
$ $ sudo virt-what kvm
其他输出结果
$ $ sudo virt-what lxc
$ $ sudo virt-what lxc
下面给出aws反回结果
$ sudo virt-what xen xen-hvm aws
$ sudo virt-what xen xen-hvm aws
其他可能的值
1、hyperv : 这是微软的Hyper-V管理程序;2、parallels : 访客用户正在Parallels虚拟平台(Parallels Desktop、Parallels Server)中运行;3、powervm_lx86 : 访客用户正在IBM powervm lx86 Linux/x86模拟器中运行;4、qemu : 这是使用软件模拟技术的QEMU管理程序;5、virtualpc : 访客用户正在微软VirualPC上运行;6、xen-hvm : 这是一个Xen Guest完全虚拟化平台(HVM);7、uml : 这是一个用户模式Linux(UML)客户机;8、openvz : 访客用户正在OpenVZ或Virtuozzo容器中运行;9、linux_vserver : 此进程正在Linux VServer容器中运行;10、ibm_systemz : 这是一个IBM SystemZ硬件分区系统;
1、hyperv : 这是微软的Hyper-V管理程序;2、parallels : 访客用户正在Parallels虚拟平台(Parallels Desktop、Parallels Server)中运行;3、powervm_lx86 : 访客用户正在IBM powervm lx86 Linux/x86模拟器中运行;4、qemu : 这是使用软件模拟技术的QEMU管理程序;5、virtualpc : 访客用户正在微软VirualPC上运行;6、xen-hvm : 这是一个Xen Guest完全虚拟化平台(HVM);7、uml : 这是一个用户模式Linux(UML)客户机;8、openvz : 访客用户正在OpenVZ或Virtuozzo容器中运行;9、linux_vserver : 此进程正在Linux VServer容器中运行;10、ibm_systemz : 这是一个IBM SystemZ硬件分区系统;
如果没有任何输出结果,那意味着我们的程序可能是在裸机上运行的,或者程序是在一种我们无法检测到的虚拟机系统中运行的。
检测脚本源代码
下面给出的是脚本的源代码:
如何使用dmidecode命令来寻找相同的信息
配合Bash for循环并使用dmidecode命令判断目标虚拟化技术:
for i in system-manufacturer system-product-name do sudo dmidecode -s $i done
for i in system-manufacturer system-product-name do sudo dmidecode -s $i done
样本输出
Red Hat KVM
Red Hat KVM
其他用来判断虚拟化技术的命令
我们还可以使用systemd-detect-virt命令来检测虚拟化环境:
systemd-detect-virt
systemd-detect-virt
资源获取
1、virt-what:【点我获取】
2、Bash for循环:【参考文档】
3、yum命令:【参考文档】
4、apt命令:【参考文档】
5、apt-get命令:【参考文档】
发表评论
暂时没有评论,来抢沙发吧~