この記事の概要

v2rayNやv2rayNGでノードがタイムアウトする、プロキシを有効にするとWebページを開けない、遅延テストがすべて失敗する場合に役立つ記事です。確認後は、ローカルネットワーク、時刻のずれ、期限切れの購読設定、転送層の不一致、到達不能なノードポート、サーバー障害を切り分け、設定修正・購読更新・ノード変更の判断につなげられます。

まず確認手順を固定する

接続に失敗したとき、複数の設定を同時に変更すると原因を見失いやすくなります。DNSを変更しながら購読を再インポートし、さらに転送プロトコルまで変える、といった操作は避けてください。接続が戻っても真の原因を特定できません。安定した方法は、一度に一つの変数だけを変更し、同じノードを再テストすることです。

接続経路は「クライアントからノードまで」だけではありません。アプリのリクエストはまずローカルプロキシポートに入り、V2RayまたはXrayのコアがルーティング規則を読み込み、サーバーのドメインを解決し、リモートポートへ接続して、最後にプロトコルと転送層のハンドシェイクを完了します。どこか一つが失敗しても、画面上はタイムアウトとしか表示されない場合があります。

アプリのリクエストローカルプロキシルート照合ドメイン解決リモート接続プロトコルハンドシェイク

確認は端末に近い側から始めるのがおすすめです。まず通常のネットワークが使えることを確認し、次に時刻とローカルプロキシポートを確認します。その後ノード設定を照合し、最後にサーバー側の状態を判断します。この順序なら、ローカルの切断をノード障害と誤認せず、クライアントの再インストールによる設定消失も減らせます。

  1. プロキシを一時停止

    システムプロキシを解除するかVPNモードを無効にし、ブラウザーで普段使うWebサイトを2つ開いて、端末自体が正常にインターネットへ接続できることを確認します。

  2. 時刻を確認

    日付、時刻、タイムゾーンの自動設定を有効にし、一度手動で同期して、時刻のずれを60秒以内に抑えます。

  3. ポートを確認

    ローカルのSOCKSまたはHTTPリスニングポートがシステムプロキシと一致していることを確認します。たとえば、v2rayNでよく使われるローカルポートは10808です。

  4. 単一ノードをテスト

    一つのノードを固定して実接続遅延テストを実行し、複数ノードの一括結果で単一ノードの再テストを代用しないでください。

  5. 購読を更新

    ローカルの接続経路が正常な場合に限って購読を更新し、その後、旧ノードと新ノードのアドレス、ポート、転送パラメーターを比較します。

  6. リモート側を判断

    同じノードが異なるネットワークや端末でも継続してタイムアウトする場合に限り、リモートポートの閉鎖やサーバーの停止を検討します。

ローカルネットワークとシステム時刻を確認

最初に、プロキシを無効にして基本ネットワークを確認します。ブラウザーでキャッシュ済みのページが開けても、ネットワークが正常とは限りません。以前開いたことのないページへアクセスするか、システムコマンドでドメイン解決を直接テストしてください。Windowsではターミナルで nslookup example.com を実行し、LinuxとmacOSでは nslookup または dig を使用できます。ドメインを解決できない場合は、ノードのプロトコルではなく、現在のネットワークまたはDNSを先に確認します。

ネットワークによってリモートポートが制限されていないかも確認します。家庭内ネットワークでは一時的にモバイルホットスポットへ切り替えて比較し、モバイル回線では固定回線に切り替えて再テストします。同じノードがネットワークAではタイムアウトし、ネットワークBでは接続できる場合、クライアント設定に根本的な問題はない可能性が高く、ネットワーク出口、DNSの結果、ポート到達性を重点的に確認します。

VMessなどのプロトコルでは、認証に正確なシステム時刻が必要です。端末の時刻が数分ずれると、クライアントはTCP接続まで完了しても、プロトコルのハンドシェイクで失敗することがあります。Windows 11 24H2では「設定」→「時刻と言語」→「日付と時刻」を開き、「時刻を自動的に設定する」と「タイムゾーンを自動的に設定する」を有効にしてから、「今すぐ同期」をクリックします。Android 15では「設定」→「システム」→「日付と時刻」を開き、ネットワーク提供の時刻を有効にします。

エラー:lookup server.example on 127.0.0.1:53: no such host

原因と対処:ノードのドメインを正しく解決できていません。まずプロキシを無効にしてドメイン解決をテストし、利用可能なDNSへ変更してから、クライアントのコアを再起動します。

エラー:dial tcp: i/o timeout

原因と対処:クライアントが制限時間内にリモートアドレスとポートへの接続を完了できていません。別のローカルネットワークに切り替えて再テストし、購読に記載されたサーバーアドレスとポートが期限切れでないことを確認します。

エラー:context deadline exceeded

原因と対処:接続処理が待機期限を超えています。DNS、TCP接続、転送層のハンドシェイクのいずれかで発生する可能性があります。ログでこの行の直前にあるアドレス、ポート、処理段階を確認し、最後の1行だけを見て判断しないでください。

結論:ネットワークをまたいだ比較は、繰り返し測定より有効

同じ設定を2つの独立したネットワークで試した結果は、遅延テストを10回連続で実行するより、ローカルネットワークの制限とノード障害を区別するのに役立ちます。モバイルホットスポットで接続できるなら、まずクライアント設定を保持し、元のネットワークのDNSとポート到達性を確認します。

ノードと転送パラメーターを確認

ローカルネットワークが正常なら、次にノードを項目ごとに確認します。同じプロトコル名でも、設定をそのまま交換できるとは限りません。VMessでは正しいサーバーアドレス、ポート、ユーザーID、セキュリティ設定、転送パラメーターが必要です。VLESSではユーザーID、フロー制御、転送層設定の一致が必要です。購読更新後にサーバー側でパス、ホスト名、TLSパラメーターが変更されると、古い設定が一覧に残っていてもハンドシェイクを完了できない場合があります。

記憶だけを頼りにノードを作り直さないでください。現在有効な購読またはサーバー側が提供する設定を基準に、サーバーアドレス、ポート、プロトコル、転送方式、TLS、SNI、Host、WebSocketパスを比較します。パスの大文字・小文字や先頭のスラッシュにも意味があります。/ray/Ray は同じ値ではありません。

確認項目 よくある症状 確認ポイント
サーバーアドレス 解決に失敗する、または継続的にタイムアウトする ドメインの綴り、DNSの結果、現在のサーバーを指しているか
リモートポート connection refused または i/o timeout ポート番号、サービスのリスニング状態、ネットワーク出口の制限
ユーザーID 接続直後に切断される 全ての文字、区切り位置、古い購読値を使っていないか
TLSとSNI ハンドシェイク失敗、または証明書名が一致しない TLSの有効化、Server Name、システム時刻
WebSocket TCP接続はできるがプロキシリクエストに失敗 Host、Path、大文字・小文字、先頭のスラッシュ
gRPC 転送層の確立に失敗 serviceName、TLS設定、サーバー側設定の一致

v2rayN 7.xでは、まずノードを選択し、右クリックメニューからサーバーを表示または編集します。コアを確認する場合は、「設定」→「パラメーター設定」→「Coreタイプ」を開き、現在のプロトコルが対応するコアで処理されていることを確認します。変更後は設定を保存し、コアを再起動してから現在のノードをテストしてください。ウィンドウを閉じるだけでは、実行中の設定が再読み込みされない場合があります。

v2rayNGはXrayコアを使用し、v2flyNGはv2flyコアを使用します。QRコードやクリップボードからのインポートで移行できるのは、リンクに実際に含まれる項目だけです。サーバー側が追加で要求する転送パラメーターを補完することはできません。インポート後に項目が不足している場合は、別のノードの設定を推測して入力せず、まず購読を再更新してください。

エラー:connection refused

原因と対処:対象ホストがそのポートへの接続を明確に拒否しています。サービスが待ち受けていない、またはポートが変更された場合によく発生します。購読を再更新してリモートポートを確認し、複数のネットワークで再現する場合はサーバー管理者へ連絡してください。

エラー:remote error: tls: handshake failure

原因と対処:TLSネゴシエーションを完了できていません。システム時刻、TLSの有効化、SNI、転送方式を確認し、現在のノード設定と各項目が一致していることを確認します。

エラー:invalid user

原因と対処:サーバーが現在のユーザー認証情報を受け付けていません。ユーザーIDが完全か確認し、クライアントが購読更新前の古いノードを使い続けていないことを確認します。

ローカルポートとプロキシ状態を確認

ノード自体が利用可能でも、ローカルプロキシポートの誤りによってWebページがタイムアウトすることがあります。一般的な設定では、v2rayNがローカルポート10808を待ち受け、ブラウザー拡張機能やシステムプロキシも同じポートを指定する必要があります。クライアントが10809に変更されているのにシステムプロキシが10808へ接続している場合、リクエストは現在のコアに届きません。

Windowsではターミナルで netstat -ano | findstr :10808 を実行し、ポートがLISTENING状態か確認して対応するPIDを記録します。LinuxとmacOSでは lsof -nP -iTCP:10808 -sTCP:LISTEN を実行できます。ポートが待ち受けていなければコアの起動状態を確認します。別のプログラムが使用している場合は、競合プロセスを終了するかクライアントのリスニングポートを変更し、システムプロキシも同じ値に更新します。

Windows:
netstat -ano | findstr :10808
tasklist | findstr 4321

Linux / macOS:
lsof -nP -iTCP:10808 -sTCP:LISTEN

ローカルSOCKSのテスト:
curl --proxy socks5h://127.0.0.1:10808 https://example.com/

socks5hh は、ドメイン解決をプロキシ側で処理することを示します。通常のブラウザーでは失敗するのに上記のコマンドでページ内容が返る場合は、ノードではなく、ブラウザーのプロキシ方式、システムプロキシのアドレス、拡張機能のルールを重点的に確認します。コマンドもタイムアウトする場合は、クライアントログに対応するリクエスト記録があるか確認します。

  1. 待ち受けを確認

    127.0.0.1:10808を現在のクライアントプロセスが待ち受けているか確認し、比較用にプロセスIDを記録します。

  2. ポートを統一

    クライアント、システムプロキシ、ブラウザー設定で同じポートを使用し、10808と10809の混在を避けます。

  3. コアを再起動

    パラメーターを保存してコアを再起動し、リスニングポートとルーティング設定を再読み込みします。

  4. リクエストを送信

    curlでローカルSOCKSポートへリクエストを送り、同時にログへ新しい接続記録が出るか確認します。

実接続遅延で障害を切り分ける

基本的な到達性テストと実接続遅延は同じものではありません。TCPポートだけを測定しても、対象ポートへ接続できることしか確認できず、VMess、VLESS、TLS、WebSocket、gRPCのハンドシェイク成功までは判断できません。実接続遅延は現在のプロキシ経路を通じて実際のリクエストを送るため、ノードが完全な送信経路として利用できるかを判断するのに適しています。

v2rayNで単一ノードを選択し、右クリックメニューの「サーバー実接続遅延をテスト」を使用します。テスト前に、ノード設定が保存済みでシステム時刻が正常であることを確認してください。3回連続でテストすると基本的な判断ができます。1回成功して2回失敗する場合は経路の揺らぎ、3回とも10秒待機後にタイムアウトする場合は、他のノードやネットワークでも比較してください。

単一ノードを選択コアを再起動実接続テストログを確認ネットワークを切り替えて再テスト

遅延の数値だけでノードを並べ替えないでください。180ミリ秒でも3回連続で成功するノードは、60ミリ秒が一度表示された後に2回タイムアウトするノードより、通常は安定しています。遅延テスト中は大容量ファイルの転送、システム更新、クラウドストレージの同期も停止し、ローカル帯域の逼迫による誤判定を避けます。

テスト結果 初期判断 次の手順
単一ノードは成功するが、ブラウザーは失敗 ノード経路は基本的に利用可能 システムプロキシ、ブラウザープロキシ、ルーティング規則を確認
すべてのノードが同時にタイムアウト ローカルネットワーク、DNS、時刻、または購読全体の期限切れの可能性 プロキシを無効にしてネットワークを確認し、その後購読を更新
一つのノードだけタイムアウト 単一ノードの設定またはサーバー側の異常 同じ購読の他ノードと比較し、別ネットワークでも再テスト
TCP接続はできるが、実接続がタイムアウト プロトコルまたは転送層のハンドシェイク失敗 ユーザーID、TLS、SNI、Host、Pathを確認
実接続は成功するが速度に異常がある 経路の混雑またはルーティング品質の変動 時間帯を変えて再テストし、他のノードと比較

結論:安定性は成功率で判断する

固定回線で3回連続して実接続テストを行うほうが、最低遅延を1回測るより参考になります。3回すべて成功し、ログに再試行がなければ、完全なプロキシ経路が確立されています。同じ段階でタイムアウトが続く場合に限り、その段階を対象に対処します。

購読を更新するか、ノードを変更するか

ローカルネットワーク、システム時刻、ローカルポート、クライアントのプロキシ状態がすべて正常になったら、購読を更新します。v2rayNではまず「購読グループ」に現在のアドレスが保存されていることを確認し、「すべての購読を更新」を実行します。更新後すぐに古いグループを削除せず、同名ノードのサーバーアドレス、ポート、プロトコル、転送パラメーターの変化を比較してください。

Androidクライアントでも、まず現在の購読を更新してから、新しく生成されたノード項目をテストします。手動インポートした単一ノードには、購読側の変更は自動反映されません。サーバー側でポートや転送パスが変更されると、古いQRコードやリンクには以前の値が残ります。この場合、古い内容を再スキャンしても意味がないため、現在有効な設定を取得してください。

ノード変更の根拠は、一度だけ発生した偶発的なタイムアウトではなく、再現可能な結果にします。テスト日、端末、ネットワーク、クライアント、ノード名、3回の実接続結果、ログエラーを簡単に記録してください。同じノードがWindows、Android、2種類のネットワークのいずれでも接続を完了できず、同じ購読の他ノードは正常なら、単一ノードの障害と判断する十分な根拠になります。

クライアントの再インストールは、プログラムファイルの欠落、起動不能、設定データベースの破損など、ローカル側の問題に限って有効です。ノードのタイムアウトは通常、ネットワーク、パラメーター、リモート経路で発生するため、再インストールしてもサーバーアドレス、ポート、システム時刻、ネットワーク制限は変わりません。確認前に既存設定をエクスポートするか購読グループを記録しておけば、再インストール後に新たな変数が増えるのを防げます。

エラー:failed to update subscription

原因と対処:クライアントが購読内容を正常に取得できていません。購読アドレスが完全か確認し、プロキシを無効にした状態と利用可能なノードを有効にした状態の両方で更新を試し、返されたステータスを確認します。

エラー:unexpected EOF

原因と対処:完全なレスポンスを読み込む前に接続が切断されています。経路の揺らぎ、転送層の不一致、リモート側からの切断が原因の可能性があります。ネットワークを切り替えて再テストし、TLSと転送パラメーターを確認してください。

再現可能なトラブルシューティング記録を作る

トラブルシューティングの記録に複雑なツールは不要ですが、再現できる内容にする必要があります。少なくともOSバージョン、クライアント名、テスト時刻、ネットワーク種別、ノードプロトコル、ローカルポート、エラーの原文を記録します。たとえば「Windows 11 24H2、v2rayN 7.x、固定回線、VMess、127.0.0.1:10808、実接続テストは3回とも10秒後にタイムアウト」と書けば、「ノードが使えない」より診断に役立ちます。

ログを共有する場合は、サーバーアドレス、ユーザーID、購読アドレス、認証情報を隠し、エラーの種類、時刻、接続段階だけを残します。ログの最初の異常は、最後に表示される「タスク失敗」より原因に近いことが多くあります。テストを開始した位置から下へ読み、DNS、接続、TLS、プロトコルハンドシェイクで最初に発生したエラーを探してください。

  1. 環境を記録

    OSバージョン、クライアント、ネットワーク種別、ローカルのリスニングポート、テスト時刻を記録します。

  2. ノードを固定

    一つのノードを選択し、サーバー、プロトコル、ポート、転送方式を記録して、テスト途中で切り替えないようにします。

  3. 3回実行

    実接続テストを3回連続で行い、成功、タイムアウト、具体的なエラーを記録します。遅延の数値だけを書き写さないでください。

  4. ネットワークを切り替える

    別の独立したネットワークで同じテストを繰り返し、クライアント設定は変更しません。

  5. 結論を出す

    差異に基づいて、ローカルネットワーク、クライアント設定、ノードパラメーター、サーバー側の問題に分類し、一項目ずつ修正します。