VPS能玩游戏吗?不能直接玩,但能托管服务器
标准VPS没有可用于3D渲染的GPU,软件渲染现代游戏可能只有每秒几帧。本文解释远程游玩为何延迟过高,以及为何VPS适合托管Minecraft等游戏服务器。
能在 VPS 上玩游戏吗?简短回答
能在 VPS 上玩游戏吗?这个问题对应两种相反的需求,因此答案也不同。如果您想在租用的服务器上亲自运行游戏,并在自己的屏幕上查看画面,标准 VPS(虚拟专用服务器)无法实现这一点,修改配置也无法解决。如果您想托管游戏服务器,让其他玩家连接,VPS 是性价比最高的租用选择之一,通常小型方案就够用。
如果您关注的是托管游戏服务器,请直接查看如何为游戏服务器选择 VPS或在 VPS 上运行 Minecraft 服务器。下面的章节会解释为什么在 VPS 上直接玩游戏无法实现,因为这是人们很少能得到明确答案的问题。
为什么标准 VPS 没有 GPU
标准 VPS 是共享物理主机上的一部分资源,包括虚拟 CPU 核心、RAM、磁盘和网络端口。物理主机通常是机架式服务器。机架式服务器不配备消费级显卡,因为游戏 GPU(图形处理器)面向配有独立风扇且功耗预算较高的台式机机箱设计。虚拟机可以获得虚拟显示适配器,以便启动控制台显示内容。图形处理能力仅此而已。
lspci | grep -i -E 'vga|3d|display'
ls -l /dev/dri第一条命令会输出一行内容,通常类似于 Cirrus Logic GD 5446 或 Red Hat, Inc. Virtio 1.0 GPU。这些设备没有 3D 引擎。第二条命令通常返回 ls: cannot access '/dev/dri': No such file or directory,因为不存在可供程序打开的直接渲染设备。在真正的 GPU 实例上,同一条命令会列出 card0 和 renderD128。
Mesa 仍会通过 llvmpipe 提供 OpenGL;这是它的软件渲染器,会使用 CPU 绘制每个三角形。这足以运行桌面环境或较老的 2D 游戏。现代 3D 游戏的帧率可能只有每秒几帧。此时 CPU 会忙于处理它最不擅长的任务,游戏逻辑也会随之变慢。
为什么输入延迟会导致远程游玩失败
远程游玩是一个循环。您按下按键后,输入会传输到服务器。服务器渲染一帧画面,将该帧编码为视频并发送回来。随后,客户端解码视频并将其显示在屏幕上。每个阶段都会耗费毫秒级时间,最终延迟会累积起来。
The data behind this chart
[
{
"label": "Input capture and send",
"typical_ms": 5
},
{
"label": "Network round trip",
"typical_ms": 15
},
{
"label": "Frame render on the server",
"typical_ms": 12
},
{
"label": "Hardware video encode",
"typical_ms": 8
},
{
"label": "Decode and display on the client",
"typical_ms": 15
},
{
"label": "Sum of the stages above",
"typical_ms": 55
}
]网络往返只占其中 15 ms。这是唯一可以通过选择距离您更近的服务器来改善的部分。其余延迟来自处理流程本身,与服务器所在位置无关。在游戏执行任何自身逻辑前,这些阶段会累计造成 55 ms 的延迟。这里使用的是硬件编码器向同一区域客户端进行串流时通常公布的数据,不是单台机器的实测结果,因此应将其视为问题的整体结构。
这段延迟会进入一个反馈回路。您移动鼠标,看到结果,然后进行修正。额外延迟会使每次修正都晚到,因此您会越过目标,再次进行修正。回合制游戏、策略游戏、经营模拟游戏和卡牌游戏通常可以轻松应对。射击游戏、格斗游戏、节奏游戏和竞速游戏则无法承受这种延迟。
抖动和丢包造成的影响不同。视频流无法等待重传,因为丢失数据包所属的画面已经过时。因此,丢包通常表现为块状失真或画面冻结,而不是短暂暂停。这也是远程桌面不适合此用途的原因。VNC(virtual network computing)和普通 RDP(remote desktop protocol)通过 TCP 发送发生变化的矩形区域;当屏幕每秒完全变化 60 次时,这会变成持续的重传数据流。
真正的云游戏服务器需要什么
正确构建这样的服务是可行的,但必须同时具备四项条件。
- 配备数据中心显卡的 GPU 实例,因为服务提供商只有获得授权的这类显卡才能出租。
- 硬件视频编码器,例如 NVIDIA 内置的 NVENC,因为使用软件编码会占用 CPU 时间并增加延迟。
- 面向游戏而不是桌面环境构建的串流方案。服务器使用 Sunshine、客户端使用 Moonlight,是常见的开源选择。
- 位于您所在都市圈的服务器,因为往返延迟取决于距离,而距离受光纤中的光速限制。
然后计算成本。GPU 实例按小时计费,因此将每小时费率乘以 730,即可得到持续运行一个月的费用。截至 August 2026,这在美元计价下每月需要三位数的费用;一年内的支出足以直接购买一台游戏主机,而且您还要额外支付游戏许可费用。GPU VPS 实际提供什么和租用 GPU 小时的盈亏平衡计算会详细说明这些数字。
如果您只是想玩游戏,商业云游戏服务已经在距离您较近的数据中心运行完全相同的技术栈,并且已经解决了许可问题。单个城市中的一台 VPS 无法匹配为此专门构建的网络。
反作弊与许可限制还剩哪些问题
即使 GPU 配置完全满足要求,也会受到平台规则限制。Riot 的 Vanguard 要求 Windows 11 启用 TPM 2.0(可信平台模块)和 Secure Boot,并且拒绝在虚拟机中运行。因此,Valorant 无法在租用的云硬件上启动。Easy Anti-Cheat 和 BattlEye 也可以检测虚拟机管理程序;使用这些组件的多个游戏会阻止在虚拟机中运行,或因此封禁账号。这是有意为之:作弊开发者会使用虚拟机隐藏作弊工具,因此拒绝在虚拟机中运行,是游戏方成本较低的防护措施。
许可限制是在此基础上的另一层问题。NVIDIA 的 GeForce 驱动许可限制数据中心用途,因此云服务商出租的是数据中心显卡,而不是桌面显卡。Windows 需要允许在非自有硬件上运行的许可。游戏平台的条款则规定副本可以在哪些环境中运行。单独来看,这些限制都可以处理。但它们叠加后意味着,这台手工组装的云游戏主机无法运行大多数用户希望用它来玩的竞技游戏。
仅使用 CPU 的 VPS 适合运行的服务
下面介绍另一类用途。专用游戏服务器不会绘制画面。它负责模拟游戏世界、处理每名玩家的输入,并通过网络发送状态更新。画面由玩家自己的设备绘制。不需要渲染,就不需要 GPU。因此,这台不适合运行游戏的服务器,反而适合托管游戏服务。
- Minecraft、Valheim、Terraria、Factorio、Rust、Project Zomboid,以及大多数提供无头服务器构建版本的其他游戏的专用服务器。
- 语音聊天。Mumble 服务器占用资源很少,可以与游戏服务器部署在同一个小型套餐中。
- 通过纯 HTTP 提供模组和地图下载,以及供玩家查看在线用户的 Web 面板。
- 匹配、统计、排行榜、Discord 机器人及其后端数据库。
- 定期将世界存档备份到服务器外部。这样存档损坏时,最多损失 1 小时的进度,而不是整个地图。
RAM 通常是限制因素。对于其中许多游戏,单核速度比核心数量更重要,因为 Minecraft 或 Factorio 服务器的主要模拟 tick 在一个线程上运行。8 个较慢的核心不如 4 个较快的核心。带宽消耗通常比 CPU 使用量更受玩家数量影响,而且服务商会限制传输量,因此选择套餐前应先查看流量额度。
开放正确的端口。请注意,大多数游戏内流量使用 UDP(用户数据报协议),而不是 TCP。
sudo ufw allow 25565/tcp
sudo ufw allow 27015/udp
sudo ufw statusufw status 应在旁边列出每条规则及其对应的 ALLOW。如果端口已在此处开放,但服务器仍无法访问,请检查服务商控制面板中是否还有单独的网络防火墙。服务器内部的规则无法影响前置网络过滤器。
让服务器在无人干预时保持运行。systemd 单元或 Docker restart policy 可以在重启后恢复服务器,启动时自动运行的 compose 堆栈是常见做法。再配合定期执行的服务器外备份,即可在磁盘损坏时保留世界存档。
如何在托管 VPS 前检查它
您与玩家之间的延迟决定服务器运行是否流畅,而且可以测量。请提供商在目标区域提供一个测试地址,然后从玩家所用的网络运行以下命令,不要从服务器上运行。
ping -c 20 203.0.113.10
mtr -r -c 100 203.0.113.10ping最后会输出一行摘要,例如 rtt min/avg/max/mdev = 18.4/19.1/24.6/1.2 ms。最后一个数字是抖动。稳定且抖动较低的平均延迟,在游戏中的体验优于平均延迟更低但波动较大的情况。mtr会输出每一跳的丢包率。您只能查看最后一行的丢包率,因为中间路由器会将自身的 ICMP(互联网控制消息协议)回复设为最低优先级,并且经常报告实际网络流量并未遭遇的丢包。
然后检查主机是否存在超售。
vmstat 1 5st列表示 steal time:虚拟 CPU 已准备运行,但物理主机将这些 CPU 时间分配给了其他虚拟机的时间占比。该列持续出现非零值,表示无论套餐页面如何描述,服务器在负载下的 tick rate 都会波动。Steal time 与邻居干扰介绍如何读取该指标,自行对 VPS 进行基准测试介绍在承诺购买一年服务前,还应收集其余哪些数据。
两个问题的直接答案
如果您想玩游戏,请将游戏运行在自己可以接触到的硬件上,或使用专门用于游戏串流的服务。通用 VPS 无法完成图形渲染;GPU 实例的成本高于购买硬件,而且仍然可能无法通过反作弊检查。如果您想托管游戏服务器,请租用 VPS。VPS 价格低廉,非常适合此用途;在不进行游戏的时间段,同一台服务器还可以运行其他服务。
FAQ
我可以在 VPS 上安装 Steam 并运行游戏吗?
您可以在 Linux VPS 上安装 Steam 客户端,客户端也能下载游戏。但运行游戏通常会失败。标准方案没有 GPU,因此 3D 游戏只能退回到 CPU 渲染,每秒只能生成几帧;许多现代游戏没有受支持的渲染器也无法启动。将能够渲染的画面传输回本地屏幕后,还会叠加编码和网络延迟。Steam Remote Play 用于从您拥有的真实游戏设备进行串流,并要求该设备配备显卡。
GPU VPS 能让我运行自己拥有的任何游戏吗?
GPU VPS 只能解决渲染问题,其他问题仍然存在。您仍需要硬件编码器、Moonlight 这类低延迟客户端,以及距离足够近、能够保持较小往返延迟的服务器。反作弊机制是主要限制:Riot 的 Vanguard 拒绝在虚拟机中运行,Easy Anti-Cheat 和 BattlEye 也可能检测到 hypervisor,因此竞技射击游戏无法运行。单人游戏和节奏较慢的游戏更适合这种用途,但每月成本会高于本地硬件的价格。
十名好友运行 Minecraft 服务器需要多大规格的 VPS?
十名玩家使用原版 Java 服务器时,2 vCPU 和 4 GB RAM 通常足够。使用 -Xmx3G 为 JVM(Java 虚拟机)分配约 3 GB,并将剩余内存留给操作系统,因为 JVM 会使用您允许的全部内存,而内核仍需要内存作为页缓存。大型 modpack 会改变这一结论:仅堆内存就应准备 6 GB 到 8 GB,并选择单核性能更快的方案,因为主世界 tick 在单个线程上运行。
为什么远程桌面感觉正常,而游戏却不行?
桌面每次只会改变屏幕的一小部分,即使窗口延迟 100 ms 重绘,也通常不会被察觉。游戏每秒会改变数十次屏幕上的每个像素,并通过您的操作形成反馈回路。VNC 和普通 RDP 通过 TCP 传输发生变化的矩形区域,因此持续运动的画面会导致重传和停顿。即使使用正确的视频串流,输入延迟仍然存在;尝试瞄准时,您感受到的就是这种延迟。