如何判断当前服务器是云主机、物理机、虚拟机、docker环境?

0    513    7

Tags:

👉 本文共约2643个字,系统预计阅读时间或需10分钟。

简介

使用ssh连接到服务器后,可以通过如下几种方式来判断连接到的服务器是物理主机、虚拟机、还是云主机,还是docker环境???

容器和虚拟机的区别:容器共享内核,虚拟机独享内核

虚拟机和物理机的区别:虚拟机是软件模拟的完整硬件系统功能的、完全隔离环境的计算机系统。只要模拟的全面,是没有太大差别的。除了性能差异,毕竟软件做了硬件的事。

目前我们经常见到的VPS虚拟化技术有KVM、OpenVZ、XEN、Hyper-V、VMware等。

当拿到shell权限,看到数字和字母随机生成的主机名大概率猜到在容器里了,查看进程,进程数很少,PID为1的进程为业务进程,这也是容器环境的典型特征。当然,以上这两种都是比较主观的判断。

方法1:使用 virt-what

区分虚拟机和物理机的一个方法是使用 virt-what。virt-what 实际上是一个 Shell 脚本。它通过各种启发式方法来识别虚拟化环境类型,可以检测出 QEMU/KVM、VMware、Hyper-V、VirtualBox、OpenVZ/Virtuozzo、Xen、LXC、IBM PowerVM 以及 Parallels 等平台类型。

基本上,可以将其理解为是一个 shell 脚本,可以作为命令安装在大多数 Linux 发行版中。安装命令如下:

如果系统运行在一个物理机上,virt-what 命令将不会返回任何结果;相反,如果是运行在虚拟机上,将会输出虚拟机的一些信息,例如kvm、xen等,如下所示:

如果出现没有结果的情况,大概率是物理机,小概率是不能识别的虚拟化技术。

方法2:dmidecode命令查看

DMI 是桌面管理界面(Desktop Management Interface)的缩写,是几乎所有系统制造商都遵守的标准。DMI 框架用于管理和跟踪桌面、笔记本电脑或服务器计算机中的组件。

由于有了 DMI,我们可以获得有关系统硬件、系统制造商和设备序列号的信息,而使用 dmidecode(DMI Decode)命令,可以获取这些信息。另外,使用 -s system-manufacturer 也可获取制造商的详细信息。

如果是物理机,你会看到机器制造商的名称,比如 Dell,Lenovo,Huawei 等;

如果是虚拟机,你会看到一些类似于 QEMU , innotek Gmbh(for VirtualBox),Bochs,VMware Virtual Platform 等的输出信息。

华为云ECS云主机:

阿里云ECS云主机:

WSL2:

Bochs虚拟技术:

华为的物理机:

方法3:查看根分区的磁盘类型

一般物理机的根分区为/dev/sda2,而云主机的根分区为/dev/vda1,如下:

注意:也有部分云主机的根目录使用的是共享盘,那么磁盘类型也是/dev/sda1,如下:

方法4:查看欢迎语

各个厂商的云主机都配置了欢迎语,即文件/etc/motd,如下:

本人提供Oracle(OCP、OCM)、MySQL(OCP)、PostgreSQL(PGCA、PGCE、PGCM)等数据库的培训和考证业务,私聊QQ646634621或微信dbaup66,谢谢!
AiDBA后续精彩内容已被站长无情隐藏,请输入验证码解锁本文!
验证码:
获取验证码: 请先关注本站微信公众号,然后回复“验证码”,获取验证码。在微信里搜索“AiDBA”或者“dbaup6”或者微信扫描右侧二维码都可以关注本站微信公众号。

标签:

Avatar photo

小麦苗

学习或考证,均可联系麦老师,请加微信db_bao或QQ646634621

您可能还喜欢...

发表回复