VPSで動作するか確認する方法:契約前に見るべき7つのスペック項目
VPS契約前に確認すべきスペック表の重要項目を解説します。仮想化方式、/dev/net/tun、Nested KVM、AES-NI、IPv6、GPU、アウトバウンド25番ポートの可否をチェックし、ソフトウェアが確実に動作する環境かを見極めるための判断基準をまとめました。
VPSで動作するかどうか:スペック表の7項目を確認する
実行したいソフトウェアがVPSで動作するかは、料金を支払う前にプランのスペック表にある約7つの項目で判断できます。ほとんどのソフトウェアはどのプランでも問題なく動作します。動作しない場合は、ホスト側で特定の要件が必要です。具体的には、変更可能なカーネル、プロバイダーが作成したデバイスノード、ハイパーバイザーがパススルーするCPUフラグ、またはブロックされていないアウトバウンドポートなどです。
日本の国内プロバイダーは非常に詳細なスペック表を公開しているため、これらの回答のほとんどはページ上のどこかに記載されています。重要なのは、どの項目がどの質問に答えているかを理解すること、そして記載がない場合にサポートへ何を問い合わせるべきかを知ることです。これらは、各サービス間で明確に異なる互換性チェック項目です。
- 仮想化方式。KVMプランは物理マシンと同様に動作します。コンテナプランはホストカーネルを共有するため、一部のワークロードは実行できません。
- カーネルモジュールと
/dev/net/tun。WireGuardやOpenVPNにはこれらが必要です。 - ネストされた仮想化。VPS内部でVMを動かすには
/dev/kvmが必要です。 - CPUフラグ。AES-NIやAVXはほとんどのゲストOSで利用可能ですが、一部ではマスクされています。
- IPv6。ルーティング可能なアドレスが提供されるか、およびプレフィックスのサイズを確認します。
- GPU。標準プランには搭載されておらず、スペック表に記載がないことで判断できます。
- アウトバウンドの25番ポート。日本の市場ではデフォルトでブロックされていることが一般的です。
以下のチェックはすべて、試用期間中または返金期間内に、実際のサーバー上で実行してください。スペック表はプロバイダーが販売を意図している内容を示し、コマンドは実際に提供されたマシンの状態を示します。
仮想化方式が示す意味
仮想化方式または仮想化技術を確認してください。値は KVM(完全仮想化と表記されることもあります)か、OpenVZ や LXC といったコンテナ型(コンテナ技術)のいずれかです。Xen は古いプランで見られますが、本ガイドのすべての手順において KVM と同様に動作します。
KVM プランでは独自のカーネルを利用できます。モジュールのロード、sysctl の設定、別のカーネルのインストール、およびそれによる再起動が可能です。コンテナプランでは、カーネルはホストに属しており、同じマシン上の他のすべてのユーザーと共有されます。カーネルの変更やモジュールのロードはできません。モジュールはカーネルの完全な権限で動作するため、コンテナの境界を越えてしまうからです。この唯一の差異が、フォーラムで見かける「他の VPS では動作した」という報告のほとんどの原因となっています。
systemd-detect-virt
uname -r
free -mkvm または qemu は完全仮想化を意味します。lxc、lxc-libvirt、または openvz はコンテナを意味します。VPS として販売されている環境で none と表示される場合は、物理ハードウェアか、自身を隠蔽するハイパーバイザーのいずれかであるため、virt-what パッケージの virt-what コマンドで確認してください。コンテナであることのさらなる兆候として、uname -r が選択したディストリビューションと一致しないカーネルバージョンを報告する場合や、free -m が契約した以上のメモリ量を報告する場合があります。これはコンテナがホストの /proc/meminfo を読み取っているためです。
これら 2 つのモデル間の隔たりは価格差よりも大きいため、コストだけでプランを比較する前に KVM、Xen、LXC がそれぞれ提供するもの を一読する価値があります。Docker はよく問題になります。KVM プランであればどれでも動作しますが、コンテナプランの場合はプロバイダーがコンテナのネストを有効にしている場合にのみ動作します。そのため、VPS 上の Docker ホスト が可能であると想定する前に、まずはプロバイダーに確認してください。
カーネルモジュールのロードと /dev/net/tun のオープンは可能か?
これは VPN に関する質問であり、2 つの側面があります。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 用にサーバーを購入する場合、これは最も有益な事前確認事項です。表現について 1 つ注意点があります。「VPN利用可」という記載は利用規約上の記述であり、技術的な機能の保証ではありません。両方の回答を同じメッセージで問い合わせてください。
ネストされた仮想化は利用可能ですか?
ネストされた仮想化とは、VPS 内でハイパーバイザーを動作させることを指します。これは VM のラボ環境や、独自のマイクロ VM を起動するツールを使用する場合に必要です。これを利用するには、ホスト側が CPU の仮想化フラグをゲストにパススルーし、kvm_intel または kvm_amd モジュールを nested=Y で実行する必要があります。このスイッチはハイパーバイザー側にあるため、VPS の内部から有効化することはできません。
sudo apt install -y cpu-checker
grep -owE 'vmx|svm' /proc/cpuinfo | sort -u
kvm-ok/proc/cpuinfo 内で vmx (Intel) または svm (AMD) が確認できれば、フラグは正常に到達しています。その状態で 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 はソフトウェアエミュレーションで起動しますが、すべてのゲスト命令が変換されるため、実用性に欠けるほど低速になります。-enable-kvm を指定して起動した場合は、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 -uModel name: QEMU Virtual CPU version 2.5+ または Common KVM processor は汎用的なケースです。Intel Xeon Processor (Skylake, IBRS) や AMD EPYC-Rome Processor のような実際のモデル文字列が表示されている場合は、ホストの機能セットがより多くゲストに反映されています。
実際のワークロードを左右するのは 2 つのフラグです。AES-NI はハードウェアで AES を実行するため、TLS (transport layer security) とディスク暗号化のスループットを決定します。OpenSSL を使用して手動でフラグをマスクできるため、1 台のサーバーでその差を測定可能です。
openssl speed -elapsed -evp aes-128-gcm
OPENSSL_ia32cap=~0x200000200000000 openssl speed -elapsed -evp aes-128-gcm2 回目の実行はソフトウェアパスによるものです。2 回の実行結果が同程度の数値であれば、ゲストは最初から AES-NI を利用できていません。VPS における AES-NI の価値 には、これら 2 つのパス間の数値的な差が示されています。
AVX はより深刻な障害となります。AVX を必要とするソフトウェアは、事前に警告を発しないためです。MongoDB 5.0 以降は AVX を必須としており、AVX がマスクされたホスト上では、サーバーは Illegal instruction (core dumped) を出力して即座に停止します。その際、サーバーのログには有用な情報は残りません。-march=native を指定して新しいマシンでコンパイルされたバイナリも、同様に失敗します。
uname -m は、購入者が忘れがちな問いに対する答えです。通常は x86_64 ですが、aarch64 の場合は Arm プランを意味します。その場合、実行予定のすべてのバイナリとコンテナイメージが arm64 に対応している必要があります。価格差に惹かれる場合は、Arm と x86 VPS プラン を読んで判断してください。
そのプランで実際に IPv6 は利用できますか?
その項目には「IPv6対応」または「IPv6アドレス」と記載されています。「対応」という言葉は、ネットワークが IPv6 を伝送していることを示します。しかし、サーバーにどの程度の範囲のアドレス空間が割り当てられるかまでは示されておらず、構築可能な構成はこれによって決まります。
ip -6 addr show scope global
ip -6 route show default
ping -6 -c 3 ipv6.google.comIPv6 アドレスが fe80: で始まるインターフェースはリンクローカルアドレスのみを保持しており、ルーティング可能な IPv6 アドレスを持っていません。そのため、パブリックホストへの ping -6 は Network is unreachable エラーで失敗します。グローバルアドレスが 1 つあれば、Web サイトの AAAA レコードを公開するには十分です。しかし、コンテナや、各ピアにアドレスを割り当てる VPN には不十分であり、これらには /64 のプレフィックスが必要です。一部のプロバイダーは要求があった場合にのみプレフィックスを発行するため、「IPv6 に対応しているか」ではなく「プレフィックス長はいくつか」を問い合わせてください。
IPv6 専用プランは一部の市場では安価です。しかし、プロバイダー側で NAT64(2 つのプロトコル間のネットワークアドレス変換)と DNS64 が提供されていない限り、IPv4 専用のサービスには到達できません。また、多くのパッケージミラーや決済 API は依然として IPv4 専用です。価格だけで購入を決める前に、変換機能が存在するかを確認してください。
アウトバウンドの 25 番ポートはブロックされていますか?
日本国内では、ブロックされていると想定してください。OP25B(Outbound Port 25 Blocking)は、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 アドレスの逆引き(PTR レコード)を確認しますが、これを設定できるのは IP アドレスの保有者のみです。プロバイダーが PTR レコードの設定に応じない場合、たとえ 25 番ポートがブロックされていなくても、直接配送の信頼性は低いままとなります。リレーサービスの利用を予算に組み込み、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-smiCirrus 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 を出力します。
これは 2 種類のユーザーにとって重要です。言語モデルを実行したい場合、一般的な VPS での現実的な方法は、サーバーを軽量に保ち、ネットワーク経由でホスト型のモデルを呼び出すことです。これが VPS 上で動作しモデル API を呼び出すエージェント の仕組みであり、必要なのはシリコンではなく帯域幅です。ゲームのプレイや配信を目的とする場合、その答えは VPS で可能なことと不可能なこと に正直に記載されています。
カスタムISOのアップロードとOSリスト
日本の国内プロバイダーは通常、長いOSリスト(提供OSまたはOSテンプレート)を公開していますが、独自のISOイメージのアップロードを許可していないことがほとんどです。これら2つの項目は、インストール可能なOSを決定する重要な要素であるため、セットで確認してください。必要なリリースがリストになく、ISOアップロードも提供されていない場合、スペック表で他にどのような謳い文句があろうとも、そのプランで目的のOSを動かすことはできません。
- ディストリビューション名ではなく、正確なリリースバージョンを確認してください。バージョン番号のない「Ubuntu」という表記は、2世代前のリリースである可能性があります。
- コンソール、VNC、またはシリアル接続の有無を確認してください。これらは、ファイアウォール設定のミスでSSH接続が遮断された際の救済手段となります。
- サーバーが起動しない場合に備えたレスキューモードの有無を確認してください。
- カーネルやブートローダーの置き換えがサポート対象外となるかどうかを確認してください。
コンテナプランにおけるOSリストは、ユーザー空間のテンプレートに過ぎません。そこでUbuntu 24.04を選択しても、ホストのカーネル上でUbuntuのユーザーランドが動くだけです。そのため、uname -rの結果は選択したOSと一致せず、「このカーネルモジュールを読み込む」といった手順はすべて失敗します。自分で実行するシステムコンテナも同様の挙動をとるため、コンテナプランを契約する前に制限を把握するための安価な手段として活用できます。安価なVPSのオファーを読むでは、読み飛ばされることを前提に書かれた項目を含め、ページ内のその他の要素について解説します。
仕様書に記載されていない事項と問い合わせ方法
一部の制限はページ上に明記されません。最大の要因は、物理コアを何人の顧客と共有しているかという点です。これは購入後に初めて判明するもので、top の st 列にある 隣接するノイジーネイバーによる steal time として確認できます。ディスクの挙動も同様です。容量と NVMe という表記だけでは、プランごとに適用される IOPS の上限は分かりません。帯域幅は「無制限」と記載されていても、その下に「フェアユース条項」が隠されており、実質的な数値はその条項で規定されます。サーバーの管理主体と実行可能な処理は別問題であり、これについては マネージドプランとアンマネージドプラン で説明されています。
記載がない項目については、支払う前に問い合わせ、その回答を保存してください。販売ページは予告なく変更されます。サポートチケットは、後で提示できる日付入りの証拠となります。質問は1行につき1つずつ、メッセージを送ってください。
- 仮想化方式は KVM ですか。
- カーネルモジュールの読み込みと /dev/net/tun の利用は可能ですか。
- ネスト仮想化は有効ですか。
- CPU は host-passthrough ですか、汎用モデルですか。
- IPv6 アドレスのプレフィックス長を教えてください。
- 25番ポートの送信制限はありますか。解除は可能ですか。
- 独自の ISO イメージをアップロードできますか。
新規サーバーにおける10分間の確認作業
新しいVPSの最初のセッションで、他のソフトウェアをインストールする前に以下のコマンドを実行してください。これにより、前述のすべての疑問が1画面で解消されます。また、別のプロバイダーを試す際にも無料で何度でも実行可能です。
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 で確認し、さらに2点を確認します。まず uname -r とディストリビューションが提供する実際のカーネルを比較し、次に free -m と契約したメモリ容量を比較します。lxcfs を使用していないコンテナはホストのカーネルバージョンとホストのメモリ容量を表示するため、これが最も明確な判断材料となります。
VPSでWireGuardが「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(Outbound Port 25 Blocking)が一般的であり、送信側のTCP 25番ポートは遮断されるため、接続は即座に失敗せずタイムアウトします。timeout 8 nc -vz smtp.gmail.com 25 でテストを行い、587番ポートの結果と比較してください。プロバイダーには、25番ポートの制限を解除できるか、およびIPアドレスに対して逆引きDNS(PTR)レコードを設定できるかの2点を問い合わせてください。PTRレコードがない場合、25番ポートが開いていても直接配送の信頼性は低いため、587番ポートを使用したリレー経由が現実的な選択肢となります。
VPSにGPUは搭載されていますか?
標準プランには搭載されていません。通常のVPSで lspci を実行すると、Webコンソール用のQXLやBochsデバイスといった仮想ディスプレイアダプターが表示されますが、これではCUDAを実行できません。nvidia-smi は存在しないか、NVIDIAドライバーと通信できない旨が報告されます。GPUリソースは独自の価格設定を持つ別製品として販売されているため、スペックシートにGPUモデルの記載がない場合は、GPUが搭載されていないことを意味します。
購入前に確認すべきCPUフラグは何ですか?
lscpu | grep -owE 'aes|avx|avx2|avx512f' を使用して aes と avx を確認してください。AES-NIが欠如していると、OpenSSLがソフトウェア実装にフォールバックするため、すべてのTLSハンドシェイクと暗号化ディスク書き込みが低速化します。AVXが欠如していると、ソフトウェアが起動しない場合があります。例えば、MongoDB 5.0以降はAVXがマスクされたホスト上で Illegal instruction (core dumped) を出力して終了します。lscpu に Common KVM processor のような汎用的なモデル名が表示される場合は注意が必要です。汎用モデルは、フリート内のすべてのホストが共通して持つフラグしか通知しないためです。