SSD Nodes Learn 8GB 内存 — 每年 $66
指南 Matt Connor作者: Matt Connor · 更新于 2026-08-01

VPS、VM 和 VPC 有什么区别?如何选择

VM 是虚拟化技术,VPS 是包含系统与 root 权限的租用产品,VPC 则是云账户中的私有网络。本文解释三者差异,以及容器 VPS 的限制。

VPS、VM 和 VPC 一段话说明

VM(虚拟机)是由软件构成的计算机:虚拟机监控程序将一台物理服务器划分为多个相互独立的计算机,每台计算机都运行自己的内核。VPS(虚拟专用服务器)是其中一台作为产品出租给您的虚拟机,包含操作系统、root 访问权限和月费。VPC(虚拟私有云)根本不是服务器,而是您在云账户中定义的私有网络,您可以将资源放入其中。VM 是技术,VPS 是产品,VPC 是产品所在的网络。

其中两个术语描述的是计算机,第三个描述的是网络。几乎所有混淆都源于这一差异,因为人们常常把它们当作同一货架上的三个产品来比较。

VM 是什么

虚拟机监控程序是模拟硬件的层。它为每个客户机提供虚拟 CPU、一块内存、虚拟磁盘和虚拟网卡,并阻止客户机互相访问。KVM、Xen、Hyper-V 和 VMware ESXi 是服务器上常见的虚拟机监控程序。现代虚拟机监控程序依赖 CPU 虚拟化扩展(Intel VT-x、AMD-V),因此客户机指令可以在真实 CPU 上以接近原生的速度运行,而不需要解释执行。

对系统管理员来说,关键在于内核。VM 会启动自己的内核,因此您可以选择发行版、加载内核模块,并设置只对该 VM 生效的 sysctl 值。这与容器(LXC、Docker)不同。容器共享主机内核,只拥有自己的进程和文件视图。

您可以在任何 Linux 主机上用一条命令查看结果。

systemd-detect-virt

kvm 表示您运行在 KVM 虚拟机监控程序上的虚拟机中。lxcopenvz 表示您运行在他人内核上的容器中。none 表示您直接运行在物理机上。如果缺少该命令,lscpu | grep -i hypervisor 会通过 CPU flags 显示相同信息。

VPS 是什么

VPS 是围绕 VM 提供的商业化服务。其底层技术是虚拟化;“VPS”还包括使其能够销售的服务内容:可重新安装的 OS 镜像、IP 地址、带宽配额、控制面板、月费,以及主机宕机时可以联系的服务商。“Private”用于区别于共享主机。在共享主机中,数百个站点共享同一个操作系统和同一套 PHP 配置。

由于 VPS 是产品名称而非技术术语,它不一定表示完整的 VM。有些低价套餐使用容器,但仍采用相同的名称。首次需要内核时,二者的差异就会显现。在基于容器的套餐中,sudo modprobe wireguard 会因 RTNETLINK answers: Operation not supportedmodprobe: FATAL: Module wireguard not found 而失败,因为内核属于宿主机,您无权更改。在 KVM 套餐中,模块可以加载,隧道也可以建立。如果您计划运行 Docker、VPN、自定义内核,或在服务器内部运行自己的虚拟机,请在购买前确认虚拟化类型。在 VPS 中运行虚拟机需要宿主机启用 KVM 和嵌套虚拟化,而支持这些条件的套餐更少。

VPC 是什么

VPC 是云服务提供商内部的软件定义网络。您可以使用 CIDR 表示法为其分配地址范围,例如 10.0.0.0/16,然后从中划分子网、关联路由表,并在其中的资源前配置防火墙规则(安全组)。VPC 不具备 CPU、内存或磁盘。您无法登录 VPC。删除 VPC 中的所有服务器后,VPC 仍会保留为空,通常不会产生费用。

VPC 提供的是私有地址。位于同一 VPC 中的两台服务器可以通过类似 10.0.1.15 的地址,在云服务提供商的内部网络上通信。因此,网络流量不会经过公共互联网,也不会按互联网出站流量计费。数据库随后可以仅监听其私有地址,完全不会向外界暴露端口。

ip -4 addr show

10.0.0.0/8172.16.0.0/12192.168.0.0/16 中的地址是私有地址。同一台服务器上的公共地址表示该服务器可从互联网直接访问,无论它属于哪种网络对象。

VPC 会让我的服务器变为私有吗?

不会,这是混淆这 3 个术语时最昂贵的误解。VPC 控制路由和地址分配。它不会决定互联网是否可以访问某台机器。如果实例具有公共 IP,且安全规则允许来自 0.0.0.0/0 的端口 22 连接,那么无论是否使用 VPC,它的暴露程度都与其他服务器完全相同。VPC 提供的隔离能力在于:您可以完全不给资源分配公共地址,并通过规则指定哪些子网可以相互通信。

这 3 个术语所代表的隔离类型也不同。VM 隔离计算资源:虚拟机监控程序会分隔 CPU 时间和内存,因此其他虚拟机无法读取您的 RAM。这种隔离对磁盘和网络的保护较弱,因为同一主机上的繁忙邻居仍可能降低您的性能。基于容器的 VPS 共享同一个内核,因此内核级漏洞会成为共享风险。VPC 完全不隔离计算资源。它只负责调整网络。

定价思维模型

VPS 通常按固定月费提供固定配置的服务器。您可以在月初前知道账单金额,磁盘和流量额度也包含在月费中。对于小型工作负载,这种可预测性是人们选择 VPS 而不是云实例的主要原因。

云 VM 按使用量计费。实例按小时或按秒计费,磁盘、快照、负载均衡器和出站流量则分别计费。VPC 本身通常免费,但附加在其上的托管组件并不免费:允许私有实例访问互联网的 NAT 网关按小时和每 GB 计费,可用区之间的流量也会计费。截至 2026 年 7 月,各大云平台仍会自动将每个新实例放入默认 VPC,因此无论您是否主动创建,都会使用一个 VPC。

您实际需要哪一种

  • 用于网站、应用、游戏服务器或 VPN 的单台服务器:VPS。新 VPS 上的前十分钟比套餐名称更重要。
  • 多台必须通过私有地址互相访问的服务器:VPC,或 VPS 提供商以其他名称提供的私有网络功能。
  • 必须能够承受整个数据中心不可用的工作负载:支持多个区域的云,这意味着在 VPC 中运行 VM。
  • 需要完全控制内核,或要在其上运行自己的 hypervisor:基于 KVM 的 VPS 或专用服务器。比较方案时,还要检查套餐使用的磁盘类型

大多数单服务器项目都不需要 VPC。VPS 附带的私有网络功能可以为少量机器完成相同的工作。

FAQ

VPS 与 VM 是一回事吗?

VPS 是别人提供给您的 VM。基于 KVM、Xen 或 VMware 构建的每个 VPS 都是虚拟机,但并非每个虚拟机都是 VPS,因为您在笔记本电脑上通过 VirtualBox 运行的 VM 并不是某项产品。某些标为 VPS 的低价方案实际使用的是容器,而不是完整 VM,因此在依赖内核访问权限前,请通过 systemd-detect-virt 进行确认。

可以在 VPC 中放置 VPS 吗?

通常不可以,因为 VPC 是某个云服务提供商的网络构造,只包含在同一账户中创建的资源。独立提供商提供的 VPS 位于该提供商的网络中。如果您需要在两者之间建立私有连接,应在两者之间建立 VPN 隧道,然后 VPS 通过该隧道访问私有子网。

为什么我的云账单比同等 VPS 更高?

实例价格只是其中一部分。在按量计费的云平台中,存储、快照、出站流量、负载均衡器和 NAT 网关都单独计费。仅 NAT 网关每月的费用就可能高于一台小型 VPS。固定价格的 VPS 会将磁盘和流量额度合并为一个价格,因此相同的工作负载通常看起来更便宜。

如何检查服务器是否具有真正的内核访问权限?

运行 systemd-detect-virt 并读取结果。kvmxenvmware 表示您拥有自己的内核,并且 modprobe 可以正常工作。lxclxc-libvirtopenvz 表示您与其他用户共享宿主机内核;加载模块或写入 /proc/sys 的命令会因 Operation not supported 而失败。还可以通过 uname -r 进行确认。在容器方案中,该命令通常会报告一个您的发行版从未发布过的内核版本。

#vps#vm#vpc#cloud#basics