v2rayN よくある質問とトラブル対応
症状から設定のどの層に問題があるかを切り分けます。サブスクリプションのインポート、ノード接続、システムプロキシ、TUN 権限を取り上げ、順番に実行できる確認手順を示します。
基礎知識
クライアント、サブスクリプション、ノード、通信の取り込み方式をまず整理しましょう。用語を混同すると、その後の切り分けが誤った層に進んでしまいます。
v2rayN、v2rayNG、v2flyNG はどう選ぶ?
Windows、macOS、Linux のデスクトップ環境では v2rayN を使用します。Android 端末では Xray カーネルを採用した v2rayNG を優先し、V2Fly カーネルが必要な場合は v2flyNG を選択できます。3つは画面や設定項目が異なりますが、サブスクリプション URL は通常そのまま利用できます。クライアントを切り替える前に、現在のルーティングモード、DNS 設定、サブスクリプショングループを記録し、ノードだけをインポートして実行パラメーターを取りこぼさないようにしましょう。
サブスクリプション、ノード、設定ファイルの違いは?
サブスクリプションは更新可能なサーバー設定への入口、ノードはその中の個別の接続情報、設定ファイルはインバウンド、アウトバウンド、ルーティング、DNS など実行に必要なパラメーター全体を含むファイルです。通常はサブスクリプションをインポートし、生成されたノード一覧から使用するノードを選びます。手動設定は個別パラメーターの調整に適しており、サブスクリプショングループの自動更新項目と混在させて編集しないでください。
システムプロキシモードと TUN モードの違いは?
システムプロキシモードは OS のプロキシ設定を変更し、システムプロキシに従うブラウザーやアプリを主に経由させます。TUN モードは仮想ネットワークインターフェースを通じて、より広範囲の通信を処理します。まずシステムプロキシでノードとサブスクリプションが正常か確認し、アプリとの互換性に応じて TUN の有効化を判断してください。接続失敗時に両方を同時に切り替えると要因が増えるため、何度も重ねて変更するのは避けましょう。
REALITY ノードでパラメーターの一致が重視される理由は?
REALITY の設定では、プロトコル、セキュリティ層、トランスポート方式、サーバー名、公開鍵、shortId、flow をサーバー側と一致させる必要があります。サブスクリプション変換で項目が書き換えられたり、切り詰められたり、欠落したりすると、ハンドシェイクに失敗することがあります。問題が起きたら、まず元の設定とこれらの項目を照合し、次に端末の時刻を確認してください。アドレスとポートだけを置き換えて、古いパラメーターをそのまま使わないようにしましょう。
インストールと設定
インストールパッケージのアーキテクチャ、サブスクリプションの応答、システム権限は、初回設定で特に問題になりやすい3つの要因です。
サブスクリプション URL を貼り付けてもノードが1件もインポートされない場合は?
まずクライアントのサブスクリプショングループで、URL の前後に空白がないことと、グループが有効になっていることを確認します。次に更新を実行し、ログの HTTP ステータス、解析エラー、証明書に関するメッセージを確認してください。ブラウザーで URL を開いたときにログイン画面、エラーページ、通常の Web ページが表示される場合、クライアントはサブスクリプションとして認識できません。URL にアクセスできることを確認したら、現在のクライアントがその形式に対応しているか確認します。
サブスクリプションの更新に失敗しても古いノードが残っている場合は?
古いノードが残っているのは、前回の更新結果がローカルに保存されているだけで、現在もサブスクリプションが利用できることを意味しません。まずログのレスポンス状態と失敗時刻を記録し、サブスクリプションの有効期限、端末の時刻、システムプロキシ、DNS を確認します。特定のグループだけ失敗する場合は、そのグループを個別に編集して URL を保存し直してください。すべてのグループが同時に失敗する場合は、ネットワーク環境とクライアントのプロキシ経路を優先的に確認します。
Android のインストールパッケージは arm64 と universal のどちらを選ぶ?
2015年以降に発売された主流の Android スマートフォンは通常 arm64 を採用しているため、まず arm64 パッケージを選ぶとよいでしょう。ファイルサイズも抑えられます。CPU アーキテクチャを確認できない場合、古い端末の場合、または arm64 のインストールに失敗した場合は universal パッケージを使用してください。主な機能は同じで、違いは対応する CPU アーキテクチャの範囲です。サブスクリプションのプロトコルに応じてパッケージを変更する必要はありません。
TUN を有効にすると権限不足や仮想インターフェースの作成失敗になる場合は?
まずクライアントを完全に終了し、使用中のプラットフォームの要件に従ってネットワーク拡張、管理者権限、仮想インターフェースの権限を付与してから再起動します。システムに他の仮想ネットワークツールがある場合は、インターフェース、ルーティングテーブル、DNS の競合を避けるため、先に終了してください。権限を付与しても失敗する場合は、一時的に TUN を無効にし、システムプロキシでノードが正常か確認します。その後、ログのインターフェース名と権限メッセージを手がかりに切り分けます。
使い方のコツ
まず検証可能な最小構成で接続を確立し、その後、ルールによる振り分け、DNS、より広範囲の通信取り込みを段階的に追加します。
サブスクリプションをインポートした後、デフォルトのノードを選ぶには?
サブスクリプションを更新し、ノードの所属グループを確認してから、実際の接続テストを行います。遅延テストはテスト先とその時点のネットワーク状態を示すだけで、完全な利用可否を単独で判断するものではありません。ノードを選択してアクティブサーバーに設定し、システムプロキシを有効にして、普段使うサイトにアクセスします。グループが多い場合は用途が分かる名前を付け、更新後に期限切れやテスト用ノードを誤選択しないようにしましょう。
グローバル、ルール、ダイレクト接続モードの使い分けは?
グローバルモードは、対象範囲内のリクエストを現在のプロキシ経由に統一するため、ノードの動作確認に適しています。ルールモードはドメイン、IP、ルールセットに応じてプロキシ経由かダイレクト接続かを決めるため、日常利用に向いています。ダイレクト接続モードは一時的にプロキシを迂回するときに使います。接続問題を切り分ける際は、まずグローバルモードでルール要因を減らし、ノードを確認してからルールモードに戻してヒットログを確認してください。
ノードを編集した後、アクティブサーバーに再設定する必要があるのはなぜ?
一部のクライアントは編集結果をノード一覧に保存しますが、実行中のカーネルは起動時に生成された設定を使い続けます。アドレス、ポート、プロトコルパラメーター、flow を変更した後は、そのノードを選び直してください。必要に応じて接続を停止して再起動し、実行設定を再生成します。ログの起動時刻とアウトバウンド名から、新しい設定が読み込まれたか確認できます。
DNS 設定はどこから調整すればよい?
ノードには接続できるのにドメインへのアクセスに問題がある場合、DNS を独立した要因として確認します。まずクライアントのデフォルト設定を維持し、ドメインと既知の IP へのアクセス結果を個別にテストしてください。ドメインだけ失敗する場合は、DNS クエリログ、システム DNS、TUN による DNS の処理状態を確認します。複数の DNS サーバー、ルーティングルール、FakeDNS 設定を同時に変更すると、原因を特定しにくくなります。
トラブル対応
接続問題は通常、ネットワーク到達性、プロトコルのハンドシェイク、通信の取り込み、DNS、ローカルポートの5つの層に分けて確認できます。
ノードテストがタイムアウトした場合、どの順番で確認する?
まずシステムの日付、時刻、タイムゾーンを合わせ、サブスクリプションを更新してノードの有効期限を確認します。次にサーバーアドレスとポートへ接続できるか、端末のファイアウォールが遮断していないか、プロトコルパラメーターが揃っているかを確認してください。最後に追加のルーティングルールを無効にし、単一ノードとシステムプロキシで再試行します。ログが接続段階で止まる場合はネットワークまたはポート、ハンドシェイク段階で止まる場合はセキュリティ層のパラメーターが主な原因です。
クライアントは接続済みなのに Web ページを開けない場合は?
まずアクティブノードが現在のカーネルに実際に読み込まれていることを確認し、次にシステムプロキシが有効か、ブラウザーがシステム設定を使用しているかを確認します。その後、ドメインと IP を個別にテストして DNS の問題か判断します。一部のサイトだけ失敗する場合はルーティングのヒット結果を確認してください。すべてのリクエストが失敗する場合は、一時的にグローバルモードへ切り替え、TUN を無効にして再試行します。毎回1つの設定だけを変更すると、ログから問題の層を判断しやすくなります。
システムプロキシを有効にしてもアプリが直接接続するのはなぜ?
アプリによっては独自のプロキシ設定を使うか、OS のプロキシ設定を読み取らないため、システムプロキシを有効にしても直接接続することがあります。まずアプリ内にプロキシ項目がないか確認し、プロキシを使用しない設定に固定されていないか確認してください。また、システムプロキシのアドレスとポートが、クライアントの現在の待受ポートと一致しているか確認します。システムプロキシに従わない通信を取り込む必要がある場合は、通常の接続が正常なことを確認してから TUN モードを検討します。
ログにポート使用中と表示された場合は?
ポート使用中とは、クライアントが待ち受けようとしているローカル HTTP、SOCKS、API ポートを別のプロセスが使用している状態です。まず重複起動したクライアントや他のプロキシツールを終了し、再接続してください。それでも競合する場合は、設定で未使用のローカルポートに変更し、ブラウザーやシステムプロキシ側のポートも合わせて確認します。変更後はカーネルを再起動し、ログに新しい待受アドレスが表示されることを確認してください。
確認の手順
入力内容を確認し、次に接続、最後に通信の取り込み範囲を確認します。順序を固定することで、ログを比較しやすくなります。
-
01
端末環境を確認
システム時刻、タイムゾーン、ネットワーク接続、クライアントの実行権限を確認します。重複しているプロセスを完全に終了し、ルーティングテーブルを変更したりローカルポートを使用したりする他のネットワークツールを一時的に停止します。
-
02
サブスクリプションを更新
サブスクリプション URL、グループの状態、更新時刻を確認します。更新後はノードの項目が揃っていること、特にプロトコル、セキュリティ層、トランスポート方式、サーバー名、公開鍵、flow を確認してください。
-
03
最小構成で接続
単一ノードを選び、システムプロキシとグローバルモードでテストします。複雑なルーティング、追加の DNS 設定、TUN はまだ有効にせず、接続経路を確認しやすい状態に保ちます。
-
04
ログから問題の層を特定
接続段階で失敗する場合はアドレス、ポート、ネットワークを確認します。ハンドシェイク段階で失敗する場合はプロトコルパラメーターを確認します。接続成功後にドメインだけ失敗する場合は DNS、特定のアプリだけ異常な場合はプロキシの取り込み方式を確認してください。
-
05
機能を1つずつ戻す
基本接続が安定したら、ルールモード、カスタム DNS、TUN を順番に戻します。機能を1つ戻すたびに同じアクセスをテストし、その時間帯のログを保存してください。