接続トラブルシューティング · Clash 技術ブログ

Clash のノードがタイムアウトする場合は?遅延テスト、ノードの切り替え、頻繁な切断を確認する

Timeout はテスト要求の時間切れを示すだけで、ノード無効の証明ではありません。同じノードで実際の接続を再現し、ルールとログを調べ、単独ノード、同一プロトコル、購読全体を比較して、別ネットワークでも実用途を確認します。

  • ノードのタイムアウト
  • 遅延テスト
  • 通信の中断
目次

ノードの横にタイムアウトの表示が出ると気になりますが、実際にしたい操作が失敗しているとは限りません。ウェブ閲覧、長時間のダウンロード、音声通話では必要な接続条件が異なるため、使う場面で確かめることが大切です。ノードと接続先を固定し、速度測定の結果、接続記録、ログを照らし合わせましょう。

遅延テストが Timeout のとき、実際の接続も失敗するか

Timeout は、構成で指定したテスト先が制限時間内に応答しなかったことを示します。ノードに到達できない、テスト URL が遮断される、DNS が失敗する、ローカルネットワークが通信を止める可能性があります。それだけでパソコン全体の切断や、動画、ダウンロード、UDP の性能は判断できません。

同じノードで失敗したサイトを開くか、アプリで同じ操作を行い、実際の結果と遅延テストの結果を記録します。遅延が小さくても、ダウンロードが継続するか、長い回答が最後まで届くかはそれぞれ確認してください。

二種類のテストで分かること

テスト確認できる内容
ノード遅延 / health checkテスト URL がタイムアウト時間内に応答するか
ブラウザで対象サイトを開くWebリクエストが想定ルールに従い、選択した送信経路から完了するか
長時間のダウンロードまたはストリーミング応答接続の持続性、パケット損失、途中での切り替え
ゲームまたは音声通信UDP 対応、ジッター、実際の経路品質

ノードを固定し、要求がそのノードに届くか確認する

メインのポリシーグループで特定のノードを選び、url-test、fallback、load-balance は使用しません。Rule モードを維持し、Connections を開いて、同じWebページまたはアプリの操作を繰り返してください。送信経路を固定することで、成功と失敗を同じ経路で比較できます。

宛先ドメイン、一致したルール、ノード名、プロトコル、ログのエラーを記録します。接続画面に要求がなければ、アプリが Clash を経由しているか確認します。DIRECT ならルールを調べ、ノードに渡った後もタイムアウトするならノードへの接続を確認します。

単独ノード、同じプロトコル、サブスクリプション全体の障害への対処

一つのノードだけがタイムアウトする
単一ノードの停止や混雑、サーバーポートの変更である可能性が高いと考えられます。同じ地域の別ノードと比較してください。
同じプロトコルのすべてのノードがタイムアウトする
現在のコアが設定フィールドに対応しているか、またローカルネットワークがそのプロトコルを制限していないか確認してください。
同じサブスクリプションのすべてのノードがタイムアウトする
速度テストを続ける前に、サブスクリプションの期限、使用量、サービスのお知らせを確認してください。
現在の Wi-Fi で複数のサブスクリプションがすべて失敗する
スマートフォンのテザリングと比較し、問題がローカルネットワーク、DNS、ファイアウォールのどこにあるか確認します。
Webページは使えるが、ゲームまたは音声通信は失敗する
UDP と TUN による取り込みは個別に確認してください。Webの遅延結果では代用できません。

単独のノード障害で DNS と TUN を同時に変える必要はありません。同じネットワークで複数のサブスクリプションが失敗する場合は、接続ネットワークの比較が役立ちます。

ログからタイムアウト、接続拒否、リセット、名前解決失敗を区別する

i/o timeout / context deadline exceeded

経路が制限時間内に完了していません。ノード、ネットワーク、対象アドレスを比較してください。

TLS handshake timeout / handshake failed

接続はハンドシェイク段階まで到達したものの完了していません。ノードのプロトコル、システム時刻、コアの互換性、現在のネットワークを確認してください。

connection refused

接続が拒否されています。ノードのサービスがそのポートで待ち受けていないか、ポート設定が変わった可能性があります。ログにある実際の接続先アドレスを確認してください。

connection reset by peer

接続確立後に相手側または中間機器によってリセットされています。プロトコルの互換性とネットワークの安定性を確認してください。

no such host / DNS error

ドメイン解決が完了していません。Clash DNS とシステム DNS の経路を確認してください。

unsupported / parse error

設定がコアの機能と一致していません。ネットワーク遅延の問題ではありません。

ログの時刻は、直前に行ったテスト操作と対応させる必要があります。バックグラウンドのサブスクリプション更新、ヘルスチェック、ブラウザリクエストが同時にログへ書き込まれることがあるため、最終行だけを切り取ると別の処理を選んでしまいがちです。

スマートフォンのテザリングと別ノードで比較する

スマートフォンのテザリングで成功し、元の Wi-Fi で失敗するなら、ノードは動作しているため、ルーターの DNS、ファイアウォール、IPv6、通信事業者のネットワークを確認します。夜の混雑時だけ遅くなり昼に戻る場合は、テスト時刻と継続速度を記録します。回線の混雑が疑われます。

同じプロトコルのグループ全体が失敗し、ほかのプロトコルが正常なら、種類とコアのバージョンを記録して提供元に構成を確認します。Reality、XTLS Vision などの転送方式や flow の名前だけでは回線品質を判断できません。

変数を最小限にした四つの比較

  1. ノード A + Wi-Fi

    固定した対象への操作を繰り返し、ログを残します。

  2. ノード A + モバイルホットスポット

    接続ネットワークだけを変更します。

  3. ノード B + 元の Wi-Fi

    同じサブスクリプションの別ノードに切り替え、できるだけ同じプロトコルを使い、ネットワークは変えません。

  4. 別プロトコルのノード + 元の Wi-Fi

    前の比較でも切り分けられない場合に限り使用します。

自動グループの頻繁なノード変更で途切れやすい接続

url-test は測定結果から遅延の小さいノードを選び、fallback は現在のノードが使えなくなると順に切り替えます。測定間隔が短すぎる、tolerance が小さすぎる、テスト URL が不安定といった条件で、新しいリクエストの出口が頻繁に変わることがあります。既存の接続が切れるかどうかは、ノードの障害やクライアントが古い接続を閉じるかにもよります。

ポリシーグループを一時的に select へ変更し、ノードを一つ固定します。通信断が消えた場合、原因はノード自体ではなく、ヘルスチェックのパラメータや自動切り替え方法かもしれません。自動グループを戻す際は、安定したテスト URL を使い、interval を適切に長くし、url-test に十分な tolerance を設定してください。

Mihomo 設定へそのまま追加できる url-test 構造
proxy-groups:
  - name: 自动选择
    type: url-test
    include-all: true
    url: https://www.gstatic.com/generate_204
    interval: 300
    tolerance: 80
    lazy: true

Web 閲覧、ダウンロード、音声を別々に検証する方法

Webの問題ではサインインとページ読み込みまで完了させ、ダウンロードの問題では一定時間の連続転送を確認します。音声通信やゲームでは UDP とセッションの安定性を見てください。Connections には想定したルールと固定送信経路が継続して表示され、ログには同じエラーが出なくなる必要があります。

テスト URL に応答があっても元の操作がタイムアウトする場合は、ノード、ネットワーク、時刻、エラーを記録し、提供元に回線やサーバーの問題を調べてもらいます。

参考資料