当VPS规格说明中写着KVM时,它告诉您的是隔离您的工作负载与其他人工作负载之间所采用的技术。KVM——基于内核的虚拟机,于2007年并入Linux主线——将内核本身变成了第一类虚拟机管理程序。每个虚拟机获得由硬件虚拟化扩展(Intel VT-x / AMD-V)调度的虚拟CPU、独立的块设备、独立的网络接口,以及最关键的独立内核。另一种传统——OpenVZ、Virtuozzo、LXC——是容器化技术:多个租户共享一个宿主机内核,通过命名空间进行分区。这一差异影响着一切,从您能运行什么到您与恶意邻居的隔离程度,因此它值得一个通俗易懂的解释。
KVM的工作原理简述
KVM通过内核模块暴露CPU的虚拟化扩展;用户空间设备模型(通常是QEMU,配合virtio半虚拟化驱动程序以提高磁盘和网络速度)组装虚拟机的其余部分。虚拟机启动自己的引导加载程序和内核,与物理硬件完全相同。宿主机的工作缩减为调度vCPU和中转I/O——它不解释虚拟机的系统调用,因为虚拟机有自己的内核来处理这些。硬件特性也得以有效透传:KVM虚拟机可以使用自己的iptables/nftables、加载内核模块、挂载文件系统,以及运行虚拟硬件支持的任何内容。
KVM与容器(OpenVZ / LXC)的对比
容器共享宿主机内核。这使它们非常轻量——接近零开销、启动快速、打包密集——而这恰恰是多租户环境中的问题所在:
- 隔离性。容器逃逸只需一个内核漏洞,每个租户都共享同一内核的攻击面。KVM逃逸必须跨越硬件强制的虚拟机边界——这是一类罕见得多的漏洞。
- 自由度。容器只能运行宿主机内核允许的内容:不能自定义内核,不能加载宿主机未加载的WireGuard模块,不能运行FreeBSD、Windows,通常也不能在容器中运行Docker。KVM虚拟机可以运行WireGuard、嵌套Docker、自定义sysctl,以及我们十个模板中的任意操作系统。
- 资源诚信度。OpenVZ历史上充斥着超售的"突发内存"和共享内核的计费技巧。KVM的内存和vCPU分配给虚拟机;宿主机层面仍然可能超售,但每个虚拟机的合约要诚实得多。
当您控制宿主机时(这正是Docker的用途,运行在您自己的虚拟机上),容器是优秀的技术。但作为销售给陌生人的产品,共享内核是隐私意识用户应当拒绝的妥协。
为何隐私工作负载坚持使用KVM
三个原因使KVM成为隐私托管的默认选择。内核级特性:VPN(WireGuard/OpenVPN)、带有强化sysctl的Tor、自定义防火墙和磁盘加密都需要容器无法提供的内核控制权。更强的租户隔离:您的内存和进程受硬件边界保护,而非命名空间,这在您无法审查邻居时至关重要。操作系统选择:完整虚拟化可以运行Debian、Alpine、FreeBSD或其他任何系统——当您的威胁模型规定了技术栈时这很有用。在虚拟机内部添加全盘加密后,宿主机运营商的可见范围缩减为密文和流量模式。
看到"KVM VPS"规格说明时应检查什么
常见问题
KVM是第一类还是第二类虚拟机管理程序?
实际上是第一类:虚拟机管理程序就是运行在裸机上的Linux内核,QEMU作为用户空间设备模型。学术上的区分不如实际区分重要——虚拟机获得硬件级隔离和各自独立的内核。
可以在KVM VPS内部运行Docker吗?
可以,原生支持——您的虚拟机内核像任何Linux系统一样支持命名空间和cgroups。这是标准模式:KVM提供租户隔离,您自己的容器用于应用打包。在OpenVZ类型的主机上,Docker通常无法使用或被禁止。
KVM与容器相比会损失性能吗?
少量:使用virtio驱动程序时,虚拟化I/O和调度增加个位数百分点的开销。在NVMe存储上,这一差异对实际工作负载来说无关紧要——而您因此获得的隔离性正是向陌生人租用服务器的全部意义。
宿主机能读取我KVM VPS的内存或磁盘吗?
从技术上说,虚拟机管理程序运营商可以在任何商业VPS上检查虚拟机内存和未加密磁盘——无论是KVM、容器还是其他形式。KVM缩小了随意访问的范围,而在虚拟机内部进行全盘加密则将静态可见性降低为密文。对于正式的威胁模型,请相应地对待任何租用的机器。
可以安装哪些操作系统?
可从我们的模板安装Debian 12/13、Ubuntu 22.04/24.04 LTS、AlmaLinux 9、Rocky 9、Fedora、Alpine、Arch和FreeBSD 14——这种广度本身就是KVM的属性;容器平台只能提供宿主机内核的Linux发行版。

