ルーターでXrayを実行できても、LAN内の通信をすべて中継できるとは限りません。まず、コアの実行、アプリごとのプロキシ設定、透過転送の違いを整理し、メインルーター、バイパスルーター、独立したプロキシサーバーの3つの構成を比較します。OpenWrtやLinux搭載の小型PCを使う方を対象に、必要な機器のスペック、テスト構成、元に戻す方法を解説します。いきなりネットワーク全体のデフォルトゲートウェイを変更する必要はありません。
Xrayを直接実行する:コア、管理画面、通信の入口
Xrayはプロキシ接続を処理するコアであり、ルーターのファームウェアでも、サブスクリプションを一元管理するデスクトップアプリでもありません。v2rayNはデスクトップ上で設定を管理し、コアを起動します。ルーターにXrayを導入する場合は、設定の生成、プロセスの監視、ネットワーク転送をファームウェアのサービスや管理者が個別に担います。実行ファイルを置いただけで管理画面が使えるようになるわけではありません。
「端末自身がプロキシを使える」ことと「ほかの端末の通信をプロキシ経由にする」ことも区別が必要です。前者はアプリからプロキシの受け口に接続すれば使えますが、後者にはIP転送、ファイアウォール、ポリシールーティング、DNSの設定も関わります。また、サブスクリプションURLはXrayのネイティブなJSON設定ではないため、そのまま設定ファイルとして読み込ませることはできません。
- 明示的なプロキシ:アプリからSOCKSまたはHTTPの受け口に接続します。ノード、証明書、リモート接続の動作確認に適しており、LAN全体の設定を変える必要はありません。
- 透過転送:ゲートウェイのファイアウォールとポリシールーティングで、指定した通信をコアに転送します。TCP、UDP、IPv6を個別に確認してください。ブラウザーでウェブページが開けるだけでは不十分です。
- 設定管理:ノード情報をコア用の設定に変換し、検証、起動、再読み込みを行います。管理ツールが対応する設定項目と、実際に使うコアのバージョンが一致している必要があります。
メインルーターとバイパスルーター:障害の影響範囲を確認
メインルーターは通常、インターネット接続、DHCP、NAT、デフォルトゲートウェイを担います。ここにXrayを置けば通信経路はシンプルですが、ファイアウォールの再読み込みを誤ると、すべての端末に影響するおそれがあります。バイパスルーターならプロキシ機能を別の機器に分けられ、単独で再起動したり元に戻したりしやすくなります。ただし、同じスイッチに接続しただけでは、通信が自動的に経由するわけではありません。
1台の端末でバイパスルーターを試す
おすすめメインルーターのDHCPはそのままにして、まずテスト用PCのデフォルトゲートウェイをバイパスルーターに設定します。この手順をおすすめしているのであり、あらゆるネットワークでバイパスルーターのほうが高速だという意味ではありません。
向いているケース:安定して稼働中のメインルーターがあり、段階的に導入してすぐ元に戻したい場合。
メインルーターで直接実行
ルーティング、DNS、プロキシルールをまとめて管理できます。アップデート前にネットワークとファイアウォールの設定をバックアップし、ローカルの管理手段も確保してください。リモート接続だけに頼ると、問題発生時に機器を復旧できなくなるおそれがあります。
向いているケース:ファームウェアの復旧に慣れており、メインルーターの処理能力とストレージに余裕がある場合。
独立したプロキシサーバー
小型PCにLAN向けのプロキシポートだけを提供させ、デフォルトゲートウェイにはしません。各アプリに接続先を設定します。プロキシ設定に従わない通信は、そのままインターネットに接続します。
向いているケース:少数のPCやアプリだけで使い、ネットワーク全体を一括で中継する必要がない場合。
以下は構成例であり、そのまま使う固定値ではありません。バイパスルーターのIPアドレスはDHCPの割り当て範囲外に設定し、ほかの機器と重複しないようにしてください。LANポートが1つの機器でもバイパスルーターとして使えますが、戻りの通信経路、転送ルール、メインルーターの挙動を合わせて確認する必要があります。
メインルーター LAN:192.168.10.1/24
バイパスルーター LAN:192.168.10.2/24
バイパスルーターのデフォルトゲートウェイ:192.168.10.1
テスト用PC:192.168.10.50/24
テスト用PCのデフォルトゲートウェイ:192.168.10.2
往路:テスト用PC → バイパスルーター → メインルーター → インターネット
ほかの端末:デフォルトゲートウェイは引き続き192.168.10.1
同一サブネット上のバイパスルーターでは、戻りの通信がメインルーターからテスト用PCへ直接送られる場合があります。送信元NATが必要かどうかは、コネクショントラッキングと実際のネットワーク構成を踏まえて判断してください。全体に適用するNATルールを安易にコピーしてはいけません。テスト中はICMPリダイレクトによってPCの通信経路が変わっていないかも確認し、「最初は動いたのに、しばらくするとバイパスルーターを通らなくなる」事態を防ぎましょう。
機器の要件:アーキテクチャ、空きメモリ、永続ストレージ
ダウンロード前にCPUアーキテクチャ、ビット数、システムABIを確認してください。「ARM」と分かっただけでは適切なパッケージを選べません。具体的なアーキテクチャと命令セットを確認し、MIPS機器ではエンディアンとビルド要件にも注意が必要です。ファームウェアが起動できても、使用するXrayのビルドが機器のカーネルや実行環境に対応しているとは限りません。
ここで示すメモリとストレージ容量は、保守しやすい構成を選ぶための目安です。公式の最小要件でも、通信速度を保証するものでもありません。ルールデータ、同時接続数、ログ、ファームウェアの各サービスがリソースを消費します。メモリの少ない既存機器では、空きメモリと負荷時のピークを確認してください。新しい機器を選ぶ際も、「実行ファイルを保存できる」という理由だけで決めないようにしましょう。
| 確認項目 | 確認方法 | 判定のポイント |
|---|---|---|
| システムアーキテクチャ | uname -mを実行し、ファームウェアの機器情報も確認 | 製品名だけで判断せず、ビット数、命令セット、ビルド対象を確認します。 |
| メモリの空き | free -m | 負荷の高い時間帯に空きメモリを確認し、メモリ不足でプロセスが終了していないか調べます。 |
| ストレージの保存先 | df -h | 再起動で消去される一時ディレクトリではなく、永続化される領域に保存することを確認します。 |
| カーネル環境 | uname -rを実行し、ファームウェアのモジュールを確認 | 透過転送に必要なTPROXYやポリシールーティングなどの機能が実際に利用できるか確認します。 |
性能は、LANポートの公称速度だけでは判断できません。プロキシの暗号化やプロトコル処理には主にCPUを使うため、一般的なNAT転送の速度をXrayのスループットと同一視できません。継続的なテストではCPU使用率、温度、遅延を記録してください。通常は問題なく動くハードウェアオフロードが透過転送のルールを迂回する場合もあります。原因を調べる際は、関連する高速化機能を一時的に無効にして比較してください。
導入手順:まず1つの接続を確認し、テスト用ゲートウェイに切り替える
ここでは、ネットワーク管理にOpenWrtを使い、Xrayを独立したサービスとして動かす構成を例にします。LuCIのメニュー名はバージョンやテーマによって多少異なります。標準のXrayにはLuCIのメニューがないため、コアの起動と設定の確認はターミナルで行います。存在しない設定項目を探すために、ファイアウォールを変更する複数のコンポーネントを先に導入しないでください。
-
ネットワークをバックアップ
LuCIの「システム」→「バックアップ/フラッシュファームウェア」で設定をバックアップします。メインルーターの管理アドレス、LANアドレス、DHCPの割り当て範囲を記録し、メインルーターへ直接アクセスできる管理用PCを確保してください。
-
固定IPアドレスを設定
バイパスルーターの「ネットワーク」→「インターフェース」→「LAN」→「編集」→「基本設定」で、192.168.10.2などの固定IPアドレスを設定します。DHCPサーバーを1台にする場合は、同じ画面の「DHCPサーバー」→「基本設定」で「このインターフェースを無視」にチェックを入れ、2台から同時にIPアドレスが配布されないようにします。
-
設定を確認
コアを実行できることを確認したら、まず設定ファイルを検証します。接続先アドレス、ポート、認証情報、TLSの設定はサービス提供元の情報に従ってください。検証に通っても、接続先との通信が確立したとは限りません。
-
プロキシをテスト
まず、127.0.0.1:10808で待ち受けるSOCKSを設定し、ルーター本体から接続を確認します。PCから直接テストする場合は、指定したLANアドレスにバインドし、テスト用PCからの接続だけを許可してください。プロキシポートをWAN側に公開してはいけません。
-
テスト用PCだけゲートウェイを変更
プロキシが正常に動作することを確認してから、ファームウェアに合った透過転送の入口、転送設定、ポリシールーティングを構成します。テスト用PCのネットワークアダプターでIPv4のデフォルトゲートウェイを192.168.10.2に変更します。DNSは個別に指定し、ネットワーク全体に配布するDHCP設定はまだ変更しません。
ここでは、実行ファイルを/usr/bin/xray、設定ファイルを/etc/xray/config.jsonに配置したものとします。ファームウェアのパッケージを使用する場合は、実際のファイルパスを確認してください。軽量なファームウェアにはcurlが標準で入っていないことがあるため、利用できるか先に確認しましょう。
/usr/bin/xray version
/usr/bin/xray run -test -config /etc/xray/config.json
curl --proxy socks5h://127.0.0.1:10808 \
--connect-timeout 10 --max-time 20 \
-I https://example.com/
socks5hを使うと、接続先のドメイン名の解決をプロキシに任せられます。これにより、端末側のDNSの問題とプロキシ経路の問題を切り分けやすくなります。このテストで確認できるのは明示的なプロキシ接続だけです。ほかのアプリの通信が透過転送されることや、UDP、IPv6が正常に動作することの証明にはなりません。
透過転送とDNS:見落としやすい4つの確認項目
デフォルトゲートウェイの設定で行われるのは、IPパケットを別の機器へ送ることだけです。Xrayに通信が届くかどうかは、ファイアウォールの条件とポリシールーティングによって決まります。DNSクエリの経路は、端末のDNS設定、ルーターのフォワーダー、コアのDNSルールが関係します。それぞれ個別に確認してください。
- ループを防ぐ:コアから接続先サーバーへ向かう通信が、再びプロキシの入口に戻らないようにします。プロセスやルートへのマーク付け、接続先アドレスの除外など、具体的な方法は転送方式に合わせてください。
- LAN内へのアクセスを維持:メインルーターの管理画面、プリンター、ローカルネットワークなどは、通常プロキシを経由させずに接続します。すべてのプライベートIPアドレスを無条件にリダイレクトし、後から例外を継ぎ足す方法は避けてください。
- UDPは個別に確認:TCPのリダイレクトが成功しても、UDPが使えるとは限りません。UDPの透過転送には通常、対応するTPROXYとポリシールーティングが必要です。DNSの53番ポートと、それ以外のUDPアプリも分けて確認してください。
- IPv6を確認:IPv4のゲートウェイだけを変更しても、端末がルーター広告を受け取り、メインルーターをIPv6のデフォルトルートとして使い続ける場合があります。IPv6用のポリシーを設定するか、管理できるテスト環境で一時的にIPv6を無効にして比較してください。
テスト用PCのDNSサーバーが192.168.10.1のままだと、名前解決はメインルーターで行われる可能性があります。DNSを192.168.10.2に変更した場合も、バイパスルーターが実際にクエリを受け付け、想定した上流DNSに転送していることを確認してください。ブラウザーのセキュアDNSがシステムのDNS設定を迂回することもあるため、確認ページを1つ見るだけでネットワーク全体の名前解決が正しいと判断することはできません。
よくある問題と元に戻す方法:まずネットワークを復旧し、ルールを調べる
起動時に実行できないエラーが出る。設定を変えれば直る?
まずuname -mを実行し、ビルド対象を確認してください。形式エラーや不正な命令が出る場合は、アーキテクチャ、命令セット、システムとの互換性を優先して確認します。権限エラーの場合は、実行権限と、保存先のパーティションで実行が禁止されていないかを調べてください。この段階でノードの設定項目を何度も変更する必要はありません。
バイパスルーターからは接続できるのに、PCからは使えない?
まず、PCのデフォルトゲートウェイが192.168.10.2になっていることを確認し、次にバイパスルーターのIP転送、ファイアウォールの転送許可、透過転送の入口を調べます。明示的なSOCKS接続が成功し、透過転送だけ失敗する場合は、接続先を変更する前に転送経路を確認してください。
Xrayを停止したら、ネットワーク全体に接続できなくなった。
リダイレクトルールが残ったまま停止済みの入口へ通信を送っていると、この問題が発生します。まずテスト用PCのデフォルトゲートウェイを192.168.10.1に戻し、DNSも元の設定に戻してください。その後、管理用の接続手段から該当ルールを削除します。本格導入の前に、サービス停止時に元の通信へ戻せることを確認してください。
同じノードでも、PCでは速いのにルーターでは遅い?
まず、同じPCと同じテスト先を、近い時間帯に比較してWi-Fiの違いを除外します。次に、ルーターのCPU使用率、温度、ログを確認し、MTUと二重転送も調べてください。LANポートがギガビット対応でも、CPUがボトルネックになる可能性はあります。
動作確認では、少なくとも次の4点を記録します。明示的なプロキシ接続、透過TCP転送、DNSの実際の経路、サービス停止後に直接接続へ戻せるか。利用範囲を広げる前に、1台の端末でスリープからの復帰、IPアドレスの再取得、ルーターの再起動を試し、設定が永続化されていることを確認してください。
プロキシが必要な端末が1〜2台だけなら、デスクトップではv2rayN、Androidではコアの要件に応じてv2rayNGまたはv2flyNGを使うほうが、問題を切り分けやすいでしょう。複数の端末をまとめて管理する必要がある場合に、ゲートウェイへの導入を検討してください。各設定項目の詳細はプロトコルとコアのリファレンスをご覧ください。家庭内ネットワーク全体を一度に設定するより、まず通信の入口を明確にすることが大切です。