当租用专用服务器时,如何确定他/她获得的不是 VPS 或其他虚拟机变体,而是真正的专用硬件盒?
可以运行哪些检查(假设它是一个 Linux 机器)来检测这种情况?
答案1
首先,物理机的内存往往比 VPS 大。问题 512MB 或更少。其次,您可以检查几项来查找 VPS。您通常会发现虚拟机中的硬件看起来非常基本。例如 KVM 有一个“Cirrus Logic GD 5446”显卡。VMWare 曾经有一个 RTL8129 网卡。因此,大多数操作系统安装介质都有虚拟设备的驱动程序。
这因素(Puppet 的一部分)虚拟.rb脚本有几种有用的技术可以找出您正在运行的机器类型。
开放VZ
寻找/proc/vz/veinfo
西恩
查找以下之一/proc/sys/xen
:/sys/bus/xen
/proc/xen
虚拟服务器
查找s_context
或VxID
/proc/self/status
VMWare 或 Parallels
- 运行
lspci
并查找 VMWare VGA 适配器 - 运行
dmidecode
并查找对 VMWare 或 Parallels 的提及
虚拟机
运行 lspci 并查找RAM memory: Qumranet, Inc. Virtio memory balloon
答案2
没有 100% 可靠的方法来检测您是否在 VM 中,就像没有办法检测您是否真的在 Matrix 中,或者您是否实际上是计算机模拟中一样。
然而,如果提供商是个白痴,您可以从以下方便的列表中判断您是在虚拟机中:
- Xen:
/proc/sys/xen
存在 - OpenVZ/Virtuozzo:
/proc/vz
存在 - VMWare:在输出中查找 VMWare 显卡
lspci
- Linux VServer:
/proc/self/status
具有s_context
或VxID
字段 - Solaris 区域:
/sbin/zonename
存在
这些并不是 100% 可靠的,因为提供商控制环境并可以修改系统以不显示这些。但是,任何便宜到卖给你专用服务器并给你虚拟机的人可能都不够聪明,无法做到这一点。
答案3
查看你的机器的 MAC 地址。你看到任何特定于虚拟机的 OUI?
答案4
尝试设置虚拟机环境。如果在虚拟机内,则应该会失败。