2026年9月27日 · トラブル対処 · 約12分

V2Rayが遅いときの原因と対処法|ノード・回線・設定を順に確認

V2Rayの速度低下をノード負荷、回線混雑、ローカル設定に分けて確認。DNS、スニッフィング、MTU、ルーティングの見直し方を解説します。

この記事の概要

ノードには接続できるものの、ページの初回表示が遅い、ダウンロードが遅い、夜間に通信が不安定になる方に向けた内容です。まずテスト条件を固定し、ノードと接続ネットワークを入れ替えて比較します。その後、DNS、ルーティング、スニッフィング、TUNのMTUを確認します。変更は一度に一つだけにし、同じ接続先で再測定しましょう。回線の混雑をクライアント設定の問題と誤認しにくくなります。

1. 初回表示の遅さ・継続的な低速・接続失敗を切り分ける

レイテンシが低くても、ダウンロードが速いとは限りません。ノード一覧の遅延テストで分かるのは、特定の方法で測った応答時間です。実際の通信速度は、サーバー負荷、事業者間の経路、接続先による速度制限、ローカル回線にも左右されます。まず遅くなる段階を特定してから、設定を見直しましょう。

アプリのリクエスト ローカルの入口 ルーティング判定 ノードへの接続 接続先からの応答
症状まず確認する項目比較方法
初回表示に数秒かかるが、その後は正常名前解決、ハンドシェイク、接続の再利用同じアドレスに続けて3回アクセスし、最初の応答までの時間を比較
接続はすぐ確立するが、ダウンロードがずっと遅いノード負荷、回線帯域、接続先の速度制限同じファイルを2つのノードでそれぞれダウンロード
夜は遅く、昼は回復する共有帯域または経路の混雑09:00と21:00にそれぞれ3回測定
小さなページは表示できるが、大きなファイルは止まるパケットロス、MTU、転送の中断通常のプロキシとTUNを比較し、通信が途切れた時刻を記録
特定のアプリだけ遅いアプリのプロキシ接続、個別のDNS、QUIC明示的なプロキシを指定するコマンドで、同じ接続先をテスト

v2rayNはクライアントを管理するインターフェースで、実際に接続を処理するのは選択したコアです。Project V、V2Fly、Xrayは関連プロジェクトですが、名称を性能の優劣と混同しないでください。VMessやVLESSなどのプロトコルも速度ランクを示すものではありません。速度の差は、プロトコル名よりノードの場所、トランスポートの組み合わせ、サーバーのリソースで説明できることが多くあります。

2. 再現可能なローカルテストの基準を作る

ノード、接続先、接続ネットワーク、プロキシの入口を固定します。ここではWindows版v2rayNで、127.0.0.1:10808をリッスンする混合プロキシポートを使う例を紹介します。10808は例示値です。実行前に設定画面とコアの起動ログで実際の値を確認してください。古い記事にある10809をそのまま使わないようにしましょう。

  1. 環境を記録する

    「ヘルプ」→「バージョン情報」を開き、クライアントの完全なバージョンを記録します。次に、起動ログでコアの名称とバージョンを確認します。現在のノード、ルーティングモード、TUNの状態も控えておき、以降はアップデートとルール変更を同時に行わないでください。

  2. プロキシの入口を確認する

    「設定」→「パラメーター設定」を開き、ローカルのリッスンポートを確認します。メニューの構成はバージョンによって異なるため、起動ログも参照してください。まずTUNを無効にし、明示的なHTTPプロキシで基準値を測定します。2種類の入口を混在させないようにしましょう。

  3. テスト条件を固定する

    サブスクリプションの一括速度測定、クラウドストレージの同期、ほかのダウンロードを停止します。安定してアクセスできるHTTPSアドレスを選び、同じノードを使って以下のコマンドを3回続けて実行します。最速値ではなく中央値を採用してください。

  4. 結果を記録する

    測定時刻、接続先、接続時間、最初の応答までの時間、エラーの原文を記録します。設定を一つ変更したら、もう一度3回測定してください。安定した改善が見られなければ元に戻し、基準から設定がずれていかないようにします。

curl.exe --proxy http://127.0.0.1:10808 --connect-timeout 10 --max-time 30 -o NUL -sS -w "connect=%{time_connect}s tls=%{time_appconnect}s first=%{time_starttransfer}s total=%{time_total}s\n" https://example.com/

ここでのexample.comは、時間を計測するコマンドの例にすぎず、帯域を測る用途には適しません。ローカルのHTTPプロキシ経由でHTTPSに接続する場合、time_connectが主に示すのはローカルプロキシへの接続時間であり、遠隔ノードへの遅延ではありません。TLS接続や最初の応答までの時間には、プロキシ経由の経路や接続先の処理時間も含まれます。通信速度を測るには、アクセス権のある一定サイズのファイルを使い、エラーページが返されていないことも確認してください。

3. ノード負荷と回線混雑を比較テストで切り分ける

1回の速度測定だけでは、ノードの混雑と経路の混雑を区別できません。「同じネットワークでノードを変更」と「同じノードでネットワークを変更」の比較が特に有効です。接続先は変えず、できるだけ近い時間帯に測定して、接続先自体の負荷変動による影響を避けましょう。

比較結果可能性が高い原因次の手順
同じネットワークで、ノードAだけ遅いノードAのサーバーリソースまたは専用経路ノードBに切り替え、ノードAの時間帯別の測定結果も保存する
同じノードでも、別のネットワークでは明らかに速い元の接続ネットワークまたは通信事業者の経路まず有線接続で再測定し、Wi-Fiの干渉を除外する
2つのノードが、同じ接続先に対してだけ遅い接続先、出口の相互接続、CDNの割り当て別の独立した接続先も加えて比較する
複数の接続先が夜間にそろって遅い共有回線またはローカル帯域の競合ローカルの帯域使用状況を確認し、混雑していない時間帯のデータと比較する

たとえば、測定記録の例として、同じファイルをノードAで測ると昼は8 MB/s、夜は0.8 MB/sになり、同じ時間帯にノードBでは6 MB/sを維持していたとします。この結果から問題をノードAのリソースまたは経路に絞り込めますが、サーバーのCPU使用率が上限に達したとは断定できません。サーバー負荷の確認には、サーバー側のCPU、帯域、接続数、速度制限の情報が必要です。数値は判断方法を示す例であり、本サイトでの実測値ではありません。

4. DNSとルーティング:リクエストの経路を確認する

DNSは主に、名前解決の待ち時間、接続先IPの選択、IPベースのルール判定に影響します。ノードの帯域を増やす機能ではありません。ノードのドメインを誰が解決するのか、接続先のドメインを誰が解決するのか、ルール判定のために名前解決が実行されているのかを切り分けましょう。ブラウザーのセキュアDNS設定は、システムやコアのDNS経路と異なる場合もあります。

以下はルールの順序を説明するための、V2Ray/Xray形式のroutingの抜粋です。完全な設定ではありません。まずプライベートアドレスをdirectに送り、その後、残りのTCP・UDPリクエストをproxyに送ります。使用前に同名のアウトバウンドが存在し、geoipデータが用意されていることを確認してください。v2rayNでは先にバックアップを取り、画面から生成されたルールと重複して追加されないようにします。

{
  "routing": {
    "domainStrategy": "AsIs",
    "rules": [
      {
        "type": "field",
        "ip": ["geoip:private"],
        "outboundTag": "direct"
      },
      {
        "type": "field",
        "network": "tcp,udp",
        "outboundTag": "proxy"
      }
    ]
  }
}

AsIsは、ルーティング段階でドメイン名を積極的にIPアドレスへ解決して照合しないことを示します。そのため、ドメイン名のリクエストはIP条件に一致しない場合がありますが、最終的な接続には名前解決が必要になることがあります。「DNSを無効にする」という意味ではありません。IPIfNonMatchやIPOnDemandでは名前解決を行うタイミングが異なるため、実際のコアとルールに合わせて理解してください。各フィールドの詳細はJSON設定ガイドを参照してください。

5. スニッフィングとMTU:症状に合う場合だけ調整する

スニッフィングは、通信からドメイン名やプロトコルを判別し、ルーティングを補助する機能です。汎用的な高速化スイッチではありません。有効にするとドメインルールの判定結果が変わることがあり、無効にするとドメインベースの振り分けが機能しなくなる場合があります。同じノードと接続先で比較し、アウトバウンドの変化も確認してください。たまたま一度ページが速く表示されたかどうかだけで判断しないようにしましょう。

設定項目確認が必要な症状調整時の注意点
スニッフィングドメインルールに一致せず、設定を切り替えると経路が変わるログを比較する。ドメインの判別はHTTPSの内容を復号することではない
TUN MTUTUNで大きなレスポンスが止まるが、通常のプロキシでは正常現在の値を記録し、1500、1400、1380の順に比較する
UDPとQUIC同じサイトでブラウザーは異常だが、コマンドラインは正常アプリの経路とノードのUDP対応を確認し、まず全体設定は変更しない
接続の再利用小さなリクエストが多い場合と、長時間のダウンロードで挙動が異なるプロトコルとコアの対応状況を確認する。並列数を増やしても速くなるとは限らない

MTUは、インターフェースが一度に送信できる最大データ単位です。経路MTUの検出が妨げられると、ハンドシェイクは成功しても大きなデータの転送が止まることがあります。TUNモードでのみ再現する場合は、実際にTUNのMTU項目がある設定画面または設定ファイルで、1500から1400に一時変更し、続けて1380でも比較できます。これらは問題の切り分けに使う候補値であり、最適値を保証するものではありません。テストのためにすべての物理ネットワークアダプターを変更しないでください。

6. 実際のログで原因を切り分け、エラーをすべて低速のせいにしない

まずエラーが発生した時刻を記録し、該当する接続の接続先、アウトバウンド、前後のログを確認します。ログの接頭辞や周辺情報はコアによって異なります。以下はよくあるエラーの一部です。これらは調査範囲の手がかりであり、発生箇所を確認せずに原因を断定することはできません。一時的にログレベルを上げる場合は、一度再現したら通常のレベルに戻し、ログの書き込みが継続して調査に影響しないようにしてください。

エラー:connection refused

原因:接続先のポートが接続を拒否しています。接続先が127.0.0.1の場合は、まずローカルのコアが起動しているか、ポート番号が一致しているかを確認します。

対処:エラーに記録された実際のアドレスを確認します。ローカルの問題ならリッスン設定を、遠隔の問題ならノードのポートとサーバーの稼働状態を確認してください。

エラー:i/o timeout

原因:ネットワーク処理のどこかでタイムアウトしています。ノードへの接続、DNS、データの読み取り中などで起きる可能性があり、ノードの速度制限とは限りません。

対処:同じログに記録された接続先と処理内容を確認し、同じノードでネットワークを変えるテストと、同じネットワークでノードを変えるテストを行います。

エラー:no such host

原因:使用中の名前解決経路で、有効なドメイン名の結果を取得できていません。スペル、DNSサービス、ドメイン自体に問題がある可能性があります。

対処:エラーに表示されたドメインがノードのものか接続先サイトのものかを確認し、該当するDNS経路を調べます。変更後はコアを再起動して再テストしてください。

エラー:tls: handshake timeout

原因:TLSハンドシェイクが制限時間内に完了していません。パケットロス、サーバーの混雑、接続先の誤りなどが考えられます。

対処:ノードのアドレス、ポート、サーバー名、トランスポート設定を確認し、別のネットワークでも比較してください。速度の問題を解決するために証明書の検証を無効にしないでください。

7. よくある質問とトラブルシューティングの完了条件

レイテンシは50ミリ秒なのに、ダウンロードが1 MB/sしか出ないのはなぜ?

レイテンシが示すのは応答までの時間です。実際の転送速度は帯域、パケットロス、速度制限にも左右されます。同じサイズのファイルを2つのノードで比較し、続いて別の接続先でも試してください。特定の接続先だけが遅い場合は、DNSを繰り返し変更せず、接続先サイトや出口の相互接続を優先して確認します。

全体モードに切り替えると速くなります。このまま使い続けてもよいですか?

ルーティングの経路を確認する必要があるという手がかりであり、全体モードのほうが常に速いとは限りません。v2rayNのメイン画面で切り替え前後のルーティングモードを記録し、遅いリクエストのアウトバウンドタグを確認してください。誤判定のルールを修正したら通常の振り分けに戻し、ローカルのリクエストまで遠隔経由にならないようにします。

パソコンでは正常なのに、Androidで同じノードが遅い場合は?

まず両方の端末を同じネットワークに接続し、同じ接続先を使い、ほかのダウンロードを一時停止します。v2rayNGはXrayコアを、v2flyNGはV2Flyコアを使用します。それぞれのバージョン、ルーティング、DNS設定を記録してください。同じサブスクリプションを読み込んでも、実行時の設定がすべて一致するとは限りません。

クライアントをアップデートすれば、速度の問題はすべて解決しますか?

アップデートで特定の互換性問題が解消することはありますが、混雑した回線の容量が増えるわけではありません。まず現在の設定と測定結果を保存し、ダウンロードページからOSとアーキテクチャに合ったバージョンを選んでください。アップデート後も同じ条件で測定し、改善を確認してからほかの項目を調整します。

同じ接続先で3回続けて測定し、許容できる速度に戻り、通常の利用中に通信が切れなくなったら、「最適化設定」を重ねるのはやめましょう。異常が続く場合は、クライアントとコアのバージョン、時間帯、ノードのグループ、接続ネットワーク、最初の応答までの時間、エラー内容をまとめます。ログを共有する前に、サブスクリプションURL、認証情報、個人のアクセス履歴を削除してください。接続情報を漏らさず、問題を再現できるだけの情報を残しましょう。

v2rayN をダウンロード