【问题标题】:Portable way to check if virtualized OS检查是否虚拟化操作系统的便携式方法
【发布时间】:2013-11-19 06:07:52
【问题描述】:

是否有任何可移植的方式或库来检查 Python 脚本是否在虚拟化操作系统上运行以及它在哪个虚拟化平台上运行。

这个Detect virtualized OS from an application? 问题讨论了一个c 版本。

【问题讨论】:

  • 如果虚拟环境真的很好,那就不行了——毕竟是这样!
  • 您希望完成什么?可能还有其他方法可以解决问题。
  • @SteveBarnes 实际上更多次,重要的是要知道您是否在虚拟化系统上,以及哪个虚拟环境(您可能需要安装 virtio 驱动程序或来宾添加)。隐藏这个事实是没有用的。大多数虚拟化系统都会留下提示,无论是在宣传 CPU 的方式中,还是在 DMI 数据(系统供应商名称、机箱等)中。没有我知道的模块(我可能错了)。那里没有那么多虚拟化技术。每个人都有自己的广告方式。我认为您将不得不自己编写一个模块:)。

标签: python virtual-machine


【解决方案1】:

我认为你在 python 中调用了 linux 命令virt-whatvirt-what的描述在这里:http://people.redhat.com/~rjones/virt-what/

【讨论】:

  • 假设它在你的盒子上。不错,我不知道这个程序!
  • 它适用于所有 Linux 平台还是仅适用于 RHEL?
  • @user virt-已经在 Fedora (13+)、Red Hat Enterprise Linux (5.7+ 和 6.1+)、Debian、Ubuntu、ArchLinux 和 Gentoo 中打包,并且可以从源代码编译在几乎任何 Linux 上。
【解决方案2】:

据我所知,没有很好的、可移植的方法可以从 Python 中解决这个问题。大多数时候,人们试图判断自己是否被虚拟化的方式是寻找 VM 留下的线索——要么是某些指令不完全正确,要么是某些行为不正常。

但是,如果您愿意开箱即用,一切都不会丢失。当您在虚拟机中时,您几乎永远不会拥有完美的本机性能。因此,如果您对您信任的服务器进行了足够的测量,那么就有可能检测您是否在虚拟机中。如果您在具有多台机器的机器上运行,情况尤其如此。检查你自己的时间,你被安排了多少时间,以及已经过去了多少时间(基于外部测量,因为你不能信任本地机器)。如果您可以查看本地机器上而不是仅在一个进程中经过了多少时间,您可能会有更好的运气。

【讨论】:

    猜你喜欢
    • 2023-03-17
    • 2011-03-27
    • 1970-01-01
    • 2013-11-16
    • 2013-08-08
    • 2010-09-14
    • 1970-01-01
    • 2012-08-16
    相关资源
    最近更新 更多