設定モデルを理解してからスイッチを変更する
V2RayのGUIクライアントは、独立したネットワークプロトコルではありません。v2rayN、v2rayNG、v2flyNGは、サブスクリプション管理、ノード選択、システム接続、画面操作を担当し、実際の接続、ルーティング、DNS処理はクライアントが呼び出すコアが担います。完全な接続は通常、5つのオブジェクトを通ります。アプリの通信がローカルインバウンドに入り、DNSモジュールがドメインを解決し、ルーティングモジュールがルールに従って宛先を判定し、アウトバウンドモジュールが直接接続・プロキシ・ブロックのいずれかを選び、最後に対応するサーバーまたはローカルネットワークからデータを送信します。上級設定の要点は、項目を増やすことではなく、各層の入力と出力を明確にすることです。
トラブル対処もこの経路に沿って進めます。ブラウザーで目的のサイトを開けない場合は、まず通信がクライアントに入っているか確認します。入っているのにドメイン解決が誤っているならDNSを確認し、解決は正しいのに経路を誤るならルーティングのマッチ結果を確認します。ルールが正しくヒットしているのに接続できない場合に、ノードのパラメーター、サーバーの状態、ローカルネットワークを調べます。すべてをノードの問題と決めつけると、システムプロキシ、TUNの権限、DNSキャッシュによる差異を見落とします。層別の診断方法は速度低下を層別に切り分ける方法でも確認できます。
変更前に正常な状態を記録する
調整を始める前に、正常に接続できる基準状態を保存します。現在のサブスクリプショングループ、使用中のサーバー、システムプロキシの状態、ルーティングモード、DNSモード、TUNの状態を記録してください。v2rayNのデスクトップ版では、まずTUNを無効にし、システムプロキシだけを有効にして基本的な分流を使うと、経路が短く原因を特定しやすくなります。Androidでは、まずクライアントが提供するシステムネットワークの接続方式を使い、単一ノードへの接続を確認してから、カスタムルーティングとFakeDNSを追加します。設定の種類を1つ変更するたびに再接続して確認し、サブスクリプション、DNS、ルーティング、TUNを同時に変更しないでください。
確認はクライアントの状態表示だけで判断できません。クライアントが起動済みでも、ローカルサービスやネットワークインターフェースが作成されたことを示すだけで、目的のアプリがその入口を使っているとは限りません。ブラウザーは通常システムプロキシに従いますが、一部のターミナルプログラムはプロキシ環境変数を個別に設定する必要があり、TUN接続後に初めてクライアントへ入るアプリもあります。ブラウザー経路を確認する一般的なWebページ、解決結果を確認するDNSクエリ、コマンドラインアプリがシステム設定を継承するか確認するターミナルリクエストの3種類を用意するとよいでしょう。システムプロキシが効かない場合は、ブラウザーとターミナルを分けて確認する方法の順序で対処してください。
画面上の設定と生成設定の関係を理解する
GUIにある「LANをバイパス」「グローバル」「ルール」「TUN」「FakeDNS」は、設定生成機能の上位オプションです。クライアントはサブスクリプションのノード、ユーザールール、コアのテンプレートを統合して実行設定を作るため、画面上の1項目の変更がインバウンド、DNS、ルーティングを同時に変更することがあります。手動設定の断片は、クライアントが許可する拡張箇所に入れて初めて有効になります。実行時に一時生成されたファイルを直接編集しても、再起動やノード切り替えで上書きされるのが普通です。長期的に維持するルールは、クライアントのカスタムルーティング、DNSテンプレート、設定ファイルの入口に保存してください。
| 設定レイヤー | 主な役割 | 典型的な異常 | 優先して確認する項目 |
|---|---|---|---|
| サブスクリプションとノード | サーバーアドレス、ポート、プロトコル、トランスポートのパラメーターを提供 | 認証失敗、接続タイムアウト | サブスクリプションの更新時刻、ノードパラメーター、ネットワーク到達性 |
| インバウンド接続 | システムプロキシ、アプリのプロキシ、TUN通信を受信 | クライアントは起動しているのにアプリが直接接続する | システムプロキシ、アプリ設定、TUN権限 |
| DNS | ドメインをアドレスに変換し、ドメイン情報をルーティングへ渡す | 解決タイムアウト、期待と異なる結果 | 問い合わせ先サーバー、ドメインの一致、キャッシュ |
| ルーティング | リクエストをプロキシ、直接接続、ブロックのアウトバウンドへ渡す | 目的地が誤った経路を通る | ルールの順序、ドメインポリシー、ヒットログ |
| アウトバウンド | プロキシ接続、直接接続、ローカル転送を実行 | ハンドシェイク失敗、上流へ到達できない | アウトバウンドタグ、サーバー設定、上流ポート |
切り戻せる変更サイクルを作る
調整は「基準状態を保存、1項目を変更、再接続、確認、結果を記録」の5段階に分けることをおすすめします。ルールファイルには「基本分流」「業務ネットワーク追加」「TUN専用DNS」のような分かりやすい名前を付け、判別できないコピーを大量に作らないでください。異常が起きたらまず基準状態に戻し、基本接続が成立することを確認してから上級設定を1つずつ戻します。基準状態でも失敗するなら、原因は直前のルーティング式ではなく、サブスクリプション、ノード、ローカルネットワークにある可能性が高くなります。
注意:サンプル設定は構造の説明用です。インポート前にクライアントが該当フィールドに対応していることを確認し、ドメイン、ポート、タグを実際の設定に置き換えてください。完全な設定を複数そのまま連結すると、トップレベルのフィールドが重複して読み込めなくなるため避けてください。
サブスクリプションのグループ分けとサーバーの絞り込み
サブスクリプションはサーバーをまとめて提供しますが、サーバー数が増えると選択の負担と誤操作も増えます。有効な整理方法は、すべてのノードを長い1つのリストに入れることではなく、まず提供元でグループ分けし、用途に応じて絞り込むことです。v2rayNでは、既定のグループ、外部サブスクリプション、自分で構築したノードを分けて管理するとよいでしょう。v2rayNGとv2flyNGでは、サブスクリプション設定やメモ欄で提供元を区別できます。グループの境界は安定させ、ノードのメモは変更できても、提供元、用途、管理担当を混在させないことが重要です。
各サブスクリプションには「日常利用」「テスト回線」「自分で構築したサービス」のように、識別しやすい名前を付けます。名前には提供元だけを表し、時間とともに変わる現在のノード状態は書き込まないでください。手動追加したサーバーは別に保存し、自動更新されるサブスクリプショングループへ移動しないようにします。更新後に上書きされたか判断しづらくなるためです。使わなくなったサブスクリプションは、まず自動更新を停止してしばらく様子を見てからグループを削除します。すぐに空にすると、既存のメモや選択履歴も失われます。
フィルターで解決する問題
サーバーフィルターは、長いリストから候補を絞り込むために使います。一般的な条件は、メモのキーワード、プロトコルの種類、トランスポート方式、サブスクリプションの提供元です。フィルター条件はまず説明可能であるべきです。キーワードを1つ入力したとき、サーバーのメモを見れば一致した理由が分かる状態にします。複雑な正規表現は柔軟ですが、サブスクリプション側の命名が少し変わるだけで選択漏れが起こります。同じサブスクリプション内でメモの形式を統一し、地域、用途、回線種別をキーワードにする方法が安定します。
絞り込みとルーティングは別のものです。絞り込みは画面に表示するサーバーや一括テストの対象を決め、ルーティングは接続後の各リクエストがどのアウトバウンドを通るかを決めます。サーバーフィルターで通信の分流を代用したり、ノードを非表示にしただけで設定から完全に削除されたと考えたりしないでください。クライアントによっては、フィルターがリスト表示だけを変え、使用中のノードは引き続き動作します。一括削除の前に、現在の選択項目とグループ範囲を確認してください。
キーワードと正規表現を使い分ける
日常の選択には、「仕事用」「自作」「プロトコル名」のような単純なキーワードが適しています。複数の候補語を指定する場合は、正規表現の選択記号を使えます。テストノードを除外する場合は否定条件も使えますが、まず小さな範囲で検証してください。クライアントによってフィルターの入口や正規表現の対応範囲が異なるため、式をコピーする前に、対象がサーバーのメモ、アドレス、完全な表示名のどれか確認します。以下の式は、特定のノード数や速度データに依存しない一般的な考え方を示します。
仕事用|自作
^(?!.*テスト).*
(VLESS|VMess|Trojan)
1行目はメモに「仕事用」または「自作」を含む項目に一致します。2行目は「テスト」を含む名前を除外します。3行目は表示名に含まれるプロトコル名で絞り込みます。サブスクリプションの命名方法が異なる場合は、実際のメモを確認してから調整してください。結果が空になったら、まず境界記号と除外条件を外し、基本キーワードが一致することを確認してから条件を少しずつ追加します。最初から長い式を書くと、どの部分で不一致になったか分かりにくくなります。
更新、重複排除、無効項目への対応
サブスクリプションの更新は、まず1つのグループだけで実行します。更新後は項目が正常に解析されたことを確認してから、使用中のノードを切り替えます。同じサーバーがメモの違いで重複して表示されることもあれば、パラメーターが異なるためアドレスだけ同じに見えることもあります。重複排除ではドメインとポートだけでなく、ユーザー識別子、プロトコル、トランスポート方式、TLS、パスなどの重要なパラメーターも比較してください。完全に一致する項目には自動重複排除が適していますが、差異がある場合は残して名前を付け直す方が安全です。
無効な項目は、一時的に到達できないもの、パラメーターが誤っているもの、サブスクリプション提供元が取り消したものの3種類に分けられます。1回の接続失敗だけで長期的な無効化と判断せず、まずローカルネットワークを切り替えるか、回線の復旧を待ちます。プロトコル解析エラーが続く場合は、現在のクライアントが認識できないフィールドをサブスクリプションが使っていないか確認します。更新後にサブスクリプションから消えた項目は、通常は提供元による取り消しです。自動更新グループへ手動で戻すことはおすすめしません。速度測定は現在のネットワーク条件での比較に使うもので、永久的な順位付けの根拠にはなりません。
整理のコツ:まず提供元でグループ分けし、キーワードで候補サーバーを絞り込み、最後に使用するノードを手動で選びます。グループ分けは管理の問題、フィルターは検索の問題、ルーティングルールは通信先の問題を解決するものであり、混同しないでください。
3つのクライアントで異なるグループ管理のポイント
v2rayNはデスクトップのリスト領域が広く、複数サブスクリプションの管理、一括更新、細かな絞り込みに適しており、デスクトップでは第一候補です。v2rayNGはタッチ操作のリストを使うため、同時に有効化するサブスクリプションを減らし、短い名前と明確な接頭辞を使うとよいでしょう。v2flyNGの管理方法はAndroidの利用感覚に近い一方、コアの系統が異なります。同じサブスクリプションを読み込んでも、プロトコルとトランスポートのパラメーターが完全に認識されているか確認してください。再インストールやプラットフォーム変更が必要な場合は、ダウンロードページでシステムに合うクライアントを選びます。
整理が終わったら、復元性を確認します。現在使用中のサブスクリプションとサーバーを記録し、1つのグループだけ手動更新して、自作ノードが変わらないことを確認します。その後クライアントを再起動し、選択状態が保持されるか確認してください。更新後に使用中の項目が切り替わった場合は、自動選択が有効になっていないか、現在の項目がサブスクリプションで置き換えられていないかを確認します。サブスクリプションURLは継続して利用する認証情報にあたるため、公開スクリーンショット、ログ、共有ルールファイルに記載しないでください。トラブル対処では、解析結果とエラーの種類だけを伝えれば十分です。
V2Ray ルーティングルールの実践
ルーティングルールは、ドメイン、IP、ポート、ネットワーク種別、インバウンドタグ、プロトコルの特徴に基づいて、接続を指定のアウトバウンドへ送ります。代表的なアウトバウンドはプロキシ、直接接続、ブロックです。ルールは通常、上から順に評価され、最初に一致したルールが実行されます。同じ宛先が複数のルールに該当する場合、ルールの数より順序が重要です。設計前に「LANは直接接続、指定した業務ドメインは専用アウトバウンド、その他は基本ルール」のように目的を書き出し、それを条件へ落とし込みます。
保守しやすい順序は、通常、具体的な条件から広い条件へ並べます。まず明確にブロックする対象、次にLANとプライベートアドレス、続いて指定ドメインと専用アウトバウンド、その後に地域ドメインやIPルールを置き、最後にフォールバックを置きます。広範囲のルールを先頭に置くと、後続の細かなルールは永遠に一致しません。変更後は、目的のWebページが開くかだけでなく、クライアントログのルーティング結果を確認してください。
ドメインの一致とドメイン戦略
ドメインルールは、完全なドメイン、サフィックスドメイン、あらかじめ定義されたドメイン集合に一致させられます。完全一致は単一サービスに適し、サフィックス一致はすべてのサブドメインを対象にするため、範囲を確認して使います。たとえば example.com にサフィックスルールを適用すると、api.example.com と static.example.com にも影響します。1つのサービスがWebページ、API、静的リソースを別ドメインで提供している場合、メインドメインだけを追加すると、ページの枠組みは読み込めてもリソースだけ失敗することがあります。
domainStrategy は、ルーティングの一致判定時にドメインをIPへ解決するかどうかを決めます。AsIs では元のドメインを優先して保持し、IPルールのために積極的な解決は行いません。IPIfNonMatch ではドメインルールに一致しなかった場合に解決してから、IPルールを試します。IPOnDemand では、IP一致が必要になりそうな段階でより早く解決します。通常は IPIfNonMatch から始めると、ドメインルールとIPルールを両立しつつ、すべてのリクエストを先に解決せずに済みます。DNS設定が不完全だと、IP一致に依存する戦略で解決失敗が増えることがあるため、ルーティングとDNSを合わせて検証してください。
基本ルールの構成
{
"routing": {
"domainStrategy": "IPIfNonMatch",
"rules": [
{
"type": "field",
"ip": [
"geoip:private"
],
"outboundTag": "direct"
},
{
"type": "field",
"domain": [
"full:intranet.example",
"domain:office.example"
],
"outboundTag": "direct"
},
{
"type": "field",
"domain": [
"domain:service.example"
],
"outboundTag": "proxy"
},
{
"type": "field",
"network": "tcp,udp",
"outboundTag": "proxy"
}
]
}
}
例ではまずプライベートアドレスを直接接続へ送り、2つの内部ドメインを処理し、特定のサービスをプロキシへ送り、最後にTCPとUDPのルールでフォールバックします。full: は完全なドメインだけに一致し、domain: はそのドメインとサブドメインに一致します。例のドメインは構文の説明用です。実際に使う場合、アウトバウンドタグは設定内の tag と完全に一致させてください。タグの綴りが違っても自動変換されないため、設定の読み込み失敗や対象アウトバウンドの検索失敗につながります。
ポート、ネットワーク種別、インバウンドタグ
ポートルールは、特定のサービスを指定のアウトバウンドへ渡す場合に便利ですが、ポートはアプリそのものではありません。現在の多くのアプリは汎用的な暗号化ポートを使うため、ポートだけで用途を区別できません。network ではTCPとUDPを区別できます。特にTUNを有効にした場合は、DNS、リアルタイム通信、一部のトランスポートがUDPを使うため注意が必要です。選択したノードや上流アウトバウンドがUDPを処理できない場合は、必要なUDP通信を直接接続へ送るか、DNSのトランスポート方式を調整して依存を減らせます。ただし、UDPを無効にすればアプリに影響しないと単純に考えないでください。
inboundTag では、異なるローカル入口を区別できます。たとえばブラウザー用のインバウンドとシステム通信用のインバウンドを別々に作り、ルーティングで異なるアウトバウンドへ送れます。この構成はテストと分離に適していますが、GUIクライアントが複数のインバウンドを公開するかどうかは設定モードによって異なります。クライアントが生成した設定を使う場合は、実際のインバウンドタグを確認し、別の環境の名前をそのまま写さないでください。タグが正しいのに一致しない場合は、通信がシステムプロキシとTUNのどちらのインバウンドから入っているか確認します。
ルールが一致したか確認する
確認は3段階で行います。1段階目は、目的のルールを広いルールより一時的に前へ移し、先に捕捉されないようにします。2段階目はクライアントのログ表示レベルを上げ、再接続してテスト対象を1つだけ開きます。3段階目は、対象ドメイン、解決されたアドレス、最終アウトバウンドタグを確認します。ログにIPしか表示されずドメインがない場合、アプリが独自に解決しているか、DNSリクエストがクライアントを経由していない可能性があります。その場合、ドメインルールが機能しないことがあるため、TUNの使用、DNS接続の調整、IPルールの追加を検討します。
ルール変更後も古い経路を通る場合は、接続の再利用とキャッシュも確認します。ブラウザーが既存接続を保持していたり、システムがDNS結果を保持していたり、コアが既存セッションを再利用していたりします。対象アプリの既存接続を閉じ、必要なキャッシュを消去してクライアントに再接続してから確認してください。すでに確立したセッションを連続更新して、新しいルールを判断しないでください。その他のよくある問題は、ヘルプセンターの「利用のコツ」と「トラブル対処」から確認できます。
ルールの境界:広範囲のフォールバックルールは必ず最後に置きます。ルールを1つ追加するたびに、対象、送信先アウトバウンド、確認方法を明記してください。用途を説明できない過去のルールは、例外を重ねるのではなく、まず無効化します。
DNS設定の最適化と分流解析
DNS設定は、ドメインからアドレスを取得する方法を決め、ドメインルールとIPルールの連携にも影響します。システムDNS、クライアント内蔵DNS、ブラウザーの暗号化DNS、アプリ独自の解決が同時に存在することがあります。クエリが想定した経路を通らないと、「ルーティングは正しいのにアウトバウンドを誤る」状態になります。最適化の前に、どこからクエリが送られているか確認してください。システムプロキシは通常、すべてのDNSを自動的に引き受けません。TUNモードはシステムのクエリをクライアントへまとめて送るのに適していますが、ブラウザーやアプリが独自に発行する暗号化クエリにも対処が必要です。
DNS分流の基本目標は、ドメインごとに適切なDNSサーバーを選び、クエリ自体も正しいアウトバウンドから送ることです。ドメイン分類、問い合わせ先サーバー、ルーティングのアウトバウンドは、それぞれ独立した判断です。ドメインを特定のDNSサーバーへ割り当てても、業務接続が同じアウトバウンドを使うとは限りません。対応するルーティングルールも必要です。逆に、業務ルーティングだけを書いて解決経路を処理しないと、アプリが不適切なアドレスを先に取得し、誤ったIPルールに一致することがあります。
サーバーの順序と一致範囲
コアのDNSには複数のサーバーを設定し、サーバーごとにドメインの一致リストを付けられます。専用の一致条件は汎用サーバーより前に置きます。内部ドメインはLANのDNSへ送り、指定した外部ドメインは暗号化クエリを使い、その他は既定のサーバーへ渡せます。クライアントが skipFallback のような制御項目に対応していれば、一致済みのドメインをフォールバックサーバーへ再度問い合わせないようにできます。ただし有効化する前に専用サーバーの安定性を確認してください。専用サーバーから結果を得られない場合でも、フォールバックへ自動移行しなくなるためです。
{
"dns": {
"queryStrategy": "UseIP",
"servers": [
{
"address": "192.168.1.1",
"domains": [
"full:intranet.example",
"domain:office.example"
],
"skipFallback": true
},
{
"address": "https://dns.example/dns-query",
"domains": [
"domain:service.example"
]
},
"localhost"
]
}
}
例では内部ドメインをLANのDNSサーバーへ送り、指定したサービスをサンプルの暗号化問い合わせ先へ送り、その他のリクエストはローカルの名前解決を使います。実際の設定では、暗号化問い合わせ先のドメイン自体も解決して接続を確立する必要があります。この初期解決を、まだ使えない同じ暗号化経路に依存させてはいけません。システムまたは基本DNSで問い合わせ先のドメインを先に解決するか、クライアントが対応するブートストラップ機構を使います。ログに問い合わせ先ドメインの解決失敗が続く場合は、まずこの依存関係を解消してください。
問い合わせ戦略とアドレスファミリー
queryStrategy は返すアドレスの種類を制御します。UseIP は利用可能なアドレスファミリーを使い、UseIPv4 はIPv4だけ、UseIPv6 はIPv6だけを要求します。選択は、ローカルネットワークとアウトバウンド経路が該当するアドレスファミリーを完全にサポートしているかで決めます。システムがIPv6アドレスを取得しても、プロキシ経路がIPv6接続を確立できなければ、アプリは失敗を待ってからフォールバックし、初回アクセスが明らかに遅くなることがあります。その場合は一時的にIPv4戦略で確認できますが、長期的にはローカルネットワーク、ノードのアウトバウンド、ルーティングルールがIPv6をどう扱うかを確認してください。
すべての名前解決問題を固定のアドレスファミリーで隠さないでください。サービスによってはアドレスファミリーごとに接続先が異なり、LAN内のサービスも特定のアドレスファミリーでしか利用できないことがあります。変更後は、内部ドメイン、よく使う公開ドメイン、IPアドレスだけの接続をそれぞれテストし、他の経路を壊していないことを確認します。1つのアプリだけ異常なら、独自DNSや接続最適化機能が有効になっていないか確認してください。そのアプリのクエリはクライアントに入っていない可能性があります。
DNSとルーティングの連携
DNSクエリ自体もネットワーク通信であり、直接接続かプロキシかをルーティングで決める必要があります。暗号化DNSが通常のTCPまたはHTTPS接続を使う場合、サーバーのドメインまたはIPに基づいてアウトバウンドを指定できます。クエリをプロキシ経由で送る場合は、解決より前にプロキシのアウトバウンドが接続可能なサーバーアドレスを持っていることを確認します。ノードのサーバーアドレスにドメインを使う場合は、起動時の解決依存に特に注意が必要です。最も安定する起動経路は、基本DNSでノードのサーバードメインを解決し、確立済みのプロキシで後続の専用クエリを処理する方法です。
ルーティングで IPIfNonMatch を使うと、ドメインルールに一致しなかった場合にDNS解決が発生し、その後IPルールと照合されます。このとき、DNSサーバーが返すアドレスがルーティング結果を直接左右します。同じドメインに複数のアドレスがあると、キャッシュ結果の変化によって異なるルールに一致することがあります。安定したドメインルールを優先し、IPルールは地域集合、プライベートアドレス、アドレス単位の判定が本当に必要な対象に使ってください。各ドメインのアドレスを手作業で管理する用途には向きません。
キャッシュ、漏洩経路、確認方法
DNSを確認するときは、ブラウザー独自の解決機能を無効にするか、テスト対象に含めることを明確にします。クライアントに再接続してから、システムとブラウザーの関連キャッシュを消去し、新しいクエリを1回発行します。ログにはドメイン、選択されたDNSサーバー、返されたアドレス、後続の業務接続のルーティング結果が表示されるはずです。Webベースの検査ツールだけでは、すべてのシステムクエリ経路は分かりません。確認できるのは現在のブラウザーであり、ターミナル、バックグラウンドサービス、他のアプリではないためです。
通常のシステムプロキシ使用時もDNSがローカルネットワークで処理されるなら、それは接続範囲の違いであり、必ずしも設定ミスではありません。より多くのアプリをまとめて接続する必要がある場合にTUNを有効にし、DNSには明確なインバウンドとルーティングを設定します。TUN有効後に解決ループが起きたら、DNSクエリが再びTUNへ入っていないか、問い合わせ先サーバー用の直接接続またはプロキシ例外が不足していないか、FakeDNSと実DNSのルールが重複していないかを確認してください。分流解析の詳しい例は、V2Ray DNS分流解析設定の詳しい解説でも確認できます。
設定の順序:まず基本DNSを安定させ、次にドメイングループと暗号化クエリを追加し、最後にTUNとFakeDNSを連携させます。各段階で問い合わせ先サーバー、返却アドレス、業務用アウトバウンドを記録し、「Webページが開くか」だけで判断しないでください。
v2rayNのTUNモード:接続範囲と設定の順序
TUNモードは仮想ネットワークインターフェースで、より多くのシステム通信を受け取ります。システムプロキシを読み取らないアプリ、個別にプロキシを設定できないアプリ、UDPを処理する必要があるアプリに適しています。システムプロキシとの違いは強弱ではなく、接続する層です。システムプロキシはアプリが設定に従う必要があり、経路が明確でトラブル対処も簡単です。TUNはネットワーク層で通信を捕捉して範囲を広げますが、ルーティングテーブル、仮想インターフェース、DNS接続、システム権限という追加要素が生まれます。初回設定では、まずシステムプロキシが使えることを確認してからTUNを有効にしてください。
v2rayNはデスクトップでの第一候補です。TUNを有効にする前に、クライアントのインストール先へ書き込めること、システムが仮想インターフェースの作成を許可していることを確認し、システムルートやネットワークインターフェースを変更する他の同種ツールを終了します。Windows、macOS、Linuxでは権限の扱いが異なり、管理者権限やシステムネットワークの許可を求められることがあります。権限が拒否されても、クライアントのローカルプロキシだけは起動する場合があります。そのため、メイン画面の接続状態だけでなく、インターフェースとルートを確認してください。
推奨する有効化の順序
1段階目は、検証済みのノードを1つ残し、ルーティングを基本ルール、DNSを信頼できる単一設定にします。2段階目は、競合する可能性のあるネットワークツールを終了し、現在のシステムプロキシ状態を記録します。3段階目でTUNを有効にし、仮想インターフェースとルートの作成が完了するまで待ちます。4段階目は、ブラウザー、ターミナル、これまでシステムプロキシに従わなかったアプリをそれぞれテストします。5段階目でDNS分流、FakeDNS、カスタムルーティングを1つずつ戻します。有効化後にすべての通信が止まったら、すぐにTUNを無効にし、システムルートが復元したことを確認してから、権限、スタック種別、DNSを調べます。
設定によってはシステムプロキシとTUNを同時に有効にできますが、テスト段階では同じアプリを両方で処理させないことをおすすめします。ブラウザーはシステムプロキシから入り、他のアプリはTUNから入ることがあります。インバウンドタグでルーティングを分けている場合、2つの経路が異なる結果になる可能性があります。原因を明確にするため、まずシステムプロキシを無効にしてTUNだけをテストし、その後、日常の用途に応じてシステムプロキシの入口を残すか決めてください。
厳格なルーティングとバイパスルール
TUNの一般的な設定には、自動ルーティング、厳格なルーティング、インターフェース選択、LANのバイパスがあります。自動ルーティングはシステムルートを追加し、厳格なルーティングは仮想インターフェースを迂回する通信をより強く制限します。一貫した接続が必要な環境に適していますが、仮想マシン、コンテナ、企業ネットワーク、ローカル共有サービスと競合しやすくなります。まず自動ルーティングで確認し、実際の漏洩経路を見てから厳格なルーティングを検討してください。既存のルーティングテーブルを理解しないまま、強制系オプションを複数同時に有効にしないでください。
LANとプライベートアドレスは通常、直接接続にします。そうしないと、プリンター、ルーターの管理画面、ファイル共有、内部サービスへ接続できないことがあります。ここには2つの層があります。システムルートがプライベートアドレスをTUNから迂回させるか、カーネルへ入った後にルーティングがプライベートアドレスを直接接続のアウトバウンドへ渡すかです。両方が正しく設定されて初めて安定します。企業ネットワークでは、内部アドレスが一般的なプライベートアドレス範囲だけで構成されているとは限りません。内部DNSや特定ルートに依存する場合もあるため、基本のプライベートアドレスルールに加えて、内部ドメインとネットワーク範囲を明示的に追加してください。
MTU、プロトコルスタック、パフォーマンス
MTUは、仮想インターフェースで扱える1パケットの最大サイズを決めます。大きすぎると一部の経路で正しく転送できず、小さなWebページは開くのに大きなファイルや特定のリクエストが止まることがあります。小さすぎると分割と処理の負荷が増えます。明確な症状がなければ、クライアントの既定値を使ってください。経路MTUの問題を確認した場合だけ、少しずつ下げ、各変更後にWebページ、ファイル転送、リアルタイム接続をテストします。他のネットワーク環境の数値をそのまま流用しないでください。
TUNの各スタックには、互換性、UDP処理、システム統合の面で違いがあります。クライアントの既定値は一般的な環境を対象としているため、スタック変更は原因を絞ったトラブル対処として行います。変更後にDNSは正常なのに一部の接続だけ失敗する場合は、TCPとUDPのログを比較します。すべてのアプリが接続できない場合は、インターフェースにアドレスが付いているか、デフォルトルートがTUNを指しているか、ノードのサーバーアドレスがプロキシへ戻されてループしていないか確認してください。
プラットフォームごとの差異と競合要因
| プラットフォーム | 重点的に確認する項目 | よくある競合 | 確認方法 |
|---|---|---|---|
| Windows | 仮想インターフェース、管理者権限、システムルート | 他の仮想NIC、企業のセキュリティポリシー | アダプターとルーティングテーブルを確認してから、異なるアプリをテスト |
| macOS | ネットワーク拡張の許可、現在のネットワークサービス | 古い許可情報の残留、他のネットワーク拡張 | システムの許可を確認して接続を再確立 |
| Android | システムネットワーク接続の許可、バックグラウンド制限 | 省電力設定、常時有効な他の接続 | クライアントを前面に表示したままテストし、その後バックグラウンドを確認 |
| Linux | TUNデバイスの権限、ルーティング、DNS管理サービス | コンテナブリッジ、ファイアウォールルール | インターフェース、ポリシールーティング、名前解決サービスを確認 |
Androidのv2rayNGとv2flyNGは、システムが提供するネットワーク接続機構を使います。トラブル対処では、許可、バックグラウンド動作、バッテリー制限を重点的に確認してください。デスクトップのv2rayNは、ルーティングテーブルとDNSサービスを詳しく確認するのに適しています。プラットフォーム間で設定を同期する場合、TUNパラメーターを完全にコピーできるとは考えないでください。ルールの意図を同期し、インターフェース、権限、スタックの実装は各プラットフォームで選び直します。
無効化後にシステムネットワークを復元する
異常終了すると、システムプロキシ、DNS、ルートの状態が残ることがあります。通常は、クライアントを再起動し、まずTUNとシステムプロキシを無効にしてからクライアントを終了します。その後、システムのネットワーク設定が自動取得に戻っているか確認してください。ドメインだけアクセスできずIPには到達できる場合はDNSの復元を、すべての宛先に到達できない場合はデフォルトルートと仮想インターフェースを、ブラウザーだけ異常な場合はブラウザーのプロキシ元を確認します。クライアントを何度も再インストールしても、システム層に残った状態は通常直りません。まずどの層が復元されていないかを特定する方が効果的です。
トラブル対処の原則:TUNに問題が起きたら、まずシステムプロキシの基準状態へ戻します。ノード、サブスクリプション、基本ルーティングが使えることを確認してから、インターフェース、権限、DNS、厳格なルーティングを確認し、失敗した状態にルールを重ね続けないでください。
FakeDNSの仕組みと適用範囲
FakeDNSは、ドメインに対して予約アドレスプール内の一時アドレスを返し、コア内部にドメインとそのアドレスの対応を保存します。アプリがこの一時アドレスへ接続すると、コアは対応表から元のドメインを復元し、ルーティングと実際の接続を実行します。主な用途は、アプリが先に独自のDNSクエリを発行し、その後IP接続だけをTUNへ渡すことで、コアが元のドメインを失い、ドメインルールに一致できなくなる問題の解決です。FakeDNSは後続の接続段階までドメイン情報を保持するため、分流の判定が安定します。
FakeDNSは通常のDNSサーバーの代わりではなく、すべての名前解決を改善するものでもありません。コアがドメインを復元した後も、実際の接続には設定に従った解決、または対応するアウトバウンドが必要です。ルーティング、実DNS、アウトバウンドの設定が誤っていれば、FakeDNSによって問題が見えにくくなるだけです。そのため、TUNの基本経路と通常のDNSが安定してから有効にし、どのクエリをFakeDNSへ送り、どの内部ドメインが実アドレスを返す必要があるかを明確にします。
アドレスプールとマッピング容量
FakeDNSの設定にはアドレスプールとマッピング容量が含まれます。アドレスプールには専用の予約範囲を使い、LAN、企業ネットワーク、コンテナネットワーク、既存の仮想インターフェースと重複させないでください。重複すると、システムが一時アドレスを実ネットワークへ送ったり、実際の内部アドレスをFakeDNSへ渡したりすることがあります。容量は同時に保存できるドメインマッピング数を決めます。容量不足で古いマッピングが破棄されると、アプリが古いアドレスを保持している間にドメインを復元できなくなることがあります。通常はクライアントの既定値を使い、大量のドメインを同時に扱い、ログでマッピングの破棄を確認した場合だけ調整してください。
{
"fakedns": [
{
"ipPool": "198.18.0.0/15",
"poolSize": 65535
}
]
}
198.18.0.0/15 は、仮想マッピングに使われることが多いベンチマーク用の予約アドレス範囲です。使用前に、ローカルネットワークや他のツールがこの範囲を使っていないか確認してください。設定断片はコア内のFakeDNSオブジェクトを表すだけです。クエリを実際に送り込むには、対応するDNS設定、インバウンドのスニッフィング、TUN接続も必要です。オブジェクトを単独で追加しても、システムのクエリ経路は自動的に変わりません。
スニッフィングと対象の上書き
インバウンドのスニッフィングは、接続からドメインやプロトコル情報を識別します。FakeDNSと組み合わせる場合、一般的な対象の上書きにはHTTP、TLS、FakeDNSマッピングが含まれます。対象の上書きを有効にするかは、クライアントのテンプレートに従って決めてください。上書きによってルーティングで復元後のドメインを使える一方、特殊な接続の対象処理が変わる可能性もあります。まずクライアントが提供する標準のFakeDNSモードを使い、生成された設定を確認してからカスタマイズします。すべてのプロトコル識別オプションを一度に有効にしないでください。
{
"inbounds": [
{
"tag": "tun-in",
"protocol": "tun",
"sniffing": {
"enabled": true,
"destOverride": [
"http",
"tls",
"fakedns"
],
"routeOnly": true
}
}
]
}
routeOnly は、識別結果を主にルーティング判定に使い、最終的な接続先を直接置き換えないことを示します。対象の書き換えによる影響を抑えたい環境に適しています。対応するフィールドが現在のコアとクライアントの設定方式で使えるかどうかは、クライアントの生成結果を基準にしてください。設定読み込み時に未知のフィールドが報告された場合は、まずカスタム断片を取り消し、画面のFakeDNSオプションを使ってから、コアの系統と設定形式が一致しているか確認します。
FakeDNSに渡さない方がよい対象
LANのドメイン、企業内部のドメイン、プリンターや検出サービスは、通常実アドレスが必要です。FakeDNSをバイパスして内部DNSへ渡してください。ローカルアドレスの判定、証明書のバインディング、特殊な解決結果に依存するアプリも、仮想マッピングに適さない場合があります。除外ルールはできるだけ具体的にし、明確な内部ドメインと予約済みサフィックスを先に除外してから、他の異常がないか確認します。広範囲のドメインをすべて除外すると、FakeDNSでドメインを保持する意味が失われます。
アプリによっては、DNSの返却アドレスを検証したり、システムの名前解決を迂回したり、独自の暗号化クエリを使ったりします。前2者ではFakeDNSが機能しないことがあり、後者ではクエリが通常のHTTPS接続としてTUNへ入るため、コアは接続の特徴からドメインの復元を試みるしかありません。ログにFakeDNSのクエリが表示されない場合は、アドレスプールを何度も変更せず、まずアプリのクエリがクライアントへ入っているか確認してください。
よくある障害の確認順序
有効化後にまったく解決できない場合は、DNSがクエリをFakeDNSへ送っているか確認します。一時アドレスは返るのに接続できない場合は、TUNがそのアドレス範囲を接続対象にしているか、インバウンドがドメインを復元できるか確認します。内部サービスだけが失敗する場合は、内部ドメインの除外とLANのDNSを確認します。しばらく使った後に断続的に失敗する場合は、マッピング容量、アプリのキャッシュ、スリープ復帰を確認します。症状ごとに該当する層は異なるため、DNSサーバーの変更だけですべてを解決しようとしないでください。
確認では、クエリが予約アドレスを返したかを確認し、コアのログで同じアドレスが元のドメインへマッピングされ、最終アウトバウンドへ進んだことを確認します。システムツールで一時アドレスへ直接接続しても、サーバーの到達性は判断できません。一時アドレスは実サーバーを表していないためです。FakeDNSを無効にした後は、アプリとシステムの関連DNSキャッシュを消去し、無効になった一時アドレスへアプリが接続し続けないようにします。
適用条件:FakeDNSは、TUNが安定し、ドメインルールが多く、アプリがIP接続だけを渡す環境に最も適しています。通常のシステムプロキシですでに対象ドメインを保持できている場合、FakeDNSを追加しても大きな効果は通常ありません。
実DNSの分流と併用する
成熟した設定では、FakeDNSと実DNSを併用します。一般的な公開ドメインには一時アドレスを返してドメインを保持し、内部ドメインはLANのDNSへ直接問い合わせ、ノードのサーバードメインは基本DNSで起動時に解決し、指定した一部のサービスだけ専用の暗号化クエリを使います。各ドメイングループには明確な優先順位を設定し、同じ対象が内部DNSにもFakeDNSにも一致しないようにします。変更後は、公開Webページ、内部サービス、ノードの再接続、システムのスリープ復帰を個別にテストし、ライフサイクルの変化後もマッピングを再構築できることを確認してください。
複数サブスクリプションの管理、更新、移行
複数サブスクリプションの管理で重要なのは、より多くのアドレスを読み込むことではなく、提供元の境界、更新担当、障害の分離を明確にすることです。各サブスクリプションに独立した名前、グループ、更新ポリシーを設定し、自作サーバーは専用グループに入れ、テスト用の一時サブスクリプションは自動更新を初期状態で無効にします。これにより、更新でノードが消えたり、メモが変わったり、パラメーターを解析できなくなったりした場合も、混在したリストを1項目ずつ比較せず影響範囲をすぐ特定できます。
サブスクリプション名は長期的に安定させ、ノード名は提供元の更新に任せます。「用途—提供元」のような短い命名を使い、現在の日付、速度、オンライン状態をサブスクリプション名に入れないことをおすすめします。同じ提供元の予備URLがある場合は、メインの入口を1つだけ有効にし、予備は記録として残して同時更新しないでください。大量の重複ノードが読み込まれる可能性があります。複数の端末で使う場合はグループ名を統一すると比較しやすくなりますが、使用中のノードと自動更新の間隔は端末ごとのネットワーク環境に合わせて設定します。
自動更新の時刻と失敗時の扱い
自動更新は安定したサブスクリプションに適していますが、頻繁すぎる設定は避けてください。内容は通常、分単位では変わりません。過度な更新は失敗ログを増やし、ネットワークが復旧した直後に現在のリストを何度も上書きする可能性もあります。デスクトップでは一定間隔の更新と手動更新の入口を併用できます。モバイルではバックグラウンド制限に注意が必要です。クライアントは前面表示中、またはシステムがバックグラウンド動作を許可している場合にしか更新できないことがあります。「更新成功」と表示されても、リクエストが完了したかだけでなく、項目数と解析状態を確認してください。
更新失敗は、ネットワークリクエストの失敗、内容形式のエラー、一部項目の解析失敗に分けられます。リクエスト失敗時は旧リストを保持することが最も重要で、すぐにグループを削除して作り直してはいけません。形式エラーでは、サブスクリプションが想定した内容を返しているか確認します。一部の解析失敗では、クライアントが対応していないプロトコルやフィールドがないか確認し、解析に成功した項目はそのまま使えます。失敗が続く場合は、まず同じネットワークで基本接続を確認し、次にネットワークを切り替えて、入口へ到達できないのか、クライアントの解析問題なのかを切り分けます。
統合方針と重複ノード
複数のサブスクリプションを、提供元を追跡できない1つのグループへ恒久的に統合することはおすすめしません。統合後のリストは短期的には便利でも、後からどの提供元を更新・削除すべきか判断できなくなります。提供元ごとのグループを残し、フィルターで一時的な候補リストを作る方がよいでしょう。クライアントがグループ横断の絞り込みに対応していれば、プロトコル、用途、メモのキーワードで結果を表示できます。対応していない場合は、各グループで接頭辞を統一して切り替えの負担を減らします。
重複ノードを判断するときは、接続情報全体を比較します。アドレスとポートが同じでも、ユーザー識別子、TLSサーバー名、トランスポートパス、プロトコルが異なる場合があり、必ずしも重複ではありません。メモが同じでもパラメーターが同じとは限りません。重要なフィールドが完全に一致する場合だけ、重複項目の削除を検討します。2つのサブスクリプションが同じサーバーを長期的に提供する場合は、主となる提供元を1つ選び、もう一方を独立した予備として残します。自動更新で見た目の重複を増やし続けないでください。
サブスクリプションによる上書きとローカル変更
自動サブスクリプション内のノードパラメーターは通常、提供元が管理します。ローカルで変更したメモは更新後も残ることがありますが、上書きされる場合もあります。サーバーパラメーターの変更は、次回更新で失われやすいものです。長期的にカスタマイズする項目は「自作ノード」や「ローカル変更」グループへコピーし、名前に用途を記載してください。コピーした項目は提供元の更新を自動取得しなくなるため、サーバーパラメーターの変更は手動で管理する必要があります。サブスクリプションの元項目とコピーを同時に変更すると、障害時にどちらを使っているか分からなくなるため避けてください。
ルーティング、DNS、TUNの設定は、特定のノードからできるだけ独立させます。アウトバウンドタグとクライアントの生成ロジックが安定していれば、サブスクリプションを切り替えてもルーティング全体を書き直す必要はありません。特定のノード種別が特定のネットワーク種別に対応しない場合は、個別の設定ファイルやグループポリシーで処理し、共通ルーティングにノード名と結び付いた条件を大量に追加しないでください。設定の依存関係が少ないほど、移行と切り戻しが簡単になります。
端末間移行で引き継ぐ最小構成
移行時は、サブスクリプションの提供元、手動ノード、ユーザールーティング、DNSルール、必要なクライアント設定を優先して引き継ぎます。実行時キャッシュ、ログ、一時生成設定をコピーして移行しないでください。v2rayN、v2rayNG、v2flyNGは画面とコアの系統が異なるため、完全な設定をそのまま別クライアントへ読み込めるとは限りません。まずサブスクリプションを移行して単一ノードの接続を確認し、「ルーティング、DNS、TUN、FakeDNS」の順で上級設定を再構築します。
機密フィールドを公開バックアップ、スクリーンショット、共有ドキュメントに含めないでください。トラブル対処の情報を共有するときは、プロトコル種別、トランスポート方式、ルール構造、エラー分類を残しつつ、サーバーアドレス、ユーザー識別子、サブスクリプションURL、認証情報を隠します。2台の端末を比較する場合は、クライアント名、プラットフォーム、接続モード、DNS戦略、ルールのヒット結果を記録すれば、差異を特定するのに十分なことが多いです。
更新後の受け入れチェックリスト
重要な更新後は、次の順に確認します。サブスクリプション名が正しい提供元を示していること、自作グループが上書きされていないこと、使用中のノードが残っていること、新しい項目をクライアントが認識できること、フィルターがメモに一致すること、ルーティングとDNSが削除済みのアウトバウンドタグに依存していないこと、自動更新に失敗しても旧リストを使えることです。最後にクライアントを再起動して新しい接続を1回行い、メモリ上の古い設定だけで確認しないようにします。
移行のヒント:クライアント間では、一時的に生成された完全なファイルを直接移すのではなく、「設定の意図」を優先して移行します。まず基本接続を復元し、その後に上級設定を層ごとに戻すことで、問題が起きたとき正確に切り戻せます。
更新後に大量の項目を認識できない場合は、使用中のクライアントと対象プラットフォームが正しいか確認します。デスクトップではv2rayN、Androidではコアの要件に応じてv2rayNGまたはv2flyNGを選びます。インストール入口はV2Rayクライアントのダウンロードページにまとめてあり、Windows、macOS、Android、Linux別に案内しています。
カスタムアウトバウンド、チェーン転送、体系的なトラブル対処
アウトバウンドは、ルーティング判断の最終的な送信先です。一般的なアウトバウンドには、プロキシノード、直接接続、ブロック、ローカルまたは上流のSOCKSサービスへの転送があります。カスタムアウトバウンドは、特定の業務を独立した出口へ送る、ローカルの既存サービスを再利用する、検証経路を明確にする場合に適しています。重要なのは、タグが一意で、プロトコルパラメーターが完全で、依存関係にループがないことです。ルーティングはタグでのみアウトバウンドを参照するため、名前を変更したらすべてのルールも更新してください。
GUIクライアントは通常、現在のノードから主要なプロキシアウトバウンドを生成し、直接接続とブロックのアウトバウンドも追加します。手動で拡張するときは、クライアントの統合方法を確認していない限り、これらの基本オブジェクトを上書きしないでください。より安全なのは、クライアントが提供するカスタム設定、事前設定、テンプレートの入口を使い、一意のタグを新しく作り、具体的なルーティング1本でテストする方法です。実行時ファイルを直接編集すると、ノード切り替えや再起動後に無効になり、画面表示と実際の設定が一致しなくなる可能性もあります。
ローカルSOCKS上流を追加する
{
"outbounds": [
{
"tag": "local-socks",
"protocol": "socks",
"settings": {
"servers": [
{
"address": "127.0.0.1",
"port": 1081
}
]
}
}
]
}
例では local-socks という名前のアウトバウンドを作り、ローカルホストの1081番ポートで待ち受けるSOCKSサービスへ接続を渡します。使用前にポートが実際に待ち受けていることを確認し、その通信が同じTUNに再び捕捉されて自分自身へ戻らないようにしてください。上流に認証が必要な場合は、クライアントが対応する設定構造へ実際の認証情報を追加し、ローカルだけに保存します。テストでは、まず明確な1つのドメインをこのアウトバウンドへ向け、いきなり全通信を切り替えないでください。
{
"routing": {
"rules": [
{
"type": "field",
"domain": [
"domain:service.example"
],
"outboundTag": "local-socks"
}
]
}
}
ルール内のタグは、アウトバウンドのタグと一字一句一致させる必要があります。設定の読み込みに失敗した場合は、まずJSON構造、余分なカンマ、フィールドの位置を確認します。読み込みは成功したのに上流を通らない場合は、ルールの順序とドメインの一致を確認します。一致しているのに接続できない場合に、ローカルポート、上流の認証、ルーティングループを調べます。ノードを何度も交換するより、層ごとに確認する方が早く解決できます。
チェーン転送のリスク管理
チェーン転送では、1つのアウトバウンドが別のアウトバウンドを経由して接続を確立します。明確なネットワーク構成がある環境には適していますが、名前解決の依存、接続層、障害点が増えます。開始前に経路を図にしてください。アプリがどのインバウンドへ入り、ルーティングがどの業務アウトバウンドを選び、そのアウトバウンドがどの前段アウトバウンドを通り、ノードのサーバードメインを誰が解決するのかを確認します。経路のどこかが前の入口へ戻ると、ループになる可能性があります。
チェーン構成を曖昧なグローバルルールで実現しないでください。前段アウトバウンドと業務アウトバウンドには明確なタグを付け、上流サーバーのアドレスには必要な直接接続または指定ルーティングを設定し、チェーンを経由しない基本接続を切り戻し用に残します。タイムアウトが起きたら、まず各ホップを個別に確認し、その後に組み合わせてテストします。単独では使えるのに組み合わせると失敗する場合は、DNSの起動依存、UDP対応、TUNによる上流接続の再捕捉を重点的に確認します。
直接接続とブロックのアウトバウンド
直接接続のアウトバウンドは、LAN、内部サービス、プロキシが不要な対象に使います。ブロックのアウトバウンドは、接続を明確に拒否するために使います。ブロックルールは具体的にし、広範囲のプロキシルールより前に置いてください。広い分類を直接使うと、ログイン、決済、更新、埋め込みリソースに影響することがあります。追加後は、ページのメインドメインとリソースのドメインを確認します。特定のアプリだけプロキシを使わせたくない場合は、まずプロセスルールやインバウンド分離を使います。クライアントとコアが安定したプロセス識別に対応しない場合は、説明可能なドメインとIPの条件を使ってください。
直接接続は、すべてのクライアント処理を迂回するという意味ではありません。通信がまずTUNへ入り、コアが直接接続のアウトバウンドを選ぶこともあれば、システムルートでTUNを直接迂回することもあります。2つの方法では、ログ、DNS、ローカルサービスとの互換性に違いがあります。ログを記録してルーティングを統一する必要がある場合は、通信をコアへ入れてから直接接続させます。LAN検出やデバイスアクセスなどローカルネットワークに敏感な通信は、通常システムルートで迂回させ、プライベートアドレスの直接接続ルールも残す方が適しています。
ログからトラブル対処マトリクスを作る
上級設定のトラブル対処では、4つの質問に答えます。通信はクライアントへ入っているか、ドメインは誰が解決しているか、どのルールが一致したか、最終アウトバウンドは接続を確立したかです。ログレベルはトラブル対処中だけ上げ、完了後は通常レベルに戻します。記録が増えすぎると確認しにくくなります。ログに対象リクエストがない場合は、システムプロキシ、アプリのプロキシ、TUNを確認します。リクエストはあるのにドメインがない場合は、DNS接続とスニッフィングを確認します。ルーティングタグが誤っている場合は、ルールの順序を調整します。アウトバウンド接続が失敗する場合は、対応するサーバーと上流を確認します。
| 症状 | 考えられる層 | 最初に確認する項目 | 次の手順 |
|---|---|---|---|
| クライアントは動作しているのにアプリが直接接続する | インバウンド接続 | アプリがシステムプロキシに従っているか | アプリにプロキシを個別設定するか、TUNをテスト |
| ドメインは失敗するがIPには接続できる | DNS | クエリが想定したサーバーへ入っているか | キャッシュ、アドレスファミリー、クエリのルーティングを確認 |
| 目的地が誤った経路を通る | ルーティング | 最初に一致したルール | 具体的なルールとフォールバックの順序を調整 |
| 正しく一致するのに接続がタイムアウトする | アウトバウンドまたは上流 | アウトバウンドタグに対応するオブジェクト | ノード、ローカルポート、ネットワークを個別にテスト |
| TUNを有効にするとすべての通信が止まる | インターフェースとシステムルート | 仮想インターフェースとデフォルトルート | 厳格なルーティングを無効にしてDNSを確認 |
| FakeDNSはアドレスを返すが接続できない | マッピングとインバウンド | TUNがアドレスプールを接続対象にしているか | ドメイン復元とスニッフィングの設定を確認 |
長期的に保守できる設定を作る
保守しやすい設定では、ノード名、一時アドレス、画面上の並び順への依存をできるだけ減らします。ルーティングは安定したアウトバウンドタグを参照し、DNSは明確なドメイングループを使い、サブスクリプションは提供元ごとの境界を保ち、TUNとFakeDNSは必要な場合だけ有効にします。各カスタムオブジェクトには用途を記載し、正常に動作する基本設定を残してください。障害が起きたら、直近に追加したオブジェクトをまず無効にし、基準状態が戻ったことを確認してから、問題を1つのルールまたはアウトバウンドに絞り込みます。
設定後は4回の受け入れ確認を行います。クライアントを再起動して設定を読み込めることを確認し、ノードを切り替えてルーティングが古いノードに依存していないことを確認します。サブスクリプションを更新して、カスタムグループとタグが上書きされていないことを確認し、システムを再起動してTUN、DNS、システムプロキシが正しく確立・復元されることを確認します。Webページを1回開くだけでは完了とはいえません。内部ネットワークを使う場合は、LANサービス、内部ドメイン、システムのスリープ復帰も確認してください。
仕上げの確認:サブスクリプションはノードを提供し、フィルターは候補を絞り、DNSは名前を解決し、ルーティングはアウトバウンドを選び、TUNは接続範囲を広げ、FakeDNSはドメインを保持し、カスタムアウトバウンドは特定の経路を完成させます。層ごとに記録しておけば、複雑な設定でも切り戻しと再現が可能です。
問題を特定できない場合は、まずクイックスタートの基本手順に戻って最小構成の接続を確認し、次にヘルプセンターでインストール設定とトラブル対処の項目を確認してください。システムプロキシ、DNS、速度の差異が関係する場合は、サイト内の技術ノートにある層別の事例も参考にして、引き続き確認できます。