1. クライアントは起動しているのにインターネットに接続できない
まず、「すべてのサイトにアクセスできない」のか「一部のサイトだけ開けない」のかを切り分けます。前者ではプロキシの入口とサーバー接続、後者ではルーティングルールとDNSを優先して確認します。ブラウザーに接続エラーが表示されても、サーバーの故障とは限りません。リクエストがクライアントに届いていない場合も、届いた後に適切でない出口へルーティングされている場合もあります。以下の順に確認し、各手順の結果を記録してください。
選択中のサーバーと動作状態を確認する
v2rayNのサーバー一覧で、現在選択されているサーバーがあることを確認します。サブスクリプションを追加しただけでサーバーを選択していない場合や、更新後に元の項目が置き換わった場合は、その後の確認対象がなくなっている可能性があります。クライアントのログを開き、起動時に設定の読み込みエラー、コアの起動失敗、ポートの競合、接続失敗がないか確認してください。起動時点でエラーが出ている場合は、まずログに記録された最初の具体的なエラーに対処し、いきなりDNSを変更しないでください。
一時的に、動作することが確認済みの別のサーバーを選んで再テストします。1台だけ失敗する場合は、そのサーバーのアドレス、ポート、トランスポート設定を優先して確認します。すべて失敗する場合は、ローカルのプロキシ入口とネットワーク環境を確認してください。サーバー情報はサブスクリプション提供元、または自分で管理するサーバーの設定を参照してください。ユーザーID、PublicKey、ShortIdを記憶に頼って入力しないでください。変更前に元の項目を複製しておくと、比較や元に戻す際に便利です。
システムプロキシと適用範囲を確認する
v2rayNのシステムプロキシメニューで現在の状態を確認します。ブラウザーがシステムプロキシを使用する場合、クライアントが起動していても、OSがブラウザーの通信をクライアントに渡しているとは限りません。システムプロキシを必要なモードに切り替え、ブラウザーのウィンドウを一度閉じてから開き直してテストしてください。また、ブラウザー独自のプロキシ設定や拡張機能がシステムプロキシを上書きしていないか確認します。他のアプリがシステムプロキシに従うかどうかは、アプリの実装によって異なります。
プロキシ経路だけを確認する場合は、一時的にグローバルプロキシへ切り替えて同じ接続先をテストできます。グローバルモードではアクセスでき、通常のルーティングモードではアクセスできない場合、入口とサーバーはおおむね動作していると考えられます。再インストールを繰り返すのではなく、ルーティングルールを確認してください。テスト後は元のモードに戻し、診断のための変更を日常の設定に残さないようにします。TUNはより多くの通信を処理できますが、未確認のシステムプロキシの問題を覆い隠す目的で使うべきではありません。
ログからリクエストが止まっている箇所を特定する
クライアントのログ画面を開き、テスト用のページを一つだけ開いて、該当する接続記録が表示されるか確認します。記録がまったくない場合は、システムプロキシ、アプリ独自のプロキシ、またはTUNの入口を確認してください。リクエスト記録があり、接続先の名前解決に失敗している場合は、このページのDNSの章へ進みます。リモートへの接続がタイムアウトしている場合は、ノードのタイムアウトの章を確認してください。ログにルールによって直接接続またはブロックの出口が選ばれたと明記されている場合は、ルーティング設定を確認します。
テストでは同じブラウザー、同じ接続先、同じサーバーを使い、複数のタブのリクエストが混ざらないようにします。ログの「クライアントが起動しました」を「接続先のサイトにプロキシ経由で接続できた」と解釈しないでください。確認できるのはプログラムが動作状態になったことだけです。必要に応じて、通常は直接接続するサイトと、現在のプロキシルールで処理されることが明確なサイトをそれぞれテストし、ルールの適用結果を比較します。
ローカルネットワークと残存プロキシ設定を確認する
クライアントのシステムプロキシ設定を一時的にオフにし、現在のネットワークで本来直接アクセスできるページが開くか確認します。直接接続もできない場合は、Wi-Fi、有線接続、ゲートウェイ、OSのネットワーク設定を先に確認してください。プロキシクライアントで、切断された基本ネットワークを修復することはできません。また、別のプロキシアプリが同じ待ち受けポートを使用していないか、OSに古いプロキシアドレスが残っていないか確認します。ログにポート競合が記録されている場合は、ノードを何度も切り替えるより先に対処する価値があります。
トラブルシューティングが終わったら、システムプロキシとルーティングモードを使用予定の状態に戻し、最初に失敗した操作をもう一度試します。特定のアプリだけで問題が起きる場合は、そのアプリのプロキシ設定とネットワーク権限を確認してください。一つのアプリの挙動を、端末全体の問題と決めつけないようにします。「接続済みなのにウェブページが開かない」などの短いQ&Aはヘルプセンターをご覧ください。基本設定を一から行う場合は、ガイドに戻ってください。
2. ノードがタイムアウトする、または接続が繰り返し切れる
ノードのタイムアウトは、接続が所定の時間内に完了しなかったことを示すもので、原因を一つに特定するものではありません。サーバーアドレスの名前解決、接続先ポート、トランスポートプロトコル、トランスポート層のセキュリティ、現在のネットワークなどが関係します。まず、タイムアウトするのが一つのノードだけかを確認し、その設定を調べます。同じサブスクリプション内のすべてのノードがタイムアウトする場合は、共通のネットワーク入口、サブスクリプションの内容、クライアントの動作状態を先に確認してください。
影響範囲を比較し、速度テストだけで判断しない
同じネットワークで、現在のサーバーと動作確認済みの別サーバーをそれぞれテストし、「単一ノードの失敗」「同じグループの失敗」「すべて失敗」のどれかを記録します。クライアントの遅延テストは特定の接続経路を調べるもので、ウェブサイトやアプリへの実際のアクセスを代替するものではありません。遅延テストに成功してもページが開けない場合は、ルーティング、DNS、アプリのプロキシ設定を確認してください。遅延テストに失敗しても一部のサービスが使える場合は、一つの数値だけを根拠にサーバーを削除しないでください。
次に、現在のWi-Fiからモバイルネットワークへ切り替えるなど、正常に利用できる別のネットワークでも比較します。同じ設定が一つのネットワークでだけ失敗する場合は、そのネットワークのDNS、ゲートウェイ、接続方式が許可されているかを確認してください。異なるネットワークでも失敗し、他のノードは正常な場合は、そのノードのサーバー状態と設定項目の一致を重点的に確認します。テスト時刻とログに記録されたエラーの種類を残しておくと、設定提供元への報告が「ノードが使えない」の一言より具体的になります。
サーバー設定を項目ごとに照合する
「サーバーの編集」で、アドレス(address)、ポート(port)、ユーザーID(id)、トランスポートプロトコル(network)、トランスポート層セキュリティ(TLS)を順に確認します。これらの項目はサーバー側の設定と一致している必要があります。プロトコル名が同じだからといって、設定をそのまま置き換えられるとは限りません。VLESSとREALITYを使用する場合は、SNI、Fingerprint、PublicKey、ShortId、サーバーが要求するフロー制御(flow)も確認します。一部の項目を空欄にできるかどうかは、実際のサーバー設定によって決まります。
変更する際は、根拠のある項目を一度に一つだけ変更し、変更前の値を記録します。サーバーアドレスがドメイン名の場合は、現在のネットワークで名前解決できるかを確認してください。IPアドレスの場合、DNSは通常、その接続入口で最初に疑う箇所ではありません。WebSocketなどのトランスポートを使用する場合は、対応するパスとホスト名の設定も確認します。サブスクリプションから読み込んだ項目と手動編集後の項目を比較すると、コピー時にトランスポートのパラメーターを漏らしたことに気づけます。
ログでタイムアウトが発生した段階を確認する
サーバーのドメイン名の名前解決に失敗したとログに表示される場合は、まずローカルDNSまたはサブスクリプションで使われているドメインを確認します。リモートへの接続確立がタイムアウトしている場合は、アドレス、ポート、基本ネットワーク、サーバーの稼働状態を確認してください。接続確立後にセキュリティハンドシェイクエラーが発生する場合は、SNI、証明書関連の設定、REALITYのパラメーターを重点的に確認します。エラーが起きた段階によって対処方法は異なります。「timeout」と表示されたからといって、すぐにコアを変更するのは避けてください。
Windowsでは、OS標準の名前解決コマンドを使って、ドメインが解決できるかを確認できます。以下のドメイン名はコマンドの書式を示す例です。実際の調査では、自分が確認する権限のあるサーバーのドメイン名に置き換えてください。アドレスが返ってきても、名前解決が完了したことを示すだけで、リモートポートへの接続やプロトコルのハンドシェイク成功を意味するわけではありません。
nslookup v2raypeizhi.com
切断後の自動復旧と安定性
接続直後は正常で、しばらく使った後に切断される場合は、切断時に端末がスリープしていたか、有線から無線へ切り替わったか、スタンバイから復帰したかを記録します。モバイルネットワークの切り替えやPCのスリープによって、既存の接続が無効になることがあります。その場合は、まずリクエストを再送して新しい接続を確立できるか確認してください。新しい接続も繰り返し失敗する場合に、ノードの問題として調査を続けます。既存接続のエラーと、新しい接続を確立できるかどうかを混同しないでください。
クライアントが複数起動していないか、セキュリティソフトがコアのプロセスや待ち受けポートをブロックしていないかも確認します。特定のノードだけが長期間不安定な場合は、元の設定を保存したうえで同じグループ内の他の項目と比較します。すべてのサーバー設定を一括で上書きしないでください。XrayとV2Flyの機能の違いを知りたい場合は、コア選択のメモをご覧ください。コアを変更する際は、プロトコルの互換性を確認してから行ってください。
3. サブスクリプションの更新に失敗する、またはサーバー一覧が空になる
サブスクリプションの更新には、「内容の取得」と「内容の解析およびグループへの登録」という二つの段階があります。エラーが出たら、内容を取得できていないのか、取得後にクライアントが認識できないのかを切り分けます。一覧が空でも、現在のフィルター条件によってサーバーが非表示になっているだけの場合があります。元の設定を保存してから、一つずつ確認してください。既存のサブスクリプションのアドレス、グループ、フィルターをむやみに変更しないでください。
サブスクリプションURLと現在のネットワークを確認する
v2rayNのサブスクリプショングループ設定を開き、URLに余分な空白や改行が入っていないか、途中で切れていないかを確認します。そのグループが有効になっているかも確認してください。サブスクリプションURLにはアクセス認証情報が含まれることが多いため、機密情報として扱います。URL全体を公開スクリーンショットや質問投稿に載せないでください。提供元に問い合わせる場合は、エラーの種類、発生時刻、クライアントだけを伝え、リンク全体は公開しないでください。
更新に失敗したら、まず端末から通常のウェブページにアクセスできることを確認します。次に、サブスクリプショングループの更新方式を見て、リクエストに既存のプロキシが必要か確認してください。初回の追加時に利用可能なノードがない状態で、現在のプロキシに依存する取得経路を指定すると、「更新するには先にノードが必要」という循環が起きることがあります。既存ノードは使えるのにサブスクリプションのリクエストだけが失敗する場合は、直接接続とプロキシ経由の更新をそれぞれ試し、URLに実際にアクセスできる方式を選んでください。
ネットワークエラーと内容のエラーを切り分ける
ログにドメインの名前解決失敗や接続タイムアウトが表示される場合は、URLのドメイン、ネットワーク接続、取得経路を優先して確認します。アクセス拒否や、サブスクリプション形式ではない内容が返されたと表示される場合は、認証と内容の形式について提供元に問い合わせてください。クライアントがウェブページをダウンロードできても、それがインポート可能なノード一覧とは限りません。URLをブラウザーで開いたときにログインページ、案内ページ、エラーページが表示される場合、更新を繰り返しても有効なサーバーは追加されません。
ログに解析失敗が表示された場合、取得した内容を手動でサーバー編集画面に貼り付けないでください。サブスクリプションには通常、複数の設定が含まれており、個別サーバーの項目だけではグループ、フィルター、更新ルールを完全に表現できません。確認済みのURLだけを入力した一時的なサブスクリプショングループを作成し、テストする方法があります。一時グループで正常に更新できる場合は、元のグループの更新方式やフィルター設定を重点的に確認します。原因がわかったら、一時グループを削除し、同じサーバーが重複して残らないようにしてください。
サーバーを追加したのに一覧に表示されない
選択中のサブスクリプショングループ、一覧の検索ボックス、キーワードフィルターを確認します。グループを切り替えると、そのグループの項目だけが表示される場合があります。フィルター語句によって、すべての項目が非表示になることもあります。まず検索条件をクリアし、すべてのサーバーを表示してから、ログや更新結果に項目が登録されたかを確認してください。特にキーワードルールを変更した直後は、一覧が空だからといってサブスクリプション自体が無効だと判断しないでください。
インポートに成功したものの件数が想定と異なる場合は、サブスクリプション提供元が内容を変更していないか確認し、重複排除、フィルター、グループへの割り当てを見直します。異なるサブスクリプションのサーバー名が似ていても、設定が同一とは限りません。複数の配信元を整理する方法はv2rayNの複数サブスクリプショングループ管理をご覧ください。トラブルシューティング中はフィルターをできるだけ少なくし、表示を確認してから一つずつ戻すことをおすすめします。
更新結果を再現できるようにする
更新ボタンを連続してすばやく押すのではなく、「手動で一度更新」した結果を正確に記録します。リクエストが終わる前に更新を再実行すると、ログが入り交じり、どちらが失敗したのか判断しにくくなります。更新の前後でグループ名、サーバー一覧、最後に記録された具体的なエラーを確認します。サブスクリプションが複数ある場合は一つずつ更新し、一つの配信元だけが失敗するのか、すべて失敗するのかを切り分けます。すべて失敗する場合は、端末のネットワークとリクエスト方式を先に調べるとよいでしょう。
古いノードがまだ使える場合は、ネットワーク確認のために残しておき、サブスクリプションの問題を解決する目的で既存サーバーをグループごと削除しないでください。古いノードも同時に使えなくなった場合は、ネットワークの切り替えやシステムプロキシの状態変化がなかったか確認し、「インターネットに接続できない」の章に戻って入口を調べます。サブスクリプションの更新とノードへの接続は別の経路です。更新に失敗しても、保存済みのノードがすぐ使えなくなるとは限りません。ノードに接続できても、サブスクリプションURLにアクセスできるとは限りません。
4. 接続はできるが、ページ表示やダウンロードが遅い
速度の問題は、「最初の表示が遅い」「転送中ずっと遅い」「特定のアプリだけ遅い」に分けて考えます。最初の表示にはDNS、接続確立、セキュリティハンドシェイクが関係することがあります。転送速度にはサーバー負荷、回線、ローカルネットワークも影響します。クライアントの遅延順だけで通信速度を判断したり、ノード変更、DNS変更、TUNの有効化を同時に行って、改善の原因を決めつけたりしないでください。
比較できるテスト条件を整える
同じ端末、同じネットワーク、近い時刻に、元のノードと動作確認済みの別ノードで同じ種類のページにアクセスします。大容量ファイルの転送を停止し、最初の画面が表示されるまでが長いのか、ページのリソース読み込みが続いて遅いのかを確認します。一つのノードだけが遅い場合は、そのノードとリモート側の状態を優先して確認します。すべてのノードが遅い場合は、プロキシを使わない状態で端末の基本ネットワークもテストしてください。基本ネットワーク自体が混雑している場合、クライアント設定を変更しても根本原因は解決しません。
ブラウザーはリソースをキャッシュするため、同じページを繰り返し開いた結果はキャッシュの影響を受けることがあります。比較には複数の一般的なページを選び、正確な速度を一度のテストで測ろうとするのではなく、同じ現象が広く起きるかを確認します。クライアントのログに大量の再試行、ハンドシェイク失敗、接続リセットがないかも見てください。こうした現象は、一つの遅延値よりネットワークの不安定さを判断する材料になります。実際の通信経路を変えないよう、テスト中は元のルーティングモードを維持してください。
ルーティングによる迂回が原因か確認する
本来は直接接続するサービスまで遅くなった場合は、v2rayNのルーティング設定でルールの順序、マッチ条件、出口を確認します。ルールは通常、上から順に照合されます。先にある範囲の広いルールがリクエストを捕捉すると、後のより具体的なルールが適用されないことがあります。ログで遅い接続先を一つ指定し、どのルールに一致したか確認してから調整します。ルール一式を適当に移動して解決を試みないでください。
短時間だけグローバルプロキシに切り替えて比較すると、分割ルーティングの影響を判断する手掛かりになります。ただし、グローバルモードでは本来直接接続する通信も別経路になるため、それだけで特定のルールが誤っているとは言えません。「遅いサイトと正常なサイトがある」場合は、ドメイン、名前解決の結果、ルーティング先をそれぞれ記録してください。ルールを変更したら、元々遅かった接続先と正常だった接続先の両方を再テストし、一方を直した結果、別の通信が誤った経路にならないようにします。
DNSの待ち時間と接続の再試行を確認する
ページが長時間真っ白になった後で一度に表示される場合は、ブラウザーのネットワーク情報とクライアントのログを見て、名前解決や最初の接続確立で止まっていないか確認します。DNSの問題は、完全な接続失敗として現れるとは限りません。到達できないアドレスへの解決、上流からの応答遅延、名前解決とルーティングの不一致も待ち時間を長くします。関連する確認はDNSの章をご覧ください。分割DNSとルーティングの連携については、DNS分割設定のメモをご覧ください。
ログに同じリモートへの再接続が繰り返し記録されている場合は、ノードのタイムアウトの章に従い、トランスポート設定とネットワークの安定性を確認します。再試行による待ち時間をすぐにDNSの問題と決めつけないでください。TUNを使用している場合は、TUNをオフにしてシステムプロキシだけを使った状態とも比較します。TUNを使ったときだけ問題が起きる場合は、すべてのサブスクリプションを変更する前に、TUNの適用範囲と他のローカルネットワークツールとの競合を確認してください。
アプリ、端末、ネットワークの範囲を確認する
一つのアプリだけが遅い場合は、そのアプリ独自のプロキシ設定、古い接続の再利用、独自のDNSやネットワーク高速化設定を確認します。ブラウザーは正常でダウンロードツールだけ遅い場合、異なる入口を使っている可能性があります。ノードの性能を調べる前に、通信経路を確認してください。PCがスリープから復帰した後に一時的に遅くなる場合は、接続を再確立し、ネットワークが安定した状態でテストします。
同じネットワークに接続した複数の端末が遅い場合は、ルーターの負荷、無線信号、ネットワーク事業者の状況を確認します。同じ端末でもネットワークを切り替えるとすぐに回復する場合は、元のネットワークを重点的に確認してください。必要に応じて、「ネットワーク、クライアント、ノード、対象アプリ、ルーティングモード、TUNの有効・無効」を簡単な比較表にまとめます。どの条件を変えたときに結果が変わったかがわかり、元の設定にも戻しやすくなります。
5. DNSの名前解決エラー、汚染、名前解決とルーティングの不一致
DNSはドメイン名を接続に使えるアドレスへ変換し、ルーティングはリクエストの出口を決めます。これは別々の設定です。ブラウザーにサーバーが見つからないと表示される、特定のドメインが時々しか開かない、ドメイン名では失敗するのに既知のアドレスなら接続できる場合は、名前解決の経路を確認してください。上流を変更したりFakeDNSを有効にしたりする前に、「どこで、いつ名前解決し、その結果がどの出口に渡されるのか」を特定します。
サーバーのドメイン名か、接続先サイトのドメイン名かを確認する
ノードへの接続前に、クライアントがサーバーアドレスを名前解決する場合があります。プロキシ接続の確立後に接続先のサイトへアクセスすると、別の名前解決が行われることもあります。ログで失敗したドメインがどの段階のものかは重要です。サーバーのドメイン名の名前解決に失敗すると、そのノードは接続開始時点で利用できません。接続先サイトのドメイン名の名前解決に失敗した場合は、一部のサイトだけ開けないことがあります。ログに明記されたドメインの種類を記録し、どちらも単に「DNSの調子が悪い」とまとめないでください。
OS標準の名前解決コマンドを使って、端末がドメインレコードを取得できるか確認できます。例ではこのサイトのドメインを使っていますが、操作方法を示すだけのものです。名前解決の結果はネットワークや時間によって変わるため、固定設定としてそのまま使わないでください。コマンドが成功しても、クライアントが同じ名前解決サーバーを使っているとは限りません。ブラウザー、OS、クライアント、TUN環境では、名前解決の経路が異なる場合があります。比較する際は、どの入口からコマンドを実行したかを記録してください。
nslookup v2raypeizhi.com
ドメイン名と出口に応じてDNS設定を確認する
v2rayNのDNS設定とルーティング設定を確認し、対象ドメインが直接接続とプロキシ接続のどちらを使うかを特定してから、その経路でどの名前解決方式が使われるかを確認します。直接接続の通信で別のネットワークでしか到達できないアドレスが返された場合や、プロキシ通信でローカルから適切でない名前解決が行われた場合、「ルールは正しく見えるのに接続できない」という状況が起きます。変更前に既存のDNS設定をバックアップしてください。一度に変更するのは、一つの上流または一種類のドメインルールだけにします。
カスタムDNSを設定している場合は、ルールの照合順とデフォルトの上流を確認します。ドメインの個別ルールに一致しないリクエストは、デフォルトの経路に進みます。DoH、従来のDNS、システムの名前解決は用途に応じて組み合わせられますが、追加する上流にも到達可能なネットワーク経路が必要です。上流のドメイン名をさらに解決する必要がある場合は、そのための初期名前解決も考慮してください。設定例と確認手順はV2Ray DNS分割設定の詳しい解説をご覧ください。
FakeDNSを確認するタイミング
FakeDNSはまずドメイン名に仮想アドレスを割り当て、その後、通信のスニッフィングと組み合わせて接続先のドメイン名を関連付けます。端末の通信を取り込みつつ、ルーティングの照合にドメイン名を使いたい場合によく利用されます。「DNSエラーが起きたら有効にする」ための万能な修復機能ではありません。スニッフィングが実際の通信を捕捉できない場合や、名前解決で得た実アドレスをアプリが直接必要とする場合は、有効化によって新たな互換性の問題が起きることがあります。
トラブルシューティングでは、まず元の設定で失敗する接続先を記録し、FakeDNS関連の設定だけを変更して同じアプリを再テストします。この項目の有効・無効によって結果が安定して変わる場合に限り、スニッフィング、仮想アドレスの対応付け、ルーティングルールを確認します。仕組みと制約についてはFakeDNSの仕組みをご覧ください。割り当てられた仮想アドレスをリモートサーバーの実アドレスと誤認したり、それを根拠にサーバー項目のaddressを変更したりしないでください。
キャッシュと一時的な名前解決の違いに対処する
DNSを変更した後も、ブラウザー、OS、アプリが以前の結果をキャッシュしていることがあります。テストするアプリをいったん終了して開き直し、同じネットワークで再テストしてください。必要に応じて、OSが提供するDNSキャッシュの消去機能を使います。キャッシュを消去できるのは古い応答だけで、誤った上流の選択やルーティング出口は修正できません。しばらくすると再発する場合は、キャッシュを何度も消去するのではなく、実際のリクエスト経路を引き続き確認してください。
特定のドメインだけに問題がある場合は、ドメイン名、発生時刻、使用ネットワーク、ルーティングの照合結果、名前解決段階のログを記録します。すべてのドメインで問題がある場合は、まずローカルネットワークとDNS上流への到達性を確認してください。比較中に新しいDoH、FakeDNS、TUNを同時に有効にしないでください。「何を変更したか、結果はどうだったか、元に戻したか」を各手順で記録すれば、どの段階が問題を解決したか確認できます。
6. システムプロキシを有効にしてもアプリがプロキシを使わない
システムプロキシは、アプリが参照するためにOSが提供するプロキシ設定であり、すべての通信を強制的に取り込むスイッチではありません。v2rayNではシステムプロキシを設定できるほか、TUNを使ってより多くの通信を取り込むこともできますが、対象範囲は異なります。まずアプリがシステムプロキシを参照するか確認し、次にプロキシアドレスがクライアントの実際の待ち受け入口と一致するかを調べます。TUNが必要かどうかを判断するのはその後です。
設定がOSに反映されているか確認する
v2rayNで「システムプロキシ」の現在の選択状態を確認し、無効になっていないことを確かめます。切り替えた後は、テストするアプリを再起動してください。古いプロキシ設定や既存の長時間接続を使い続けるのを防げます。Windowsのシステムプロキシ画面でも、設定が反映されているか確認できます。古いアドレスやポートが表示される場合は、システムプロキシを変更する他のツールが同時に動作していないか確認してから、v2rayNで設定し直してください。
アプリによっては独自のプロキシ設定があり、アプリ内の設定が優先されたり、「プロキシを使用しない」が明示的に選ばれていたりします。アプリの設定で「システムプロキシを使用」「自動検出」「手動プロキシ」などの項目を確認してください。OSの設定に従うと決めつけないでください。ブラウザーは使えるのにコマンドラインツールが使えないのは、入口が異なるよくある例です。システムプロキシのスイッチだけで判断せず、そのツールのプロキシ方式に沿って対処してください。
システムプロキシ、ルーティング、TUNを区別する
システムプロキシは、システム設定に従うアプリが通信をクライアントへ送るかどうかを決めます。ルーティングは、クライアントに届いたリクエストの出口を決めます。ログに対象アプリのリクエストがまったくない場合、ルーティングルールを変更しても通常は解決しません。まず「リクエストがクライアントに届くか」を解決し、その後「届いたリクエストがどこへ向かうか」を確認します。逆に、リクエストがログにあり、誤った出口に一致している場合は、システムプロキシのオン・オフを繰り返さず、ルーティングを確認してください。
TUNは、通常のシステムプロキシに従わない通信を処理する場合に適しています。ただし、起動にはシステム権限、仮想ネットワークインターフェース、他のネットワークソフトとの互換性が関係することがあります。まずシステムプロキシだけを有効にして再現可能なテストを行い、その後TUNを有効にして結果を比較してください。TUNを有効にした途端にインターネットへ接続できなくなった場合は、すぐに無効にし、クライアントのログ、権限、ローカルの他の仮想ネットワークアダプターを確認します。同じルートを取り込むツールを複数同時に有効にしないでください。
プラットフォーム別にプロキシの入口を確認する
デスクトップでは主にv2rayNを使いますが、システムプロキシに従うかどうかはOSやアプリによって異なります。確認時は同じアプリで設定の変更前後を比較し、クライアントのログにそのアプリのリクエストが表示されるか確認します。以下の表は確認の方向性を示すもので、すべてのアプリが同じ方法でプロキシを使うという意味ではありません。実際の動作はアプリの設定とログに基づいて判断してください。
| 環境 | 優先して確認する項目 | 追加の確認方法 |
|---|---|---|
| Windows · v2rayN | システムプロキシの状態、アプリ独自のプロキシ | クライアントのログにアプリのリクエストが表示されるか |
| macOS · v2rayN | 現在のネットワークサービスのプロキシ設定 | ネットワーク切り替え後に設定を再確認 |
| Linux · v2rayN | デスクトップ環境とアプリそれぞれのプロキシ設定 | アプリが該当の設定を参照しているか比較 |
| Android · v2rayNG / v2flyNG | 接続状態、VPNの許可 | アプリを前面に表示した状態でリクエストが戻るか確認 |
古い設定を消去して再テスト
クライアントが異常終了した後も、OSにローカルプロキシポートを指す設定が残ることがあります。その場合、すでに待ち受けていない入口へアプリが通信を送るため、クライアントを閉じた後にウェブページも開けなくなることがあります。v2rayNを再起動してシステムプロキシを正しく無効にするか、OSのネットワーク設定で古いプロキシを確認して削除し、直接接続が復旧するか確認します。プロキシアドレスがまだ有効な状態で、設定フォルダーを安易に削除しないでください。
ネットワークの切り替え、スリープからの復帰、別のネットワークツールの起動後に問題が再発する場合は、どの操作でシステムプロキシ設定が変わるか記録します。最後に、直接接続、システムプロキシ、対象アプリをそれぞれテストします。直接接続は正常か、クライアントにリクエストが届くか、ルーティングの出口は想定どおりかを確認してください。この順で得られる三つの結果は、「プロキシを有効にしても使えない」という説明より、次に確認すべき箇所を正確に示します。
7. クライアントが起動しない、クラッシュする、コアの起動に失敗する
画面が開かない場合と、画面は開くもののコアが起動しない場合は、別の問題です。まず、どの段階で失敗するか確認します。ダブルクリックしてもウィンドウが表示されない、ウィンドウが開いてすぐ終了する、設定をインポートした後に終了する、接続をクリックしたときにコアエラーが出る、といった状況を区別してください。ログと現在の設定を保存してから、インストール環境や設定エラーを調べます。最初にすべてのユーザーデータを削除して再インストールしないでください。
インストーラーと実行環境を確認する
OSとプロセッサーアーキテクチャに合ったクライアントがインストールされているか確認します。デスクトップでは主にv2rayNを使用します。WindowsユーザーはダウンロードセンターのWindows欄でデスクトップ版と従来のWPF版を確認してください。macOSとLinuxでは、それぞれのプラットフォームに合ったものを選びます。通常の読み書き権限がある場所にアプリを置き、アクセス制限のある場所や読み取り専用の場所から直接実行しないでください。ダウンロードが完了する前にファイルを開くことも避けてください。
更新後に起動できなくなった場合は、更新前後の操作、インストール形式、エラー内容を記録し、古いプロセスが残っていないか確認します。複数のインスタンスを起動すると、待ち受けポートが競合することがあります。OSのタスク管理ツールで応答しなくなった古いインスタンスを終了してから、単独で一度起動してください。再インストールする前に、サブスクリプショングループと自分で編集した設定を保存します。「プログラムの起動失敗」を「設定の消失」にしないためです。
画面は正常だがコアでエラーが発生する
v2rayNのログを開き、設定の解析、ポートの待ち受け、コアの起動に関する最初の具体的なエラーを確認します。ポート競合の場合は、別のクライアントインスタンスやローカルソフトが該当する入口を使用していないか調べます。設定の解析エラーの場合は、直近で変更したサーバー項目、ルーティング、DNS設定を見直してください。末尾の「起動に失敗しました」だけをコピーしないでください。通常は、その前に記録された具体的なエラーが原因です。
手動で変更していない別のサーバーを一時的に選び、最近追加したカスタムルールを無効にして再テストできます。この状態で起動できる場合は、設定を一つずつ戻して、エラーの原因を特定します。別のコアを使う場合は、選択したプロトコルとパラメーターが現在のコアでサポートされていることも確認してください。XrayとV2Flyですべての機能が対応しているわけではありません。詳しくはXrayとV2Flyのコアの違いをご覧ください。
権限、セキュリティソフト、設定ファイルの破損を確認する
ログにファイルの読み書きエラーが表示される場合は、プログラムと設定の保存先のアクセス権、ディスクの空き容量を確認します。セキュリティソフトのブロック通知がある場合は、対象のファイル、操作、時刻を確認し、今回の起動失敗に関係するか判断してください。トラブルシューティングのためにシステム保護を長期間無効にしないでください。インストール先を変更する場合は、サブスクリプション情報とカスタム設定をバックアップしてから、対象プラットフォーム用のインストーラーで再セットアップします。
既存の設定を読み込むときだけプログラムが終了する場合は、完全なバックアップを残したうえで、初期状態の設定で画面が開くかテストできます。初期設定で起動できるなら、元の設定または参照ファイルに問題がある可能性が高くなります。それでも起動できない場合は、インストール環境とシステムログを重点的に確認してください。サブスクリプションURLを含む設定ファイルを、そのまま公開アップロードしないでください。問い合わせる際は、機密項目を伏せたエラー情報だけを共有します。
再現可能な復旧手順を組み立てる
まず画面が安定して開くことを確認し、次にコアが起動することを確認します。その後、根拠のあるサーバー設定を一つインポートし、最後にサブスクリプション、ルーティング、DNSのカスタム設定を戻します。一つ追加するたびに起動してログを確認すれば、どの段階で問題が再発したかを特定できます。古い設定を一度にすべて戻して問題が起きた場合、原因の箇所がわかりません。設定を戻す順序自体が診断の手順になります。
解決後は、システムプロキシが現在起動中のクライアントを指しているか、プログラム終了後にシステムプロキシが正常に無効になるかも確認します。クラッシュとプロキシ設定の残存は続けて発生することがありますが、別々に対処してください。前者はプログラムと設定、後者はOSのプロキシ状態を確認します。よくあるインストールの疑問はヘルプセンターをご覧ください。最初から設定する場合は、ガイドに沿って進めてください。
8. Androidでの接続、バックグラウンド動作、アプリごとの通信設定
Androidでは、まずv2rayNGを確認します。V2Flyコアに対応するクライアントが必要な場合はv2flyNGを選べます。どちらもダウンロードセンターのAndroid欄で端末のアーキテクチャに合った入手方法を選んでください。デスクトップの「システムプロキシを設定する」手順をそのままスマートフォンに適用することはできません。Androidのクライアントは主に、システムのVPN許可を使って端末内の通信入口を確立します。また、バックグラウンド制限やアプリごとの通信設定も影響します。
接続ボタンを押したら、まずVPNの許可を確認する
クライアントでサーバーを選択して接続を開始し、システムからVPN接続の要求が表示されるか確認します。初回使用時、再インストール後、権限変更後などは、もう一度許可が必要な場合があります。接続中と表示されてもシステム上のVPN状態が安定しない場合は、許可の手順が完了しているか、別のVPNサービスが入口を使用していないかを確認します。同種のサービス間で何度もすばやく切り替えず、まず一方を停止してからテストしてください。
接続中と表示されているのに、すべてのアプリからアクセスできない場合は、クライアントのログでサーバーアドレス、ポート、トランスポート設定を確認し、動作確認済みの別サーバーと比較します。Wi-Fiからモバイルネットワークへ切り替えた後は、既存の接続が切れることがあります。リクエストを再送して復旧するか確認してください。同じ設定が一つのネットワークでだけ失敗する場合は、そのネットワークの条件を重点的に記録します。スマートフォン内のサーバーをすべて削除するのは避けてください。
一部のアプリだけ接続できない
クライアントのアプリ別プロキシ設定やプロキシ除外設定を確認し、問題のアプリが除外されていないか調べます。次に、そのアプリがバックグラウンド時だけ接続できないのか、前面に表示していても接続できないのかを確認します。前面でも失敗する場合は、アプリごとの通信設定やアプリ自体のネットワーク設定を重点的に調べます。バックグラウンド時だけ失敗する場合は、OSによるバックグラウンド動作の制限も確認してください。プロキシ切り替え前の古い接続をアプリが保持していることもあるため、アプリを完全に終了して開き直してから比較します。
ブラウザーは使えるのに特定のアプリが使えない場合、すぐにノードの故障と判断しないでください。同じノードとネットワークを維持し、二つのアプリをそれぞれテストして、クライアントのログにリクエストが届いているか確認します。リクエスト記録がない場合は、アプリ別の通信設定、VPNによる取り込み、システム権限を確認してください。リクエストがあり、異なる出口に一致している場合はルーティング設定を確認します。アプリ独自の名前解決方式が影響することもあります。必要に応じて、このページのDNSの章も参照してください。
画面ロック時やバックグラウンド移行後に切断される
スマートフォンのOSが、バックグラウンド動作や省電力状態でのネットワーク接続を制限することがあります。まず、クライアントを前面に表示した状態で安定して使えるかテストし、その後しばらく画面をロックして再確認します。バックグラウンド時だけ問題が起きる場合は、クライアントに対するバッテリー管理、バックグラウンド実行、通知の権限を確認してください。端末によってメニュー名は異なるため、他社製端末の設定手順をそのまま使わず、実際の画面から探してください。
バックグラウンド実行を許可していても、Wi-Fiとモバイルデータの切り替え時には接続を再確立する必要がある場合があります。切断したときにネットワークが切り替わったか、省電力モードが有効だったか、クライアントが動作中と表示されていたかを記録します。システム設定を一つだけ変更して再テストし、バックグラウンド接続を維持するために無関係な制限まで一度に無効にしないでください。復旧後は、日常使用でのバッテリー消費が許容範囲かも確認します。
サブスクリプションと2種類のクライアントの設定差
Androidでサブスクリプションの更新に失敗する場合も、内容の取得失敗、解析失敗、一覧のフィルターによる非表示を切り分けます。URLをコピーする際に空白や改行が入らないようにし、公開スクリーンショットにURL全体を表示しないでください。v2rayNGで特定のコア機能に依存する設定を使っている場合、v2flyNGにインポートしても同じように動作するとは限りません。実際のプロトコルパラメーターとクライアントのログに基づいて互換性を判断してください。
トラブルシューティングの最後に、選択中のサーバー、VPNの状態、アプリごとの通信設定、バックグラウンド権限、現在のネットワークを確認し、最終的に有効な設定を一つずつ記録します。デスクトップとスマートフォンで同じサブスクリプションを使っていて結果が異なる場合は、サブスクリプションの配信元をすぐ変更せず、それぞれのネットワークとコアの機能を比較してください。3種類のクライアントの対応プラットフォームと用途についてはクライアントの比較をご覧ください。基本的なインポート手順はガイドから始められます。