OpenWrtルーターにVPNを設定すると、家庭内のすべての通信を同じ経路へ送るだけでなく、端末、IPアドレス、ドメイン名、宛先地域などの条件に応じてVPN接続と通常回線を使い分けられます。たとえば、仕事用パソコンは通常回線、特定のサービスを利用する端末だけVPN、家庭内のIoT機器は常に直接接続という構成が可能です。
ただし、ルーターでの分割利用は、WindowsやmacOSのクライアントを起動して接続する方法よりも確認項目が多くなります。VPNプロトコル、ファイアウォールゾーン、DNSの解決経路、IPv6、ポリシールーティングが互いに影響するためです。本記事では、OpenWrtでの構成を最小限から始め、端末単位とドメイン単位のルールを追加し、最後に障害発生時の戻し方まで順番に説明します。
OpenWrtで分割VPNを構成する基本
分割VPNでは、まずルーターとVPNサーバーの間にトンネルを作り、そのトンネルをどの通信が通るかをルールで決めます。ルーター自身の管理通信、LAN内の機器同士の通信、通常のインターネット通信、VPN経由にしたい通信は、それぞれ別の経路として考える必要があります。
OpenWrtで扱いやすい代表的なプロトコルはWireGuardとOpenVPNです。WireGuardは設定項目が比較的少なく、ルーターで常時稼働させる構成に向いています。OpenVPNは対応サービスや資料が多い一方、暗号化方式、証明書、認証ファイル、TCPまたはUDPの選択などを確認する必要があります。Shadowsocks、VMess、Trojan、Hysteria2などを使う場合は、標準のVPN画面だけではなく、対応するクライアントやコアを導入しなければならないことがあります。
2
主な経路
3
確認する層
90+
接続先の国数
200+
利用可能な回線数
主な経路は「通常回線」と「VPNトンネル」の2つです。確認する層は、ルーティング、DNS、ファイアウォールの3つに分けると整理しやすくなります。VPNサービス側が複数の接続先を提供している場合でも、最初からすべてをルーターへ登録する必要はありません。まず一つの接続先でトンネルを完成させ、動作確認後に切り替え用の設定を追加します。
端末単位とドメイン単位の違い
端末単位の分割は、ルーターに接続している特定のIPアドレスやMACアドレスをVPNへ送る方法です。設定と確認が比較的簡単で、動画視聴用の端末、作業用パソコン、ゲーム機など、用途が明確な場合に適しています。ただし、端末のIPアドレスがDHCPによって変わると、ルールが別の機器に適用されたり、想定した機器に適用されなくなったりします。対象機器にはDHCP固定割り当てを設定しておくと安全です。
ドメイン単位の分割は、特定のドメインやドメイン群をVPNへ送る方法です。同じ端末から通常回線とVPNを使い分けられる反面、DNSの解決結果、CDN、リダイレクト先、サブドメインの違いによって期待どおりにならない場合があります。ドメインを一つ登録しただけでは、関連するAPI、画像配信、認証、動画配信のドメインまでVPNへ送られるとは限りません。
| 方式 | 向いている場面 | 注意点 |
|---|---|---|
| 端末単位 | 特定のパソコンやストリーミング端末だけをVPNへ送る | IPアドレスの固定と機器ごとの確認が必要 |
| ドメイン単位 | 同じ端末でサービスごとに経路を分ける | サブドメイン、CDN、DNS応答の影響を受ける |
| 全体適用 | LAN内の多くの通信をまとめてVPNへ送る | 速度、DNS、ローカル機器へのアクセスを確認する |
OpenWrtとVPN接続を準備する
最初に、ルーターのOpenWrtバージョン、CPUアーキテクチャ、空きストレージ、メモリ使用量を確認します。暗号化処理や追加のプロキシコアはルーターの性能を消費するため、仕様だけでなく、現在の負荷も見ておく必要があります。パッケージを追加する場合は、リポジトリの対象バージョンとアーキテクチャが一致していることを確認してください。
次に、VPNサービスから接続情報を用意します。WireGuardなら秘密鍵、アドレス、公開鍵、エンドポイント、許可IPなど、OpenVPNなら設定ファイル、証明書、ユーザー名やパスワードが必要になります。サブスクリプションリンクを利用するサービスでは、OpenWrt標準のネットワーク画面へURLを貼り付けるだけで完了するとは限りません。Clash系、sing-box系、Xray系など対応コアを持つ管理パッケージで変換・更新する方式と、パネルから個別の設定を取得して手動登録する方式を区別してください。
サブスクリプションの内容をルーターへ保存する場合は、管理画面のパスワード、設定ファイル、ログの公開範囲にも注意します。リンクを第三者へ渡すと、接続先の情報や利用権限が漏れる可能性があります。ルーターのログへ認証情報がそのまま表示される構成は避け、不要になった古いリンクはサービス側で更新または無効化します。
- ✅ OpenWrtのバージョンとCPUアーキテクチャを確認する
- ✅ 最初はWireGuardまたはOpenVPNの単一トンネルで試す
- ✅ 対象端末へDHCP固定割り当てを設定する
- ✅ サブスクリプションリンクや秘密鍵をログや画面共有に表示しない
- ❌ 複数のVPNクライアントを同時に同じゲートウェイとして動かさない
VPNトンネルを作成して動作確認する
設定は、まずトンネルだけを作成します。LuCIのネットワーク設定でWireGuardインターフェース、またはOpenVPNクライアントを追加し、サービスから提供されたパラメータを入力します。インターフェース名は後のルーティングやファイアウォール設定で識別できるよう、役割が分かる名前にしておくと管理しやすくなります。
- VPNサービスの案内から、OpenWrtに対応するWireGuardまたはOpenVPNの設定を取得します。
- 秘密鍵、公開鍵、エンドポイント、認証情報、DNS、許可IPなどを入力します。
- VPNインターフェースを作成し、必要なファイアウォールゾーンへ割り当てます。
- VPNインターフェースを起動し、ログに認証失敗、名前解決失敗、ハンドシェイク失敗がないか確認します。
- ルールを追加する前に、ルーター自身またはテスト用端末から接続状態を確認します。
WireGuardでは、ピアとのハンドシェイク時刻、送受信バイト、エンドポイントの情報を確認します。OpenVPNでは、TLSネゴシエーション、証明書検証、認証、仮想インターフェースの起動を順番に見ます。接続済みと表示されても、LAN端末の通信が自動的にVPNへ流れるとは限りません。トンネルが存在することと、ポリシーがそのトンネルを選択することは別の段階です。
この時点では、対象端末をまだ全体ルールへ入れず、経路を限定したテストを行います。ルーターの管理画面へ通常回線からアクセスできること、LAN内のプリンターやNASへ到達できること、通常のウェブ閲覧が失敗したときにVPNを停止して復旧できることを確認します。キルスイッチを有効にする場合も、最初からLAN全体へ適用せず、対象を限定してください。
ポリシールーティングで分割ルールを追加する
端末やドメインごとに経路を分けるには、ポリシーベースルーティングの仕組みを使います。OpenWrtでは、バージョンやリポジトリによりパッケージ名、LuCI画面、設定項目が異なりますが、一般的にはVPNインターフェースをポリシールーティングの出口として登録し、送信元端末、宛先ドメイン、宛先IP、プロトコルなどの条件を指定します。
最初のルールは、固定したテスト端末のすべての外向き通信をVPNへ送る設定が分かりやすいでしょう。対象端末だけがVPN経路になったことを確認したら、通常回線へ戻す除外ルール、LAN内アドレスの除外、特定ドメインの指定を順番に追加します。ルールの優先順位がある場合は、より具体的な条件を上位に置き、広い条件がすべてを上書きしないようにします。
| 確認対象 | 設定例の考え方 | 確認すること |
|---|---|---|
| 送信元 | DHCP固定割り当てした端末のIPを指定 | 別の端末へ同じIPが割り当てられていないか |
| 宛先ドメイン | 必要なドメインと関連サブドメインを整理 | リダイレクト先やAPIも対象になっているか |
| LAN除外 | 家庭内ネットワークのアドレスを直接接続にする | ルーター、NAS、プリンターへ到達できるか |
| DNS | ルールに合わせたDNS経路を選択 | 名前解決結果と実際の接続経路が一致するか |
ドメインルールでは、ドメイン名の一致方式にも注意します。完全一致、サブドメインを含む一致、キーワード一致では範囲が違います。キーワード一致は意図しないドメインまでVPNへ送る可能性があるため、必要な範囲を明確にできる場合は完全なドメインまたは管理しやすいドメインリストを使います。また、アプリが直接IPアドレスへ接続する場合、DNSベースのルールだけでは捕捉できません。
DNSリークを避けたい構成では、端末からのDNS問い合わせをルーターへ集約し、必要に応じてVPN側のDNSへ転送します。ただし、DNSをすべてVPNへ送ると、通常回線へ送るサービスの名前解決結果にも影響することがあります。分割ポリシーとDNSポリシーを別々に考えず、同じ利用目的に合わせて設計してください。
動作確認とトラブルシューティング
設定後は、単にウェブページが開くかだけで判断しません。対象端末、対象外端末、LAN内機器の三つを分け、各端末で通常回線とVPNの経路を確認します。外部IPの表示、DNSの応答、特定サービスへの接続、ルーター管理画面へのアクセスを記録すると、どの層で問題が起きているかを切り分けやすくなります。
- 対象端末でVPN経由にしたサービスを確認します。
- 同じネットワークの対象外端末で、通常回線が維持されているか確認します。
- 対象端末からルーター、NAS、プリンターなどのLAN機器へ接続します。
- DNSキャッシュを消去し、ドメインルールを変更した後の結果を再確認します。
- VPNインターフェースを停止し、通常回線だけでインターネットが復旧するか確認します。
「VPNは接続済みだが対象端末が通常回線のまま」という場合は、ポリシールーティングが無効、対象IPが違う、ファイアウォールゾーンが誤っている、またはルールの優先順位が負けている可能性があります。「すべての端末がVPN経由になった」という場合は、デフォルトルートを広い範囲で変更していないか、全体適用の設定が有効になっていないかを確認します。
ドメイン単位のルールだけが機能しない場合は、ブラウザーやアプリのDNSキャッシュ、IPv6、CDNの別ドメイン、HTTPS接続の再利用を確認します。IPv4だけにルールを設定してIPv6を通常回線へ残すと、アプリによってはIPv6経路を優先して想定外の結果になることがあります。IPv6を使わない構成にするのか、IPv6側にも同等のルールを用意するのかを決めてください。
- ✅ VPN経由の端末と通常回線の端末を分けてテストする
- ✅ 外部IP、DNS、LAN機器への到達性を別々に確認する
- ✅ ルール変更後はDNSキャッシュとアプリの接続状態を更新する
- ✅ IPv4とIPv6の両方が運用対象か確認する
- ❌ 外部IPだけを見て、すべての通信が正しい経路だと判断しない
安全な運用と復旧方法
ルーター上のVPNは、家庭内の複数端末に影響します。設定を保存する前に変更点を記録し、ルール名に対象端末や目的を含めると、後から見直しやすくなります。使用していないトンネル、古い認証情報、重複するドメインルールは整理し、ファームウェアや追加パッケージを更新する際は、現在の設定と互換性を確認してください。
接続が不安定になったときは、まず追加した最後のルールだけを無効にします。改善しない場合はポリシールーティングを停止し、次にVPNインターフェースを停止します。それでもLAN全体が不通なら、ファイアウォールゾーン、デフォルトルート、DNSフォワーディングを確認します。管理画面へ入れない場合に備え、初期設定時点のバックアップと、通常回線へ戻す手順を手元に残しておくことが重要です。
よくある質問
サブスクリプションリンクをOpenWrtへ直接貼り付けられますか?
OpenWrt標準のWireGuardやOpenVPN設定画面は、通常、サブスクリプションURLをそのまま読み込む画面ではありません。サービスがOpenWrt向け設定を提供している場合は、そのファイルを使います。Clash系やsing-box系の管理パッケージを使う場合は、対応形式、更新方法、保存場所、利用するコアを確認してください。対応していない形式を無理に変換すると、TLS、DNS、ルール、UDP設定が失われることがあります。
端末単位のルールとドメイン単位のルールは併用できますか?
併用できます。ただし、送信元端末、宛先ドメイン、宛先IPのどれを優先するかを明確にします。たとえば、特定端末は基本的にVPNへ送り、その中の社内ドメインだけ通常回線へ戻すといった設計では、除外ルールを上位に置く必要があります。ルールの優先順位は使用するパッケージによって異なるため、画面上の説明とログで確認してください。
設定後にインターネットへ接続できなくなったらどうしますか?
対象端末だけの問題か、LAN全体の問題かを分けます。対象端末だけなら、その端末のポリシー、DNS、DHCP割り当てを確認します。全端末で発生しているなら、VPNインターフェース、ファイアウォール、デフォルトルートを確認し、最後に追加した設定を無効化します。管理画面へ戻れない場合は、保存したバックアップや有線接続、OpenWrtの復旧手順を利用し、設定を闇雲に重ねて変更しないでください。
WireGuardとOpenVPNのどちらを選ぶべきですか?
サービスが両方に対応しているなら、ルーターで常時運用する構成では設定項目を整理しやすいWireGuardから試す方法があります。一方、証明書や既存の運用手順がOpenVPNにそろっている場合は、OpenVPNを選ぶ合理性があります。重要なのは名称ではなく、OpenWrtのバージョン、ルーターの処理能力、サービスが提供する設定、IPv6やDNSを含む分割ルールとの相性を確認することです。