VPSで動くか購入前に確認する7項目
VPS購入前に、仮想化方式、`/dev/net/tun`、ネストした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番ポート。日本の市場ではデフォルトでブロックされていることが一般的です。
以下のチェックはすべて、試用期間中または返金期間内に、実際のサーバー上で実行してください。スペック表はプロバイダーが販売を意図している内容を示し、コマンドは実際に提供されたマシンの状態を示します。
仮想化方式の表示から分かること
仮想化方式または仮想化技術(virtualisation method)を探します。値は 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 で確認してください。コンテナを示す兆候は他にも 2 つあります。uname -r が選択したディストリビューションと一致しないカーネルバージョンを報告すること、そしてプロバイダーが lxcfs を実行していない場合に 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 つは、合わせて確認してください。実際に何をインストールできるかは、この 2 つで決まるためです。必要なリリースがリストになく、ISO のアップロードも提供されていない場合、仕様表にほかの記載があっても、そのプランでは実行できません。
- ディストリビューション名ではなく、正確なリリース。バージョン番号のない Ubuntu とだけ記載された仕様表では、2 リリース古い場合があります。
- コンソール、VNC またはシリアル接続。ファイアウォールルールによって SSH から締め出された場合に復旧するために使います。
- 起動しないサーバー用のレスキューモード。
- kernel または bootloader を置き換えると、サポート対象外になるかどうか。
コンテナプランでは、OS リストは userspace のテンプレートにすぎません。そこで Ubuntu 24.04 を選ぶと、ホストの kernel 上で Ubuntu の userland が動作するため、uname -r は選択内容と一致せず、「この kernel module を読み込む」で始まる手順は失敗します。自分で運用するシステムコンテナも同じ動作をするため、コンテナプランを購入する前に制限を低コストで確認できます。低価格 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 がインストールされているかどうかにかかわらず、ホストのカーネルバージョンが報告されます。lxcfs はカーネルリリースを変更せず、UTS namespace が分離するのはホスト名と NIS ドメイン名だけだからです。lxcfs のないコンテナではホストのメモリも報告されるため、これが最も明確な兆候です。
VPS で WireGuard を実行すると「Operation not supported」になるのはなぜですか?
wg-quick up wg0 が RTNETLINK answers: Operation not supported を出力する場合、接続先のカーネルは WireGuard インターフェースを作成できません。コンテナプランでは、カーネルがホストに属し、モジュールの読み込みが拒否されるため、これは想定される動作です。次に ls -l /dev/net/tun を確認してください。このデバイスノードがない場合、wireguard-go の userspace 実装でも実行できません。多くのプロバイダーは、依頼すればコンテナで TUN/TAP を有効にします。KVM プランでは Linux 5.6 以降、モジュールが mainline に含まれているため、同じメッセージが表示されるなら、かなり古いカーネルが原因と考えられます。
日本の VPS からメールを送信できますか?
多くの場合、直接は送信できません。OP25B(送信ポート 25 のブロック)は日本のネットワークやホスティング環境で一般的です。そのため、送信 TCP 25 が破棄され、接続はすぐに失敗せずハングします。timeout 8 nc -vz smtp.gmail.com 25 でテストし、ポート 587 の結果と比較してください。プロバイダーには 2 点を確認します。ポート 25 の制限を解除できるか、そしてアドレスに reverse DNS(PTR)レコードを設定できるかです。PTR レコードがない場合、ポート 25 が開いていても直接配信は安定しません。そのため、ポート 587 の relay を使用するのが現実的です。
VPS には GPU が付属しますか?
標準プランには付属しません。通常の VPS で lspci を実行すると、QXL や Bochs などの仮想ディスプレイアダプターが表示されます。これは Web console 用であり、CUDA は実行できません。nvidia-smi は完全に存在しないか、NVIDIA driver と通信できなかったことを報告します。GPU は独自の料金体系を持つ別の商品ラインとして提供されます。そのため、仕様表に GPU モデルの記載がなければ、GPU がないことを示しています。
購入前に確認すべき CPU flags は何ですか?
lscpu | grep -owE 'aes|avx|avx2|avx512f' で aes と avx を確認します。AES-NI がないと、OpenSSL が software 実装にフォールバックするため、すべての TLS handshake と暗号化ディスクへの書き込みが遅くなります。AVX がないと、一部の software は起動自体に失敗します。AVX をマスクしたホストでは、MongoDB 5.0 以降が Illegal instruction (core dumped) で終了します。lscpu に Common KVM processor のような汎用モデル名が表示される場合は注意が必要です。汎用モデルは、fleet 内のすべてのホストに共通する flags だけを公開するためです。