当前位置:首页 > CN2资讯 > 正文内容

SSH后判断当前服务器是云主机、物理机、虚拟机、docker环境

1天前CN2资讯

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

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

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

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

方法1:使用 virt-what

区分虚拟机和物理机的另外一个方法是使用 virt-what

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

sudo apt install virt-what yum install -y virt-what

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

-- 虚拟机 [root@lhrdb ~]# virt-what kvm [root@lhrdb ~]# -- 使用了xen作为虚拟化,并且使用xen的hvm虚拟化方式 [root@xxx ~]$ virt-what xen xen-hvm -- 用的是Windows的hyperv虚拟化机器 [root@xxx ~]$ virt-what hyperv -- WSL2 [root@lhrxxt ~]# virt-what hyperv lxc -- 物理机 [root@mdw2 ~]# virt-what [root@mdw2 ~]#

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

方法2:dmidecode命令查看

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

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

dmidecode -t 1 dmidecode -s system-product-name dmidecode -s system-Manufacturer PowerEdge R730 # 这个代表物理机 SYS-4028GR-TR # 这个代表物理机 Dell Inc. # 这个代表物理机 VMware Virtual Platform # 这个代表虚拟机 Bochs # 这个代表虚拟机 QEMU # 这个代表虚拟机 OpenStack Nova # 这个代表华为云云主机 Alibaba Cloud ECS # 这个代表阿里云云主机

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

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

华为云ECS云主机:

[root@eas-ora ~]# dmidecode -t 1 # dmidecode 3.2 Getting SMBIOS data from sysfs. SMBIOS 2.8 present. Handle 0x0100, DMI type 1, 27 bytes System Information Manufacturer: OpenStack Foundation Product Name: OpenStack Nova Version: 13.2.1-20210707213230_d1da3e2 Serial Number: 88f22f46-0843-4ccd-afe9-2929c08e7292 UUID: 88f22f46-0843-4ccd-afe9-2929c08e7292 Wake-up Type: Power Switch SKU Number: Not Specified Family: Virtual Machine [root@ecs-9b83 ~]# dmidecode -t 1 # dmidecode 3.2 Getting SMBIOS data from sysfs. SMBIOS 2.8 present. Handle 0x0100, DMI type 1, 27 bytes System Information Manufacturer: Huawei Cloud Product Name: c7.2xlarge.2 Version: 13.2.1-20220808115737_bd245dd Serial Number: 56207974-6690-4174-97fa-5f45250dad5d UUID: 56207974-6690-4174-97fa-5f45250dad5d Wake-up Type: Power Switch SKU Number: Not Specified Family: Virtual Machine [root@ecs-9b83 ~]# dmidecode -s system-Manufacturer Huawei Cloud

阿里云ECS云主机:

[root@xmmup ~]# dmidecode -t 1 # dmidecode 3.2 Getting SMBIOS data from sysfs. SMBIOS 2.8 present. Handle 0x0100, DMI type 1, 27 bytes System Information Manufacturer: Alibaba Cloud Product Name: Alibaba Cloud ECS Version: pc-i440fx-2.1 Serial Number: da419577-4e99-4c00-90f2-d2ef8cbb8571 UUID: da419577-4e99-4c00-90f2-d2ef8cbb8571 Wake-up Type: Power Switch SKU Number: Not Specified Family: Not Specified

WSL2:

[root@lhrxxt ~]# dmidecode -t 1 # dmidecode 3.2 Scanning /dev/mem for entry point. # No SMBIOS nor DMI entry point found, sorry. [root@lhrxxt ~]#

Bochs虚拟技术:

[root@HF ~]# dmidecode -t 1 # dmidecode 3.2 Getting SMBIOS data from sysfs. SMBIOS 2.8 present. Handle 0x0100, DMI type 1, 27 bytes System Information Manufacturer: Bochs Product Name: Bochs Version: pc-i440fx-2.5 Serial Number: Not Specified UUID: Not Settable Wake-up Type: Power Switch SKU Number: Not Specified Family: Not Specified

华为的物理机:

[root@lhrxxt soft]# virt-what [root@lhrxxt soft]# [root@lhrxxt soft]# [root@lhrxxt soft]# [root@lhrxxt soft]# dmidecode -t 1 # dmidecode 3.1 Getting SMBIOS data from sysfs. SMBIOS 3.0.0 present. Handle 0x0001, DMI type 1, 27 bytes System Information Manufacturer: Huawei Product Name: 2288H V5 Version: Purley Serial Number: 2102312BRF10J5111307 UUID: 75d525a1-80b5-9061-1111-5063b8d73bb9 Wake-up Type: Power Switch SKU Number: Type2Sku0 Family: Type2Family

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

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

[root@eas ~]# df -h Filesystem Size Used Avail Use% Mounted on devtmpfs 95G 0 95G 0% /dev tmpfs 95G 9.5M 95G 1% /dev/shm tmpfs 95G 978M 94G 2% /run tmpfs 95G 0 95G 0% /sys/fs/cgroup /dev/vda1 40G 14G 25G 36% / /dev/mapper/vg_oracle-lv_oracle 1.5T 1.3T 190G 87% /oracle tmpfs 19G 0 19G 0% /run/user/0 [root@eas-ora ~]#

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

[root@ecs-9b83 ~]# df -h Filesystem Size Used Avail Use% Mounted on devtmpfs 7.6G 0 7.6G 0% /dev tmpfs 7.6G 0 7.6G 0% /dev/shm tmpfs 7.6G 8.7M 7.6G 1% /run tmpfs 7.6G 0 7.6G 0% /sys/fs/cgroup /dev/sda1 40G 3.0G 35G 8% / tmpfs 1.6G 0 1.6G 0% /run/user/0 [root@ecs-9b83 ~]#

方法4:查看欢迎语

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

-- 华为云 [root@ora ~]# cat /etc/motd Welcome to Huawei Cloud Service -- 阿里云 [lhr@xmmup ~]$ cat /etc/motd Welcome to Alibaba Cloud Elastic Compute Service !

判断是否docker环境

使用命令查看cgroup:

cat /proc/1/cgroup

原理:容器是通过 cgroup 实现资源限制,判断容器是否在一个 cgroup 组中

如果是docker,显示:

[root@lhrxxt ~]# docker exec -it test bash [root@test /]# [root@test /]# [root@test /]# [root@test /]# cat /proc/1/cgroup 15:name=systemd:/docker/91105ee80286688d365ec8fd584b292cf45d4f3751ebc56d8aa762c773044698 14:misc:/ 13:rdma:/docker/91105ee80286688d365ec8fd584b292cf45d4f3751ebc56d8aa762c773044698 12:pids:/docker/91105ee80286688d365ec8fd584b292cf45d4f3751ebc56d8aa762c773044698 11:hugetlb:/docker/91105ee80286688d365ec8fd584b292cf45d4f3751ebc56d8aa762c773044698 10:net_prio:/docker/91105ee80286688d365ec8fd584b292cf45d4f3751ebc56d8aa762c773044698 9:perf_event:/docker/91105ee80286688d365ec8fd584b292cf45d4f3751ebc56d8aa762c773044698 8:net_cls:/docker/91105ee80286688d365ec8fd584b292cf45d4f3751ebc56d8aa762c773044698 7:freezer:/docker/91105ee80286688d365ec8fd584b292cf45d4f3751ebc56d8aa762c773044698 6:devices:/docker/91105ee80286688d365ec8fd584b292cf45d4f3751ebc56d8aa762c773044698 5:blkio:/docker/91105ee80286688d365ec8fd584b292cf45d4f3751ebc56d8aa762c773044698 4:cpuacct:/docker/91105ee80286688d365ec8fd584b292cf45d4f3751ebc56d8aa762c773044698 3:cpu:/docker/91105ee80286688d365ec8fd584b292cf45d4f3751ebc56d8aa762c773044698 2:cpuset:/docker/91105ee80286688d365ec8fd584b292cf45d4f3751ebc56d8aa762c773044698 1:memory:/docker/91105ee80286688d365ec8fd584b292cf45d4f3751ebc56d8aa762c773044698 0::/docker/91105ee80286688d365ec8fd584b292cf45d4f3751ebc56d8aa762c773044698

如果是虚拟机或者物理机器,显示:

[root@lhrxxt ~]# cat /proc/1/cgroup 11:cpuset:/ 10:cpuacct,cpu:/ 9:pids:/ 8:devices:/ 7:hugetlb:/ 6:perf_event:/ 5:freezer:/ 4:net_prio,net_cls:/ 3:memory:/ 2:blkio:/ 1:name=systemd:/

总结

这几种办法可以综合来判断。

其它方法请参考:

https://blog.csdn.net/u010913001/article/details/106488517

https://zhuanlan.zhihu.com/p/70656230

https://mp.weixin.qq.com/s/_jWZ6k3VPTJTCANCV_VVcg

    你可能想看:

    扫描二维码推送至手机访问。

    版权声明:本文由皇冠云发布,如需转载请注明出处。

    本文链接:https://www.idchg.com/info/19866.html

    分享给朋友:

    “SSH后判断当前服务器是云主机、物理机、虚拟机、docker环境” 的相关文章

    提升上行带宽的有效策略与重要性分析

    上行带宽,这个词在如今的网络环境中变得越来越重要。简单来说,上行带宽是指从用户设备(比如个人电脑或手机)上传数据到服务器的速度。它不仅反映了数据传输的能力,还直接关系到我们的日常使用体验,比如上传文件的速度,发送邮件的及时性,甚至是网络视频会议的流畅性。 上行带宽的特点十分明显。当我进行视频通话或在...

    选择最适合的泰国VPS解决方案,助力业务成功

    我一直对网络基础设施充满好奇,尤其是虚拟专用服务器(VPS)这一概念。VPS为用户提供了一种灵活且高效的网站托管解决方案,让我觉得非常迷人。而泰国VPS更是因其独特的地理位置和网络质量,成为了许多选择者的心仪之地。 什么是VPS呢?简单地说,VPS是一种通过虚拟化技术将物理服务器划分为多个独立的虚拟...

    深入了解DC9飞机的历史、技术特点与运营经验

    DC9概述 了解DC9这款飞机,首先得从它的历史说起。DC9,或称道格拉斯DC-9,是由道格拉斯飞机公司设计制造的中短程单通道喷气式客机。这款飞机的诞生可以追溯到20世纪60年代。道格拉斯公司在这段时间逐步崛起,骄傲地推出了DC9作为回应当时日益增长的民航市场需求。最初的设计版本虽然体积不大,但凭借...

    全面解读SFTP教程:安全文件传输的最佳实践

    什么是SFTP? 在计算机网络世界里,SFTP(Secure File Transfer Protocol)是一种安全的文件传输协议。它的主要用途是通过安全的方式在网络中传输数据。与传统的FTP(File Transfer Protocol)相比,SFTP引入了数据加密机制,这样一来,用户在传输文件...

    IEPL:企业国际以太网专线的优势与申请指南

    什么是IEPL 当我第一次接触IEPL(International Ethernet Private Line)时,我意识到它是一种为企业提供国际级别的网络连接服务,特别适合那些需要在不同国家和地区之间高效、安全传输数据的公司。这项服务一般由电信运营商提供,旨在帮助企业实现及时的信息交流和数据传输。...

    AS4134:全球互联网中的自主系统与数据传输的未来

    什么是AS4134? AS4134是一个全球互联网中的自治系统编号,这个编号用于标识网络中的各种自治系统。让我简单说一下,自治系统可以被理解为单一的网络或网络集合,在运行自己的路由协议时相对独立。AS4134作为其中的一部分,协助数据在互联网中高效而安全地传输。当你在网上冲浪时,实际上是在通过多个这...