ノードをインポート済みで、ルーティングを確認したい方に向けた記事です。まずドメイン分類とIPアドレスデータベースの違いを整理し、クライアントごとに実際に使うデータファイルを更新します。その後、最小限のルーティング例とログでルールの適用状況を確認します。「ファイルのダウンロード成功」「分類の読み込み」「通信の出口」を分けて検証し、更新を繰り返しても誤った振り分けが直らない事態を防ぎます。
2つのデータベースが照合する対象
geosite.datにはタグごとに整理されたドメイン情報が、geoip.datにはタグごとに整理されたIPアドレス範囲が格納されています。どちらもコアが読み込むバイナリデータであり、ルーティング設定欄に貼り付けるJSONではありません。サブスクリプションURL、ノードのパスワード、通信方式の設定も含まれません。
たとえば、geosite:cnはドメインデータベースのcn分類を、geoip:cnはアドレスデータベースのcnアドレス範囲を参照します。両者は同じリストではありません。あるドメインが特定の分類に含まれていても、名前解決されたすべてのIPアドレスが同じ地域に属するとは限りません。海外CDNを利用するサイトでは、特にこの違いが表れやすくなります。
| データ | 照合対象 | 主な指定例 | 注意点 |
|---|---|---|---|
geosite.dat | リクエストに含まれる、またはコアが識別したドメイン | geosite:cn | 分類への登録状況に基づくため、リアルタイムのDNS検索結果とは異なる |
geoip.dat | 宛先IPアドレス | geoip:cn | IPアドレス範囲の分類であり、サービスの運営主体を特定するものではない |
geoip.dat | データソースで定義されたプライベートアドレスまたは予約済みアドレスの範囲 | geoip:private | 具体的な範囲は、データソースに登録されたタグの内容によって異なる |
IPアドレスだけのリクエストは、ドメイン分類では直接照合できません。ドメイン名を含むリクエストをさらにIPアドレスで照合できるかどうかは、ルーティングのドメイン戦略やDNS解決に左右されます。そのため、「geositeを更新すれば、すべてのアプリの通信をドメインで振り分けられる」とは限りません。クライアントが宛先情報を取得できているかも確認してください。
データソースと更新方法の選び方
一般的なデータは、コミュニティが管理するドメインリストやIPアドレス範囲のプロジェクトをもとに、ビルド工程でDATファイルに変換されています。ドメイン情報には、完全一致、サフィックス一致、キーワード、正規表現など、さまざまな形式があります。IPデータベースは主にCIDR範囲をタグごとにまとめたものです。Xray・V2Rayエコシステムにはこれらのファイル形式に関する仕様がありますが、ファイル名が同じでも、データソースによってタグが共通とは限りません。
クライアント、コア、ルールデータ、ルーティングルールはそれぞれ別の要素です。v2rayNを更新しても、実際に使用中のGeoファイルが更新されるとは限りません。Geoファイルを更新しても、カスタムルールの順序は自動で変わりません。データソースを切り替える前に、ルールで参照しているcn、private、用途別の分類などを記録し、新しいデータソースにも含まれていることを確認してください。
クライアントの更新機能を使う
おすすめクライアントが設定済みのデータ取得先からファイルをダウンロードし、管理対象の場所に保存します。新しいファイルを古いフォルダーに入れてしまうミスを防ぎやすく、更新ログから失敗した箇所も確認できます。
おすすめの用途:日常的なメンテナンス、標準データソースの利用、初回のトラブル調査。
手動でインポート・置き換え
まず、現在のコアが実際に読み込んでいるデータの保存場所を確認し、信頼できる入手元のファイルを使います。Androidでは、アプリの非公開フォルダーを推測せず、クライアントに用意されたリソースのインポート機能を優先してください。
おすすめの用途:オフライン更新、内蔵ダウンロード機能が使えない場合、データのバージョンを固定したい場合。
カスタムデータソースに切り替え
ダウンロードURL、ファイル形式、分類一覧をあわせて確認してください。ファイルサイズが大きいという理由だけで置き換えるのは避けましょう。分類が追加されても役立つとは限らず、参照中の分類が欠けているとコアを起動できない場合があります。
おすすめの用途:特定の用途別分類への依存が明確で、ルールの参照先も管理できる場合。
結論:データソースを決めてから更新する
既存のリソースとルーティング設定をバックアップし、まず同じデータソース内で更新して動作を確認します。必要なタグがないと確認できた場合にのみ、データソースの変更を検討してください。一度のトラブル調査で、データソースの変更、DNSの変更、ルール順の調整を同時に行うのは避けましょう。
v2rayNの更新・再読み込み手順
デスクトップでは、現在の接続がXrayまたはV2RayのDATルーティング設定を使用していることを確認してください。この記事の例は、別形式のルールセットには適用できません。v2rayNはバージョンによってメニュー構成が異なりますが、一般的な更新場所はメイン画面の「更新を確認」にある「Geoファイル」または「Geoファイルを更新」です。バージョンによってリソース管理画面に移動している場合は、現在のメニュー名とログを確認してください。「サブスクリプションの更新」はルールデータの更新ではありません。
-
現在の設定を記録する
「設定」→「ルーティング設定」を開き、有効なルーティング設定、ルールの順序、使用している分類を記録します。カスタム設定も別途バックアップしてください。バージョンによっては設定を保存した後、メイン画面でその設定を選択しないと適用されません。
-
ルールデータを更新する
メイン画面の「更新を確認」→「Geoファイル」を開いて更新します。
geoip.datとgeosite.datの結果を個別に確認し、最初の更新が成功した時点でログを閉じないでください。 -
ダウンロード結果を確認する
接続エラーが表示された場合は、まずデータ取得先のURLと、更新に現在のプロキシが必要かを確認します。取得した内容を解析できない場合は、ファイルのURLではなくウェブページのURLを指定していないか確認してください。ファイル名が付いていても、内容がDATデータとは限りません。
-
現在の接続を再起動する
データを書き込んだ後、現在の接続を再起動し、コアにリソースを読み込み直させます。メイン画面のタブを切り替えただけでは再読み込みされません。既存の長時間接続も、新しいルールの動作確認にはなりません。
-
起動ログを確認する
リソースの読み込み失敗、分類の未登録、ルーティングの構築失敗がないことを確認します。その後、テストリクエストを新しく送信してください。クライアントが以前の設定を自動復元する場合は、保存した設定が実際に実行されているかも確認します。
v2rayNGでのリソース更新
Android版v2rayNGはXrayコアを使用し、Geoデータは通常アプリが管理します。独立したリソース管理画面があるバージョンでは、サイドメニューの「Geoリソースファイル」から更新またはインポートできます。旧バージョンでは、メイン画面右上のメニューに「Geoファイルを更新」がある場合があります。メニュー名や配置が異なる場合は、サブスクリプショングループではなく、Geoリソース関連の項目を探してください。
- 更新前:サイドメニューの「ルーティング設定」で現在のルールを記録し、全プロキシや全直結モードが一時的に有効になっていないか確認します。有効なままでは、期待する振り分け結果をテストできません。
- 更新中:2つのリソースがそれぞれ正常に更新されたか確認します。リソース画面でダウンロード先を変更できる場合は、プロジェクトの紹介ページではなく、元のファイルを取得できるURLを指定してください。
- 更新後:画面下部の接続サービスを停止してから再起動し、新しいコアプロセスにデータを読み込ませます。アプリに戻るだけでは接続は再起動されません。
- 手動インポート:リソース画面に用意されているインポート機能を使い、ファイル形式を確認してください。使用中のバージョンにインポート機能がない場合、非公開フォルダーを推測してリソースを置き換えないでください。
更新にプロキシが必要な場合は、既存の接続でリソースサーバーにアクセスできることを先に確認します。リソースの読み込みに失敗してプロキシ自体が起動しない場合は、現在のネットワークからアクセスできるダウンロード元を使うか、オフラインでインポートしてください。「ダウンロード経路にプロキシが必要」なことと「ルーティングファイルの更新が必要」なことを混同して、何度も再試行しないようにしましょう。
geosite・geoipの指定方法
XrayのルーティングJSONでは、geosite:の参照先をdomain配列に、geoip:の参照先をip配列に指定します。分類名は任意の説明文ではなく、使用中のファイルに登録されている必要があります。geoip:cnのcnは一般的な地域コードのタグです。一方、privateはデータセットで定義された特殊なタグで、国コードではありません。
{
"routing": {
"domainStrategy": "IPIfNonMatch",
"rules": [
{
"type": "field",
"ip": ["geoip:private"],
"outboundTag": "direct"
},
{
"type": "field",
"domain": ["geosite:cn"],
"outboundTag": "direct"
},
{
"type": "field",
"ip": ["geoip:cn"],
"outboundTag": "direct"
},
{
"type": "field",
"network": "tcp,udp",
"outboundTag": "proxy"
}
]
}
}
これはルーティング設定の例であり、単独で起動できる完全な設定ではありません。完全な設定でdirectとproxyの出口が定義されていることを前提としています。通信を遮断する場合は、別途blockを定義して参照してください。これらのタグは単なる名前であり、実際のoutboundsと一致させる必要があります。そのまま貼り付けても、クライアントが出口を自動作成するわけではありません。通常、GUIのルール編集画面には該当する照合項目だけを入力し、JSON全体を貼り付けることは避けてください。
- ルールの順序:ルールは上から順に照合され、最初に条件が一致したルールの出口が使われます。条件の広いフォールバックルールを前に置くと、後続の詳細な分類に一致しなくなります。
- ドメイン戦略:
IPIfNonMatchは、ドメインルールに一致しなかった場合に名前解決を試み、IPアドレスで照合します。すべてのリクエストで先に名前解決するという意味ではなく、DNSサーバーのアドレス設定でもありません。 - サフィックス・完全一致:
domain:example.comとfull:example.comは、データベースの分類ではなく、ドメインを直接指定する照合方法です。前者は対象ドメインとサブドメインに一致し、後者はその完全なドメイン名だけに一致します。 - 分類の違い:
geosite:category-ads-allは、現在のデータソースにそのタグが含まれている場合にのみ使用できます。あるデータソースが対応している用途別分類を、別のデータソースも対応しているとは限りません。
別のファイルを指定する場合、Xrayではext:custom-site.dat:cnのような外部リソース参照を使用できます。指定するファイルはコアからアクセスできる場所にあり、対象の分類を含んでいる必要があります。一般的な用途では標準のファイル名をそのまま使い、データ更新のためだけに外部ファイル参照を追加する必要はありません。
更新後の動作確認とトラブルの切り分け
「リソースの読み込み → ルールの適用 → 通信が想定した出口に到達」の順で確認します。サイトが開けるかどうかだけでは不十分です。プロキシ接続でも直結でも成功する場合があり、ウェブページのキャッシュがルーティング変更を見えにくくすることもあります。更新前後の結果を記録し、ノード、DNS、テスト対象は同じ条件にそろえてください。
| 症状 | まず確認する項目 | 対処方法 |
|---|---|---|
| コアが起動しない | リソースのパス、ファイルの内容、分類名 | 起動ログでファイル名とタグを確認し、以前のリソースに戻してから一つずつ修正する |
| 更新は成功したが挙動が変わらない | 実行中の設定、サービスの再起動、既存の長時間接続 | 接続サービスを再起動し、新しいリクエストで実際の出口を確認する |
| ドメインルールに一致しない | 宛先ドメインを取得できているか、分類への登録、先行ルール | 一時的に完全一致のドメインルールを追加し、データの不足かリクエスト情報の不足かを切り分ける |
| IPルールに一致しない | 実際の宛先アドレス、ドメイン戦略、名前解決結果 | ログの宛先IPを確認し、名前解決後のIP照合が必要か調べる |
| LAN内のサービスがプロキシ経由になる | プライベートアドレスのルール、ルールの順序、LAN内のドメイン | まず具体的な宛先アドレスを確認し、その後、明示的な直結ルールを設定する |
自分のテスト環境で192.168.1.10:8080のサービスに接続し、LAN内アドレスが直結されるか確認できます。ここに記載したアドレスとポートはテスト例のため、ネットワーク内で実際に稼働しているサービスの値に置き換えてください。次に、現在のドメイン分類に確実に含まれるサイトと、プロキシ経由にするサイトをそれぞれ選び、アクセスログに記録された宛先と出口タグを確認します。アクセスログが無効の場合は、適切なログレベルで一時的に有効化し、テスト後に元へ戻してください。不要なアクセス記録を長期間保存しないようにしましょう。
結論:まず単一ルールで問題を切り分ける
誤って振り分けられるドメインに、完全一致のルールを一時的に最上位へ追加します。出口が変わる場合は、分類への登録とルールの優先順位を確認してください。変わらない場合は、通信が現在のクライアントを通っているか、正しい設定が実行中か、コアがドメイン情報を取得できているかを先に確認します。
動作が安定したら一時的なテストルールを削除し、今回のデータソース、更新日、有効な分類を記録してください。Geoデータは定期的なメンテナンスに向いていますが、接続トラブルのたびに更新する必要はありません。認証エラー、サーバーへの接続不可、通信設定の不一致は、地理的な分類を変更するのではなく、ノードやプロトコルの設定を確認してください。