SSD Nodes Learn Hosting plans →
指南 Matt Connor作者: Matt Connor · 更新于 2026-10-16

购买VPS前如何检查软件兼容性?

购买VPS前查看规格表这7项:虚拟化类型、/dev/net/tun、嵌套KVM、AES-NI、IPv6、GPU,以及是否封锁出站25端口,避免买后才发现无法运行。

VPS 能运行吗?在规格表上查看 7 行

您要运行的软件能否在 VPS 上运行,在付款前就能通过套餐规格表中的大约 7 行内容确定。大多数软件在任何套餐上都能正常运行。无法运行的软件通常依赖主机提供的特定功能:允许您操作的内核、服务商为您创建的设备节点、虚拟机管理程序透传的 CPU 标志,或未被丢弃的出站端口。

日本国内服务商通常会发布非常详细的规格表,因此这些问题大多已经在页面上的某处写明。关键在于知道哪一行能回答哪个问题,以及在规格表完全没有相关信息时应该向支持人员询问什么。以下兼容性检查项,确实会因套餐不同而有所差异。

  • 虚拟化类型。KVM 套餐的行为类似独立机器。容器套餐共享主机内核,某些工作负载会因此无法运行。
  • 内核模块和 /dev/net/tun。WireGuard 和 OpenVPN 需要这些组件。
  • 嵌套虚拟化。要在 VPS 内运行任何虚拟机,都需要 /dev/kvm。
  • CPU 标志。大多数来宾系统都能使用 AES-NI 和 AVX,但部分环境会屏蔽这些功能。
  • IPv6。包括是否能获得可路由地址,以及前缀长度。
  • GPU。标准套餐不提供 GPU,规格表通常不会直接列出这一点。
  • 出站端口 25。日本市场的大多数服务商默认会阻止该端口。

请在服务器本机上完成以下所有检查。可以在试用期内或退款期限内执行。规格表描述的是服务商计划提供的配置。命令显示的则是您实际获得的机器配置。

虚拟化方式说明的内容

请查找 仮想化方式 或 仮想化技術(虚拟化方式)。其值可能是 KVM,有时写作 完全仮想化(完全虚拟化),也可能是 OpenVZ 或 LXC 等容器技术,写作 コンテナ型(容器类型)。旧套餐中还可能出现 Xen;就本指南涉及的内容而言,它的行为与 KVM 相同。

使用 KVM 套餐时,您拥有自己的内核。您可以加载模块、设置 sysctl、安装其他内核,并重新引导进入该内核。使用容器套餐时,内核属于主机,并与该主机上的其他客户共享。您无法更改内核,也无法向其中加载模块,因为模块以完整的内核权限运行,会越过容器边界。您在论坛中看到的大多数“在另一台 VPS 上可以运行”问题,都由这一区别导致。

systemd-detect-virt
uname -r
free -m

kvm 或 qemu 表示完全虚拟化。lxc、lxc-libvirt 或 openvz 表示容器。对于标称为 VPS 的产品,none 表示其可能使用真实硬件,也可能使用会隐藏自身的 hypervisor,因此请通过 virt-what 软件包中的 virt-what 进行确认。容器还有两个迹象:uname -r 报告的内核版本与您选择的发行版不匹配;此外,除非提供商运行 lxcfs,否则 free -m 报告的内存通常远多于您付费购买的容量,因为容器读取的是主机的 /proc/meminfo。

这两种模型之间的差异大于价格差异,因此在仅比较价格之前,值得阅读KVM、Xen 和 LXC 分别提供什么。Docker 是最常见的受影响软件。它可以在任何 KVM 套餐上运行;在容器套餐中,只有提供商为您的容器启用了嵌套虚拟化时才能运行。因此请先询问,不要默认VPS 上可以运行 Docker 主机。

能否加载内核模块并打开 /dev/net/tun?

这是 VPN 场景中的问题,分为两部分。WireGuard 需要内核模块;该模块自 Linux 5.6 起已进入主线内核。截至 2026 年 8 月,Ubuntu 24.04 和 Debian 13 均已随系统提供该模块,无需额外安装软件包。OpenVPN 和 wireguard-go 用户态回退方案都需要字符设备 /dev/net/tun,服务提供商必须明确将该设备暴露给容器。

ls -l /dev/net/tun
sudo modprobe wireguard && echo ok
lsmod | grep -E 'tun|wireguard'

正常运行的 KVM 主机应输出类似 crw-rw-rw- 1 root root 10, 200 /dev/net/tun 的设备行,然后输出 ok。

ls: cannot access '/dev/net/tun': No such file or directory 表示您无法使用该设备节点,因为它不存在。随后 OpenVPN 会因 Cannot open TUN/TAP dev /dev/net/tun: No such file or directory (errno=2) 而停止。wg-quick up wg0 会因 RTNETLINK answers: Operation not supported 而停止,因为共享内核没有向您的容器提供可创建的 WireGuard 接口类型。modprobe: ERROR: could not insert 'wireguard': Operation not permitted 表示从另一方向发生了同样的拒绝:由于您不在主机的内核命名空间中,加载操作被拒绝。

许多容器方案可以按客户要求启用 TUN/TAP。因此,如果您购买这台服务器是为了运行 VPN,这是最有用的售前问题。还要注意措辞。资料中写着“VPN利用可”(允许使用 VPN),这只是服务条款声明,不代表具备相应功能。请在同一条消息中同时询问这两个问题。

嵌套虚拟化是否可用?

嵌套虚拟化是指在 VPS 中运行 hypervisor。创建 VM 实验环境或运行会启动自身 microVM 的工具时,需要使用此功能。主机必须将 CPU 虚拟化标志传递到您的 guest,并使用 kvm_intel 或 kvm_amd 模块及 nested=Y 运行自身的虚拟化功能。此开关位于 hypervisor 上,因此无法从 VPS 内部启用。

sudo apt install -y cpu-checker
grep -owE 'vmx|svm' /proc/cpuinfo | sort -u
kvm-ok

/proc/cpuinfo 中的 vmx(Intel)或 svm(AMD)表示该标志已传递到您的 guest。随后,kvm-ok 会输出 INFO: /dev/kvm exists,后跟 KVM acceleration can be used。如果该标志未传递,您会看到 INFO: Your CPU does not support KVM extensions 和 KVM acceleration can NOT be used。此时 QEMU 仍会启动,但会使用软件模拟;每条 guest 指令都必须转换,速度会慢到足以影响该 VPS 的适用场景。使用 -enable-kvm 启动时,QEMU 会直接拒绝运行:Could not access KVM kernel module: No such file or directory。

大多数共享套餐默认关闭嵌套虚拟化,因为它会降低性能,并使在线迁移更复杂。因此,应将其视为必须确认的功能,而不是默认可用的功能。VPS 上的嵌套虚拟化介绍了启用后增加的额外开销。

主机会透传哪些 CPU 标志?

虚拟机管理程序决定向来宾系统报告哪些 CPU 特性。许多服务商会提供通用 CPU 模型,使运行中的 VM 能迁移到使用不同处理器的主机上;通用模型只会报告所有处理器共有的最低标志集。物理芯片可能支持 AES-NI 和 AVX-512,但来宾系统可能会被告知两者都不支持。

uname -m
lscpu | grep -i 'model name'
lscpu | grep -owE 'aes|avx|avx2|avx512f' | sort -u

Model name: QEMU Virtual CPU version 2.5+ 或 Common KVM processor 表示通用情况。类似 Intel Xeon Processor (Skylake, IBRS) 或 AMD EPYC-Rome Processor 这样的真实型号字符串,表示主机的更多特性已透传给你。

有两个标志会直接影响实际工作负载。AES-NI 在硬件中执行 AES,因此会影响 TLS(传输层安全)和磁盘加密的吞吐量。你可以在同一台主机上测量差异,因为 OpenSSL 允许你手动屏蔽该标志:

openssl speed -elapsed -evp aes-128-gcm
OPENSSL_ia32cap=~0x200000200000000 openssl speed -elapsed -evp aes-128-gcm

第二次运行使用软件路径。如果两次运行输出的数值相近,说明你的来宾系统一开始就没有 AES-NI。AES-NI 对 VPS 的实际价值列出了这两种路径之间的差距。

AVX 导致的问题更难发现,因为需要它的软件不会提前发出警告。MongoDB 5.0 及更高版本要求支持 AVX;如果主机屏蔽了该特性,服务器会立即退出并显示 Illegal instruction (core dumped),自己的日志中也不会提供有用信息。在较新机器上使用 -march=native 编译的任何二进制文件都会以完全相同的方式失败。

uname -m 可以回答买家容易忽略的问题。通常答案是 x86_64;aarch64 表示这是 Arm 方案,你计划运行的每个二进制文件和容器镜像都必须提供 arm64 版本。如果价格差异让你倾向于 Arm,Arm 和 x86 VPS 方案是决定性参考。

计划是否真的提供 IPv6?

描述可能写着 IPv6対応(支持 IPv6)或 IPv6アドレス。 対応 表示网络支持 IPv6,但不说明分配给服务器的地址空间大小,而这决定了您能构建什么。

ip -6 addr show scope global
ip -6 route show default
ping -6 -c 3 ipv6.google.com

如果接口唯一的 IPv6 地址以 fe80: 开头,则它只有链路本地地址,没有可路由的 IPv6 地址。因此,向公网主机执行 ping -6 会因 Network is unreachable 失败。一个全局地址足以为网站发布 AAAA 记录,但不足以供容器使用,也不足以支持为每个对等端分配地址的 VPN;这两种场景通常都需要 /64。部分提供商只会在申请后分配前缀,因此请询问前缀长度,而不是只询问是否支持 IPv6。

在一些市场中,仅支持 IPv6 的套餐价格更低。但如果提供商未提供 NAT64(两种协议之间的网络地址转换)和 DNS64,这类套餐无法访问仅支持 IPv4 的服务。许多软件包镜像和支付 API 仍然只支持 IPv4。购买前请确认提供商已提供这些转换服务,不要只根据价格决定。

出站端口 25 是否被阻断?

在日本,应假设该端口已被阻断。OP25B(出站端口 25 阻断)自 2000 年代中期起一直是日本网络运营商的标准做法,用于阻止受入侵主机发送垃圾邮件,这种做法也延续到了日本国内的托管服务中。许多套餐会在网络边界丢弃出站 TCP 25 流量。部分提供商会在完成身份验证后解除限制,其他提供商则永不解除。

sudo apt install -y netcat-openbsd
timeout 8 nc -vz smtp.gmail.com 25
timeout 8 nc -vz smtp.gmail.com 587

连接路径开放时会输出 Connection to smtp.gmail.com ... 25 port [tcp/smtp] succeeded!。被阻断时通常完全没有输出,直到 timeout 终止命令,因为数据包会被静默丢弃,而不是被拒绝。端口 587 可以连接,而端口 25 一直无响应,这是 OP25B 的典型特征:您仍可将邮件提交给接受 587 端口投递的中继服务器,但无法直接投递到其他邮件服务器。

邮件投递还需要提供商控制的另一项配置。接收服务器会检查您 IP 地址的反向 DNS(逆引,即 PTR 记录),只有地址持有者可以设置该记录。如果提供商不为您设置 PTR 记录,即使端口未被阻断,直接投递仍然不可靠。请将中继服务的费用计入预算,并将端口 25 可用视为额外条件,而不要将其作为既定方案。

此方案是否配备 GPU?

如果规格表中没有 GPU 一栏,则该方案不配备 GPU。提供 GPU 算力的供应商会在方案名称和价格中明确说明。普通方案提供的是虚拟显示适配器,用于让 Web 控制台绘制屏幕,不执行任何计算。

sudo apt install -y pciutils
lspci | grep -iE 'vga|3d|display'
ls /dev/nvidia* 2>/dev/null || echo none
nvidia-smi

Cirrus Logic GD 5446、QXL paravirtual graphic card 或 Bochs 显示设备都是不支持 CUDA 的控制台适配器。在未安装驱动时,nvidia-smi 会输出 command not found;安装了驱动但没有向你直通设备时,会输出 NVIDIA-SMI has failed because it couldn't communicate with the NVIDIA driver。

这对两类用户很重要。如果你想运行语言模型,在普通 VPS 上的实际做法是保持主机配置较小,并通过网络调用托管模型。这正是在 VPS 上运行并调用模型 API 的代理的工作方式,它需要的是带宽,而不是本地计算芯片。如果你想玩游戏或进行游戏串流,请参阅VPS 能否用于游戏以及不能做什么。

自定义 ISO 上传和操作系统列表

日本国内的服务商通常会公布较长的操作系统列表(提供OS 或 OSテンプレート),而且通常不允许上传自有镜像(ISOイメージのアップロード)。请将这两项信息结合起来查看,因为它们共同决定了您究竟能安装什么。如果所需版本不在列表中,且服务商不提供 ISO 上传功能,那么无论配置表中承诺了其他什么内容,该方案都无法运行此版本。

  • 确切的版本,而不只是发行版名称。配置表只写 Ubuntu 而没有版本号时,实际版本可能已经落后两个版本。
  • 控制台、VNC 或串行控制台。防火墙规则导致 SSH 被拒后,您可以通过它恢复访问。
  • 针对无法启动的实例提供救援模式。
  • 替换内核或引导加载程序是否会导致您失去支持资格。

在容器方案中,操作系统列表仅表示用户空间模板。在其中选择 Ubuntu 24.04,得到的是运行在主机内核上的 Ubuntu 用户空间,因此 uname -r 不会与您的选择匹配,任何以“加载此内核模块”开头的操作说明都会失败。自行运行的系统容器的行为也相同,因此在购买容器方案前,可以用它们以较低成本了解这类限制。阅读廉价 VPS 方案介绍了该页面的其余内容,包括那些容易被略过的条目。

页面未说明的内容,以及提问方式

有些限制不会显示在页面上。与多少客户共享物理 CPU 核心是其中最大的一项,只有购买后才能看到,表现为 st 的 top 列中出现 嘈杂邻居占用的 steal time。磁盘性能也是如此:仅标注容量和 NVMe,仍无法得知每个方案设置的 IOPS 上限。带宽通常标为 無制限(unlimited),下方再附加公平使用条款;真正的数值往往写在条款中。谁负责管理服务器,与服务器能够运行什么是两个不同的问题;托管和非托管方案回答的是前一个问题。

页面缺少某项信息时,应在付款前询问,并保留回复。销售页面可能随时更改,且不另行通知。支持工单带有日期,可在之后作为凭据引用。发送一条消息,每行只问一个问题。

  • 仮想化方式は KVM ですか。(虚拟化方式是 KVM 吗?)
  • カーネルモジュールの読み込みと /dev/net/tun の利用は可能ですか。(可以加载内核模块并使用 /dev/net/tun 吗?)
  • ネスト仮想化は有効ですか。(嵌套虚拟化已启用吗?)
  • CPU は host-passthrough ですか、汎用モデルですか。(CPU 型号是 host-passthrough,还是通用型号?)
  • IPv6 アドレスのプレフィックス長を教えてください。(请告知分配的 IPv6 前缀长度。)
  • 25番ポートの送信制限はありますか。解除は可能ですか。(出站 25 端口是否受限?可以解除限制吗?)
  • 独自の ISO イメージをアップロードできますか。(可以上传自定义 ISO 镜像吗?)

新服务器的十分钟检查

在新 VPS 上首次登录时运行此命令,然后再安装其他任何软件。它会在一个屏幕中回答上面的所有问题,而且在你尝试下一家提供商时,可以再次免费运行。

sudo apt update && sudo apt install -y virt-what cpu-checker pciutils netcat-openbsd
echo virt: $(systemd-detect-virt)
echo kernel: $(uname -r) $(uname -m)
echo tun: $(test -c /dev/net/tun && echo present || echo missing)
echo kvm: $(test -c /dev/kvm && echo present || echo missing)
echo flags: $(lscpu | grep -owE 'aes|avx|avx2|avx512f' | sort -u | xargs)
echo ipv6: $(ip -6 addr show scope global | grep -c inet6) global addresses
echo display: $(lspci | grep -icE 'vga|3d|display') devices
timeout 8 nc -vz smtp.gmail.com 25 || echo port25: blocked or filtered

保存该输出。如果事实证明这台服务器不适合该工作负载,退款申请应附上保存的文本。与描述你原本预期获得的配置相比,这些实际输出更具说服力。

FAQ

如何判断 VPS 是 KVM 还是容器?

在服务器上运行 systemd-detect-virt。kvm 或 qemu 表示使用独立内核的完全虚拟化。lxc、lxc-libvirt 或 openvz 表示与主机共享内核的容器。使用 virt-what 确认,然后交叉检查两项:将 uname -r 与发行版实际提供的内核进行比较,将 free -m 与你购买的内存进行比较。无论是否安装 lxcfs,容器都会报告主机的内核版本,因为 lxcfs 不会修改内核版本,而 UTS 命名空间只隔离主机名和 NIS 域名。未安装 lxcfs 的容器还会报告主机内存,这通常是最明显的判断依据。

为什么 WireGuard 在我的 VPS 上因“Operation not supported”失败?

wg-quick up wg0 输出 RTNETLINK answers: Operation not supported,表示当前使用的内核不会为你创建 WireGuard 接口。在容器方案中这是预期行为,因为内核属于主机,系统会拒绝加载模块。接下来检查 ls -l /dev/net/tun:没有该设备节点,即使是 wireguard-go 用户态实现也无法运行。许多服务商可以根据请求为容器启用 TUN/TAP。在 KVM 方案中,该模块自 Linux 5.6 起已进入主线内核,因此如果出现相同消息,通常说明内核版本非常旧。

我可以从日本 VPS 发送电子邮件吗?

通常不能直接发送。OP25B(出站端口 25 封锁)在日本的网络和托管服务中很常见,因此出站 TCP 25 会被丢弃,连接会一直挂起,而不是快速失败。使用 timeout 8 nc -vz smtp.gmail.com 25 测试,并将结果与端口 587 进行比较。向服务商确认两点:是否可以解除端口 25 限制,以及是否会为你的地址设置反向 DNS(PTR)记录。没有 PTR 记录时,即使端口 25 已开放,直接投递仍不可靠,因此通过端口 587 使用中继是实际可行的方案。

VPS 是否附带 GPU?

标准方案不附带 GPU。在普通 VPS 上运行 lspci 时,通常会显示 QXL 或 Bochs 等虚拟显示适配器;这些设备仅用于 Web 控制台,无法运行 CUDA。nvidia-smi 要么完全不存在,要么会报告无法与 NVIDIA 驱动通信。GPU 资源作为独立产品线销售,价格也单独计算,因此规格表未列出 GPU 型号,就表示没有 GPU。

购买前应检查哪些 CPU 标志?

使用 lscpu | grep -owE 'aes|avx|avx2|avx512f' 检查 aes 和 avx。缺少 AES-NI 会降低每次 TLS 握手和每次加密磁盘写入的速度,因为 OpenSSL 会回退到软件实现。缺少 AVX 会导致部分软件完全无法启动:在屏蔽 AVX 的主机上,MongoDB 5.0 及更高版本会以 Illegal instruction (core dumped) 退出。lscpu 中出现 Common KVM processor 这类通用型号名称是警告信号,因为通用型号只会公布整个主机集群中所有主机都支持的标志。

#vps#compatibility#virtualization#buying-guide#kernel-modules