WireGuardとOpenVPN、自宅運用ならどちら?
VPSで1人運用するならWireGuardが有力です。設定は約10行、接続は1秒未満。OpenVPNを選ぶべき4つの例外も条件別に解説します。
短い結論
自分の VPS で VPN サーバーを 1 人で運用する場合、WireGuard と OpenVPN の比較は接戦になりません。WireGuard を選んでください。WireGuard は規模が小さく、Linux カーネル内で動作し、1 秒未満で接続でき、動作するクライアント設定も約 10 行です。OpenVPN が必要になる実際の用途は 4 つありますが、どれも該当しないなら OpenVPN は必要ありません。
その 4 つは、TCP port 443 だけを許可するネットワークから外部へ接続すること、既存の認証局に接続すること、パスワードまたは 2 要素認証で名前付きユーザーを認証すること、Layer 2 でブリッジすることです。以下では、この推奨の根拠と、それぞれの例外が適用される具体的な条件を説明します。
自己ホスト運用者に WireGuard が選ばれた理由
コードベースが十分に小さく、読み通せます。 WireGuard プロジェクトのプロトコル実装は、およそ 4,000 行です。OpenVPN は、すべての暗号処理で依存する OpenSSL ライブラリまで含めると、6 桁の行数になります。規模が重要なのは、すべての行が攻撃対象領域になるためです。あなたやレビュー担当者が 100,000 行を読むことはありません。しかし 4,000 行なら読めます。
カーネルで動作します。 WireGuard は Linux 5.6 以降の mainline に含まれているため、Ubuntu 24.04 と Debian 13 ではコンパイルせずに利用できます。パケットは、すでに存在する場所である kernel space で暗号化されます。userspace のプロセスへコピーして戻す処理もありません。まず次を確認します。
sudo modprobe wireguard && echo okKVM VPS では、ok と表示されます。OpenVZ や LXC など、ホスト kernel を共有するコンテナ仮想化では Operation not supported で失敗します。自分のものではない kernel にモジュールをロードできないためです。
ネゴシエーションがありません。 WireGuard の cipher suite は固定された 1 種類だけです。データには ChaCha20-Poly1305 を使用し、鍵には Curve25519 を使用します。ダウングレードできるバージョンも、誤設定につながるオプションもありません。OpenVPN は各クライアントと cipher および TLS (transport layer security) version をネゴシエーションします。これは柔軟性である一方、誤設定が発生する箇所でもあります。data-ciphers AES-256-GCM:AES-128-CBC のままサーバーを運用すると、より強い cipher を提示しないクライアントに対して CBC cipher へ問題なくフォールバックします。ログも、より弱い cipher の使用を問題として示しません。data channel offload が利用できる場合、OpenVPN は CBC の項目によって offload が無効になったという注記を出します。これは速度に関する警告であり、セキュリティに関する警告ではありません。
ポートが応答しません。 メッセージ認証の検証に失敗した WireGuard パケットは、まったく応答せずに破棄されます。そのため nmap -sU -p 51820 からは、WireGuard サーバーと firewall が黙って破棄するポートを区別できません。どちらも open|filtered になります。フィルタリングされておらず、何も listening していないポートだけは判別できます。kernel が ICMP port unreachable で応答し、nmap が closed と報告するためです。TCP mode の OpenVPN サーバーは、接続を受け入れないと判断する前に TCP handshake を完了します。これだけで、scanner に何かが存在することを示せます。tls-crypt を指定した UDP 上の OpenVPN はほぼ同じ程度に静かです。したがって、これは OpenVPN 自体ではなく、OpenVPN を TCP で実行することへの反論です。
ローミングに追加コストがありません。 WireGuard peer は address ではなく public key で識別されます。ノート PC を自宅からモバイル hotspot へ移動し、新しい address から handshake を 1 回送ると、サーバーは応答先の endpoint を更新します。何も再接続されません。そもそも何も接続状態ではなかったためです。OpenVPN でも float により同様の動作が可能ですが、通常はクライアントが完全な TLS session を切断して再構築します。そのため、OpenVPN では lid-open 後の一時停止が目立ちますが、WireGuard では発生しません。
2026 年の速度: 差は縮小
長年、速度に関する率直な説明は、OpenVPN ではすべてのパケットを userspace にコピーしてそこで暗号化し、再びコピーして戻す一方、WireGuard ではパケットが kernel の外に出ないというものでした。しかし、現在ではそれが全体像ではありません。この点を無視した比較は古いものです。
OpenVPN 2.7 は 2026 年 2 月に、Linux 6.16 にマージされた upstream の ovpn kernel module をサポートしてリリースされました。これは DCO (data channel offload) です。control channel は userspace に残し、大量のデータを処理する経路を kernel に移します。これは、WireGuard が従来から行ってきた方式とほぼ同じです。これを利用できる十分に新しい kernel と OpenVPN を使えば、throughput は別格ではなく、同じ水準になります。実際の環境を確認してください。
uname -r
openvpn --version | head -n 1
modinfo ovpn 2>/dev/null | head -n 32026 年 10 月時点で、標準の Ubuntu 24.04 LTS に搭載される OpenVPN は 2.7 ではなく 2.6 です。また、ovpn module には 2.7 が必要です。この release で offload を利用するには、古い openvpn-dco-dkms package を使う必要があります。この package は実行中の kernel に対して out-of-tree module をビルドするため、kernel をアップグレードするたびに再ビルドが必要です。これは WireGuard にはない運用上の要素です。Ubuntu 26.04 LTS には OpenVPN 2.7.0 と Linux 7.0 kernel が搭載され、どちらも ovpn を利用するのに十分新しいため、この release では上記の modinfo 行を確認してください。
DCO を利用する理由として数える前に、制限事項を確認してください。DCO がサポートするのは Layer 3 tunnel だけです。使用できるのは AEAD cipher (authenticated encryption with associated data: AES-GCM または ChaCha20-Poly1305) だけです。compression はサポートしません。また、server では topology subnet との組み合わせでのみ動作します。これらの制限はすべて、そもそも OpenVPN の強みだった柔軟性の一部を失わせます。高速な OpenVPN は、WireGuard のように見えるよう設定した OpenVPN です。
このページを含め、公開されている throughput の数値をそのまま信用しないでください。VPS での上限は通常、protocol ではなく CPU allowance または network allowance によって決まります。まず tunnel 経由で iperf3 を実行して測定し、その後 tunnel の外側でもう一度測定して、2 つを比較してください。
OpenVPN が引き続き有効な場面
TCP port 443 で外部ネットワークへ接続する必要がある場合。 WireGuard は意図的に UDP 専用となっており、TCP mode が追加される予定はありません。ポート番号だけでフィルタリングするホテルのネットワークなら、proto tcp-server と port 443 を設定した OpenVPN は通常通過します。ただし、これを通信の偽装と考えてはいけません。OpenVPN over TCP は通常の TLS セッションではなく、独自のパケットフレーミングを使用します。そのため、HTTPS を検査または終端する企業の firewall や proxy から認識され、ブロックされる可能性があります。同じネットワークを通過させるには、WireGuard に wstunnel や udp2raw などの wrapper が必要です。実行してパッチを適用し続けるプロセスが 1 つ増えます。競合にも注意してください。その IP address で web server がすでに TCP 443 を使用している場合、2 つのうちどちらかを別の場所へ移す必要があります。
すでに certificate authority を運用している場合。 OpenVPN は X.509 certificates で認証するため、すでに運用している PKI (public key infrastructure) に組み込めます。Certificates には有効期限があり、server が crl-verify を通じて読み取る certificate revocation list に追加することで、個別の certificate を失効させられます。WireGuard には certificates、期限、revocation list がありません。peer を削除するには、server config を編集して再読み込みする必要があります。peer が 10 個なら問題ありません。監査要件がある環境で 400 個になると、certificate model が実際に役立ちます。
keys だけでなく、名前付きユーザーが必要な場合。 OpenVPN は auth-user-pass-verify や openvpn-plugin-auth-pam.so などの plugin を使用して、認証を外部システムに委任できます。これにより LDAP やワンタイムパスワードによる 2 要素認証を追加できます。WireGuard には user という概念自体がありません。key が config にあるか、ないかのどちらかです。「Sara が phone の code を入力する必要がある」という要件を、WireGuard 単独で表現することはできません。
Layer 2、または古い環境向けの client が必要な場合。 dev tap を使用する OpenVPN は Ethernet frames をブリッジします。これは broadcast protocols や古い LAN games で重要です。WireGuard は Layer 3 専用であり、今後も変わりません。WireGuard app が提供されることのない hardware や operating systems にも、OpenVPN の clients があります。いずれも該当する場面は減っています。また、dev tap は DCO と互換性がないため、bridge を使用すると低速な経路になります。
2 つの構成で実際に発生するコスト
WireGuard の ID は 1 つのコマンドで作成できます。かっこが重要なのは、鍵を作成する前にファイルモードを設定するためです。
(umask 077; wg genkey > private.key)
wg pubkey < private.key > public.keyOpenVPN では、VPN を運用する限り自分で管理する認証局が必要です。
sudo apt install -y easy-rsa
make-cadir ~/openvpn-ca
cd ~/openvpn-ca
./easyrsa init-pki
./easyrsa build-ca
./easyrsa gen-req server nopass
./easyrsa sign-req server serverどちらの一覧も不公平な比較ではありません。認証局によって有効期限と失効管理を利用できますが、その代わりに、何年も保護し続ける必要がある秘密鍵、忘れずに実施する更新、秘密鍵を失った場合の再構築が必要になります。認証局の機能を利用しないのであれば、そのためのコストを支払っているだけです。転送、NAT (network address translation)、および午後の大半を費やすことになるハンドシェイク失敗まで含む WireGuard の完全な手順については、VPS で WireGuard VPN をセルフホストするためのガイドを参照してください。
ファイアウォールに必要な設定
WireGuard に必要な受信ルールは、ListenPort のポートで UDP を許可する 1 つだけです。
sudo ufw allow 51820/udp
sudo ufw status verboseOpenVPN では、デフォルトで UDP 1194 を使用します。TCP 443 を選択した場合は、TCP 443 を使用します。どちらの場合も、IP forwarding と source NAT ルールを有効にする必要があります。Linux ホストは、自身宛てではないパケットを破棄するためです。この部分は両方のプロトコルで共通です。「トンネルは接続できるがインターネットに接続できない」という報告の多くは、ここが原因です。ufw を初めて使用する場合は、VPS で ufw firewall を使用する基本から始めてください。また、多くのプロバイダーはコントロールパネルで別のネットワーク firewall も提供しています。サーバー上でルールを追加しても、パケットがサーバーに到達しなければ効果はありません。ポートとは何か、Linux がポートで待ち受ける仕組みを理解しておくと、これら 2 つの確認を迅速に行えます。
選び方を1段落で
WireGuard では実現できない具体的な要件を説明できない限り、WireGuard を使用してください。制限の厳しいネットワークから外部へ接続するために TCP 443 が必要な場合は、OpenVPN を TCP 443 で使用してください。両方を併用することも検討できます。使用するポートが異なるため、1 台のサーバー上で競合なく共存できます。ユーザーごとのアカウントや2要素認証が必要な場合は、WireGuard に無理に追加しようとしないでください。その上位に ID 管理レイヤーを配置してください。自己ホスト型の Headscale コントロールサーバーは内部で WireGuard を使用し、通常の WireGuard では自分で管理する必要があるアカウントモデル、鍵の配布、デバイスの承認を追加します。
OpenVPN から停止時間なしで移行する
変換処理はありません。OpenVPN の PKI を WireGuard の鍵に変換することはできません。WireGuard には変換元となる証明書がないためです。各クライアントには、サーバーと同じ方法で新しい鍵ペアを生成して割り当てます。
切り替えではなく、並行して移行します。同じサーバー上で WireGuard を UDP 51820、OpenVPN を 1194 で同時に実行できます。そのため、wg0 を起動し、sudo wg show で最近の latest handshake が表示されることを確認してから、クライアントを 1 台ずつ移行します。OpenVPN のピア一覧に変化がなくなったら、sudo systemctl disable --now openvpn-server@server でサービスを停止します。確実に移行できたと判断するまで CA ファイルを保持してください。削除した CA で失効済みクライアントを再構築することはできません。
移行できないものが 1 つあります。ユーザー名とパスワードによるアカウント、およびそれに紐付いた失効履歴です。古いサーバーを停止する前に、それらの情報をどこで管理するか決めてください。停止した後では対応できません。
FAQ
WireGuard は OpenVPN より高速ですか?
標準構成の Ubuntu 24.04 サーバーでは、はい。しかも大幅に高速です。WireGuard はカーネル内で暗号化するのに対し、OpenVPN 2.6 はすべてのパケットをユーザー空間のプロセスに通すためです。OpenVPN 2.7 と Linux 6.16 の ovpn カーネルモジュールを使用すると、データパスもカーネル内になり、両者は同程度になります。ブログの数値をそのまま信用せず、トンネル経由で iperf3 を使って自分の環境を測定してください。VPS では通常、上限を決めるのは CPU または帯域幅の割り当てだからです。
WireGuard は TCP port 443 経由で実行できますか?
単独ではできません。WireGuard は設計上 UDP 専用であり、TCP モードの予定もありません。TCP 443 のみを許可するネットワークを通すには、wstunnel や udp2raw などのトンネルで WireGuard をラップします。ただし、両端で実行とパッチ適用が必要なプロセスが増えます。その制限が通常の作業環境にある場合、ポートだけを基準にフィルタリングするネットワークでは、proto tcp-server と port 443 を使用する OpenVPN のほうが簡単です。ただし、HTTPS を検査するプロキシであれば検出され、ブロックされる可能性があります。
OpenVPN は現在、安全ではないのですか?
いいえ。AES-256-GCM などの AEAD 暗号と tls-crypt を有効にした最新の OpenVPN は、堅牢な VPN です。WireGuard を選ぶ理由は別にあります。OpenVPN はコード量もオプション数もはるかに多いため、管理者が誤って設定する余地も増えます。選択肢が少なければ、誤った設定も減ります。
VPS で個人用 VPN を運用する場合、どちらを選ぶべきですか?
WireGuard です。デバイスごとに 1 組の鍵ペア、約 10 行の設定ファイル、開放する UDP ポートは 1 つだけで、ハンドシェイクも開始したことに気付く前に完了します。UDP をブロックするネットワークから頻繁に接続する場合、または既存の認証局やユーザーディレクトリに組み込む必要がある場合に限り、OpenVPN を選んでください。