什么是 KVM 虚拟化?

拥有独立内核与预留资源的真虚拟化,对比共享内核的容器主机。这一区别对隐私、隔离与控制权究竟意味着什么,一文讲清。
KVM 是真正的虚拟化:Linux 内核本身成为 hypervisor,每台 VPS 拥有自己的内核、独立预留的内存与 CPU,并在硬件层面与邻居隔离。OpenVZ、LXC 等容器则共享宿主机的内核。对隐私与控制类工作负载而言,这一区别是决定性的——共享内核意味着共享的攻击面,也意味着资源使用状况彼此可见。
什么是 KVM 虚拟化
KVM(Kernel-based Virtual Machine,基于内核的虚拟机)通过加载一个利用 CPU 硬件虚拟化扩展(Intel VT-x 或 AMD-V)的内核模块,把宿主机的 Linux 内核变成 type-1 hypervisor。在其之上,QEMU 负责模拟设备:网卡、磁盘、控制台。其效果如同一台真实机器:每个客户机启动自己的内核、安装自己的操作系统,并认为硬件为自己独有。从内部看,KVM VPS 在几乎所有用途上都与独立服务器无法区分——这正是它的意义所在。
由于每个客户机都是一台完整的机器,隔离边界就是 CPU 本身。hypervisor 借助硬件(而非软件记账)来强制内存与设备的隔离,客户机看不到邻居的进程、负载均值、内核日志或连接表。完整的 root 权限意味着你可以编译自定义内核、加载模块、运行嵌套虚拟化、引导自定义 ISO、使用 raw sockets——Tor 中继、邮件系统、VPN 节点和区块链节点默默依赖的这套工具箱,VPS 目录中的每个套餐都提供。
控制权也有日常的一面,值得点明,因为这才是用户真正能感受到的。拥有自己的内核,意味着 nftables 里自己写的防火墙规则、内置而非求人才有的 WireGuard 模块、流量需要时开启的 BBR 拥塞控制、自己设定的连接跟踪 sysctl,以及按工作负载调校的 swap 或 zram。容器租户只能继承宿主机的这些选择,出了问题去申请例外;KVM 租户自己做决定,也承担结果。这种区别听起来只是管理方式不同——直到某项托管服务恰好需要其中某个开关:那时它就是五分钟修复与一张以迁移告终的工单之间的区别。
VPS $4.80* 起(年付期限),存储 1–5 TB NVMe 年付折合 $24/月起,带 IPMI 的独立服务器 $39.20/月起。加密货币账单,免 KYC。
立即启动KVM 与容器的对比
基于容器的 VPS 产品——早年是 OpenVZ,如今是 LXC 及其同类——走的是另一条路:所有租户都运行在宿主机唯一的内核里,靠 namespace 和 cgroup 隔离。这种方式效率高,这也是廉价套餐采用它的原因,而代价随处可见:
| KVM VPS | 容器 VPS | |
|---|---|---|
| 内核 | 你自己的——想打补丁、编译、引导什么都可以 | 宿主机的内核——所有租户共享同一个版本、同一个补丁级别 |
| 内核模块 | 加载自己的模块(WireGuard、自定义 netfilter、DKMS) | 只有宿主机启用的那些 |
| 自定义 ISO / 操作系统 | 任意镜像,包括通过全虚拟化运行的 BSD | 仅限宿主机提供的模板 |
| 超售 | 困难——内存按块预留 | 容易——内存页在租户之间共享并可回收 |
| 跨租户可见性 | 没有——hypervisor 边界 | 内核级结构共享;侧信道探测成本更低 |
这些都不是说容器是糟糕的技术——半个互联网都跑在 Docker 上,而且在你自己掌控的机器上,共享内核就是你自己的内核。它说明的是:当内核归宿主机而非你所有时,容器就是另一种产品。容器 VPS 是别人操作系统里的一小块切片;KVM VPS 才是你自己的一台机器。
为什么隐私类工作负载坚持要 KVM
隐私方面的论据是精确的,不是审美偏好。共享内核意味着你的租户边界只是一组内核特性——namespace、cgroup、seccomp——它们与宿主机内核以及所有邻居的进程运行在同一个地址空间里。一个能逃逸出容器的内核漏洞,最坏情况下可以波及宿主机及宿主机上的一切;而 KVM 客户机与邻居之间由 CPU 自身的机制强制隔离,逃逸 hypervisor 属于另一类难度更高、更罕见、成本更大的漏洞。没有共享内核,也意味着没有内核层面的资源窥探:邻居无法读取你的负载、你的连接表或你的内存压力,因为这些结构根本不存在于你们共享的任何内核中。
诚实的天花板在上方,而不是旁边:宿主机的 hypervisor 仍然可以对你的内存和磁盘做快照,因为总得有人来运行这台机器。KVM 降低的是邻居风险,不是主机风险——主机风险要按匿名边界页面所述的方式来管理:在客户机内部按照LUKS 全盘加密指南做静态数据加密,这样快照里只有密文,离线的宿主机上也看不到任何有用的东西。在本目录中 KVM 是唯一提供的虚拟化方式:独立内核、预留的 DDR5、高档位配备 ECC,以及从首次开机就完整的 root 权限。
面对任何运行 KVM 的主机,买家可以合理追问三件事:内存是按套餐预留还是共享的;宿主机是否使用 ECC;运营方自身的访问策略是什么——谁能连接控制台、有何种日志记录。能就这三个问题给出书面回答的主机,关于隔离性的说明已经胜过任何关于 hypervisor 的宣传页。
如何甄别「KVM VPS」商品页
市面上的商品页对这个词用得很随意,而在任何 Linux 客户机上验证只需两分钟。运行 systemd-detect-virt:真正的 KVM 客户机会返回 kvm。检查 /proc/cpuinfo 中是否有 vmx 或 svm 标志位,它证明硬件虚拟化已暴露给客户机。尝试加载宿主机没有预装的东西——用 modprobe 加载一个冷门模块,或自己编译一个小的——容器会拒绝,因为它的内核属于别人。留意 /proc/user_beancounters:它的存在是 OpenVZ 的经典指纹,无论商品页怎么写。
还有两项检查能抓住剩下的情况。引导层面的自由度:能否挂载自定义 ISO 重装一个不常见的系统,还是面板只提供模板——即使页面上写着 KVM,模板也暗示着容器。以及资源行为:跑一次内存压力测试,观察分配是预留的还是在邻居负载下蒸发——这就是用实证回答的超售问题。如果一个「KVM」套餐过不了这些检查,那你是在按 KVM 的价格租一台容器;更诚实的选择是带 IPMI 的独立服务器档位或真正的 KVM 服务商,差价是值得的。
对 VPS 来说,KVM 比 OpenVZ 或 LXC 更好吗?
就控制权和隔离性而言,是的:你拥有自己的内核、自己的模块、自定义 ISO,以及 hypervisor 边界而非共享边界。容器胜在原始密度,这正是最便宜的套餐使用它的原因——也是为什么你的邻居能看到比你期望更多的宿主机状态。
KVM 比容器主机更贵吗?
介于略贵和明显贵之间,因为预留内存和硬件隔离限制了超售。在本目录中,从 Core 起的每个套餐都标配 KVM,所以比较对象是其他主机的 KVM 产品,而不是容器套餐的价格。
容器 VPS 能做到和 KVM VPS 一样私密吗?
面对内核层面的威胁做不到:共享内核就是共享的攻击面,也是共享的侧信道来源。无论哪种方式,客户机内部的客户端加密都有帮助,但当租户边界由 CPU 强制执行时,它在性质上就牢固得多。
如何验证我的 VPS 真的是 KVM?
运行 systemd-detect-virt 并确认返回 kvm,检查 /proc/cpuinfo 中是否有 vmx 或 svm 标志位,尝试加载一个冷门内核模块,并确认 /proc/user_beancounters 不存在。如果面板还提供自定义 ISO 重装选项,那就是机器确实属于你的进一步证明。
KVM 支持嵌套虚拟化吗?
支持,在暴露了该能力的套餐上:客户机内拥有完整虚拟化扩展,意味着你可以运行 Docker、虚拟机或自己的嵌套 hypervisor。本目录的每个套餐都在 KVM 上提供完整 root,像沙箱构建农场这类嵌套用例无需宿主机干预即可运行。