OpenWrt対応ルーターにVPNを設定すると、家庭内の端末へ個別にVPNアプリを入れなくても、ルーターを通過する通信をまとめて管理できます。スマートフォン、テレビ、ゲーム機、IoT機器のように専用クライアントを導入しにくい端末も対象にできます。一方で、すべての通信を常にVPNへ送る構成にすると、国内サービスや家庭内機器へのアクセスに影響が出ることがあります。そのため実用上は、必要な通信だけをVPNへ送り、通常の通信はWANへ戻すポリシールーティングが扱いやすい方法です。
この記事では、OpenWrtルーターでVPN接続を用意し、LAN内の端末や宛先ごとに経路を振り分ける考え方を説明します。設定前のバックアップ、VPNインターフェースの作成、ポリシーの追加、DNSとファイアウォールの確認、障害発生時の復旧まで、作業の順番に沿って整理します。OpenWrtのバージョン、使用するプロトコル、導入するパッケージによって画面名や設定項目は異なるため、表示される項目を確認しながら進めてください。
OpenWrtでVPN経路を分ける基本
家庭内ネットワークでは、端末の通信は通常、LANからルーターのWANインターフェースを経由してインターネットへ出ます。VPNをルーター上で確立すると、VPN用の仮想インターフェースが追加され、そこへ送ったパケットは暗号化されたトンネルを通って遠隔側へ転送されます。重要なのは、VPN接続が確立したことと、意図した通信がVPNを通ることは別の状態だという点です。インターフェースが「接続中」と表示されても、ルールの条件が一致していなければ通信は通常のWANから出ます。
経路の分け方には、主に端末単位、宛先単位、ポートやプロトコル単位があります。たとえば特定のテレビだけをVPNへ送る、特定のドメインやIPアドレスへの通信だけをVPNへ送る、通常のウェブ閲覧はWANのままにして特定用途だけ別経路にする、といった構成です。最初から複数の条件を組み合わせると原因を追いにくくなるため、まず一台のテスト端末と一つのルールから始めるのが安全です。
90+
接続先の国
200+
利用可能な回線
5
対応プラットフォーム
不限
同時接続端末
OpenWrtでは、WireGuardのように専用インターフェースを作りやすい方式と、Shadowsocks、VMess、Trojan、Hysteria2などをクライアントコア経由で扱う方式があります。WireGuardは暗号鍵とピア、アドレス、許可IPを明確に設定する構成です。ShadowsocksやVMessなどは、対応するクライアントやサービス側のパラメータを正しく反映する必要があります。Hysteria2のようなUDPベースの方式は、ルーターのカーネル、クライアントコア、ファイアウォール、ネットワーク環境の組み合わせによって動作が変わるため、名称だけで適性を判断しないでください。
設定前に確認する項目
まず、ルーターへ管理者としてログインできること、現在のLANアドレス、管理画面へ接続する端末のアドレスを確認します。VPN設定中に経路を変更すると管理画面へ戻れなくなる場合があるため、可能ならテスト用の端末を有線LANで接続してください。無線接続だけで作業すると、ルールの誤りで無線が切断されたときに再設定が難しくなります。
次に、サービス側で提供されている接続情報の形式を確認します。サブスクリプションリンクは、対応クライアントへノード設定を配布するための入口であり、OpenWrtがそのURLを直接VPNとして利用できるとは限りません。Clash系、sing-box系、WireGuard設定ファイルなど、OpenWrt上で使用するクライアントやパッケージに合った形式を選びます。サブスクリプションに含まれるノードが多くても、導入先のコアがプロトコルや暗号化方式、TLS、SNI、トランスポート設定に対応していなければ接続できません。
- ✅ 設定変更の前に、OpenWrtのバックアップを保存する
- ✅ ルーターのLANアドレスと管理用端末の情報を記録する
- ✅ サブスクリプションリンクを公開チャットや第三者の変換サイトへ貼り付けない
- ✅ 使用するクライアントコアがWireGuard、Shadowsocks、VMess、Trojan、Hysteria2などに対応するか確認する
- ❌ VPN用インターフェース作成前に、家中の端末へ一括適用しない
バックアップは、LuCIのシステム設定にあるバックアップまたはファームウェア関連の項目から取得できます。設定ファイルを保存した後、ファイル名だけでなく作成日時と変更内容も記録しておくと、複数の試行を区別しやすくなります。SSHを使う場合は、UCI設定を個別に編集する前に関連するネットワーク、ファイアウォール、DHCP、ポリシールーティングの状態を確認し、コピーした設定をそのまま貼り付けるのではなく、対象インターフェース名を読み替えてください。
VPNインターフェースを作成する手順
実際の作業では、最初にVPNクライアントまたはWireGuard関連パッケージを導入し、VPN設定を読み込んで仮想インターフェースを作成します。パッケージ名や管理画面の場所はOpenWrtのリリースと導入方法によって異なります。公式リポジトリにあるパッケージを優先し、互換性のない古い管理画面用プラグインを混在させないようにしてください。
- OpenWrtのパッケージ一覧を更新し、使用するVPN方式に必要なクライアントとLuCIの管理画面拡張を確認する。
- WireGuard設定、または対応クライアントが読み込めるノード設定を用意する。
- VPNインターフェース名、トンネル内アドレス、DNS、MTU、暗号鍵や認証情報を確認する。
- インターフェースを保存して起動し、ハンドシェイクやログに接続エラーがないか確認する。
- VPNインターフェースを適切なファイアウォールゾーンへ割り当て、必要な転送だけを許可する。
- テスト端末一台だけを対象にしたルールを作成し、WAN経由とVPN経由の結果を比較する。
WireGuardでは、AllowedIPsの指定が経路の範囲に関係します。すべての宛先を示す構成にするとフルトンネルに近い動作になり、ローカルネットワークや管理用アドレスまでトンネルへ送る設計では、ルーターへのアクセスを失うことがあります。スプリットトンネルにしたい場合は、VPNへ送る宛先を限定する設計を検討してください。プロバイダー側の指示とOpenWrtのローカルネットワークが重複していないかも確認が必要です。
ファイアウォールでは、LANからVPNゾーンへの転送、VPNゾーンから外部への通信、DNSやNTPなど必要な補助通信を区別します。広い範囲を許可して動作確認を急ぐより、まずテスト端末と必要な宛先だけで検証し、不要な転送を後から閉じるほうが安全です。設定を反映した後は、管理画面の接続状態だけでなく、ルーターのログ、インターフェースの送受信カウンター、クライアント側の接続先を確認してください。
端末と宛先ごとに通信を振り分ける
OpenWrtで実用的な振り分けを行うには、ポリシールーティング用の仕組みを使う方法が一般的です。管理画面から導入できる対応パッケージを選び、VPNインターフェースが正常に起動してからルールを登録します。ルールの条件には、LAN内端末のIPアドレス、MACアドレス、宛先IP、ドメイン名、ポートなどを利用できます。ただしMACアドレスは端末側のプライバシー機能や交換によって変化する場合があるため、固定DHCPリースと組み合わせたIPアドレス条件のほうが管理しやすいことがあります。
| 振り分け方法 | 向いている用途 | 注意点 |
|---|---|---|
| 端末単位 | テレビ、検証用PC、特定のスマートフォン | 端末のIPが変わるとルールが一致しないため、DHCP予約を使う |
| 宛先単位 | 特定サービスや業務システムだけを別経路にする | CDNや複数IP、IPv6を利用するサービスでは範囲漏れが起きる |
| ポート単位 | 限定的な検証や特定アプリケーション | アプリが複数ポートやQUICを使うと想定どおりにならない |
| 全体適用 | 家庭内の大半を常時VPNへ送る構成 | 速度、DNS、ローカル機器、管理経路への影響を先に確認する |
ドメイン名でルールを作る場合、名前解決をどのDNSが担当するかが重要です。ルーターが一度解決したIPをキャッシュし、そのIPだけを対象にすると、CDNのアドレス変更後にルールが古くなる可能性があります。逆に、DNSクエリ自体をVPNへ送る構成では、通常経路とVPN経路で結果が変わることがあります。DNSの分割を行う場合は、家庭内ホスト名、ルーター管理画面、外部サービスの名前解決を分けて確認してください。
IPv6を無効化せずにIPv4だけをVPNへ送ると、アプリケーションがIPv6を優先して通常のWANから接続する場合があります。VPNサービスとルーター側のIPv6対応を確認し、対応しない場合は、テスト中だけIPv6の経路を明確にするか、IPv6を含めたルールを設計します。これは「VPNへ送ったつもりなのに一部のアクセスだけ別経路になる」原因として見落とされやすい部分です。
接続後の確認とトラブルシューティング
設定後は、対象端末のIP確認ページ、DNSリーク検査、通常サイトへのアクセス、家庭内機器へのアクセスを順番に確認します。VPN対象端末と非対象端末を分け、同じネットワークからそれぞれの経路が意図どおり異なるかを見ます。確認ページの結果だけで判断せず、OpenWrt側のルーティングテーブル、VPNインターフェースの送受信量、ログの再接続記録も合わせて確認してください。
接続できない場合は、問題を層ごとに切り分けます。まずVPNインターフェースが起動しているか、次に認証情報やサーバー名が正しいか、その後にファイアウォール転送、ポリシールール、DNS、MTUの順で調べます。すべての端末を対象にしている場合は、いったんルールを無効化し、ルーター自身または有線のテスト端末からVPN経路を確認します。接続先によってのみ失敗するなら、宛先ルール、DNS解決、IPv4とIPv6の差を調べると原因を絞りやすくなります。
- ✅ ルールを一つずつ有効化し、変更ごとに通信を確認する
- ✅ VPN対象端末のIPアドレスがDHCP予約と一致しているか確認する
- ✅ VPN接続時にもルーター管理画面と家庭内プリンターへ到達できるか確認する
- ✅ DNSの応答先とIPv6の経路を別々に確認する
- ❌ 接続エラーを隠すために、ファイアウォールを無制限に開放したまま運用しない
失敗したときの復旧方法
管理画面へ入れなくなった場合は、まず端末をLANケーブルで接続し、端末側に固定プロキシやVPNアプリの設定が残っていないか確認します。DHCPからアドレスを取得できない場合は、ルーターの再起動で直ることもありますが、設定反映の途中で繰り返し電源を切るのは避けてください。SSHへアクセスできるなら、直前に変更したネットワーク、ファイアウォール、ポリシールーティングの設定を戻し、不要なVPNインターフェースを停止します。
復旧できない場合は、保存済みバックアップを使って設定を戻します。初期化やファームウェアの再書き込みは最後の手段とし、機種の復旧手順、設定ファイルの互換性、LANアドレスの初期値を確認してから行います。復旧後はいきなり全端末へ適用せず、VPNインターフェース、DNS、ファイアウォール、単一端末のルールという順番で再構築してください。
よくある質問
サブスクリプションリンクをOpenWrtへ直接貼り付ければ使えますか?
必ず使えるとは限りません。リンクは設定を配布する仕組みであり、OpenWrtに導入したクライアントがその形式とプロトコルを解析できる必要があります。WireGuardの設定ファイル、Clash系設定、sing-box系設定など、導入先に適した形式を確認してください。
ルーターへ設定すれば、すべての端末が自動的にVPN経由になりますか?
構成によります。VPNインターフェースを作っただけでは、通常のWAN経路が維持されることがあります。全体適用のデフォルトルートを設定するか、端末や宛先を対象にしたポリシールールを追加する必要があります。家庭内機器や管理画面への経路も確認してください。
ルーターにVPNを設定すると速度が必ず下がりますか?
暗号化処理、ルーターのCPU、無線環境、アクセス回線、遠隔ノード、接続先までの経路が影響します。VPN未接続時の基準値を同じ端末と時間帯で記録し、対象端末だけをVPNへ送って比較すると、どの区間がボトルネックか判断しやすくなります。
VPN経由にした端末から家庭内プリンターへ接続できません。
VPNへ送るデフォルトルートやファイアウォールの転送規則が、LAN内宛先までトンネルへ送っている可能性があります。LANのアドレス範囲をローカル経路として優先し、VPNゾーンからLANゾーンへの不要な転送を開けるのではなく、必要な通信だけを明示的に許可してください。
OpenWrtのVPN設定は、接続情報を入力して終わる作業ではありません。どの端末の、どの宛先への通信を、どのインターフェースから出すのかを決め、DNSとIPv6、ファイアウォールまで同じ方針で確認する必要があります。小さな範囲から検証して設定を記録しておけば、家庭内通信を柔軟に振り分けながら、問題が起きたときも元の経路へ戻しやすくなります。