Connectivity Troubleshooting · Clash Technical Blog

Troubleshooting Clash Node Timeouts: Latency Tests, Node Switching, and Frequent Disconnects

A Timeout result does not prove a bad node or total outage. Pin one node, reproduce the issue, and determine whether it affects one node, a group, or the whole network.

  • Node timeout
  • Latency test
  • Connection drops
On this page

A latency result of Timeout means only that the probe did not return on time

The Clash latency button accesses the test address configured and waits for a result within the timeout. Timeout may mean the node is unreachable, the test URL is blocked, DNS failed, or the current network blocked it. It does not show that the whole computer is offline or directly represent real video, download, or UDP performance.

Conversely, latency of only tens of milliseconds does not guarantee a stable persistent connection. Record “health check result” separately from the real application request when troubleshooting nodes, or a good-looking number can mislead you.

Questions answered by the two tests

TestWhat it shows
Node latency / health checkWhether the test URL responds within the timeout
Open the target site in a browserWhether the web request completes through the selected outbound route according to the expected rule
Long download or streamed responseConnection persistence, packet loss, and midstream switching
Game or voice trafficUDP support, jitter, and actual route quality

Disable automatic selection and switch nodes manually for one comparison

Choose a specific node in the primary policy group and do not use url-test, fallback, or load-balance. Keep Rule mode, open Connections, and repeat the same website or app action. With a fixed outbound route, success and failure come from the same path.

Record the target domain, matched rule, node name, and log error. No request on the connections screen means the app did not use Clash. DIRECT means the rule did not use that node. Only after confirming that the request reached the node and still times out should you inspect node connectivity.

A useful retest should preserve

  • The fixed node name and protocol type
  • The same target address or app action
  • The rule and outbound route shown in Connections
  • The timeout, reset, or DNS error from the log

If one node fails, switch nodes; if all fail, inspect subscription status

Only one node times out
More likely a single node is offline or congested, or its server port changed; compare another node in the same region.
Every node using one protocol times out
Check whether the current core supports the configuration fields and whether the local network restricts that protocol.
Every node in the same subscription times out
Check whether the subscription expired, quota is exhausted, or the service has an announcement before continuing to benchmark.
Several subscriptions fail on the current Wi-Fi
Compare with a mobile hotspot; the scope now points toward the local network, DNS, or firewall.
Web pages work, but games or voice traffic fail
Validate UDP and TUN capture separately; web latency cannot substitute for either.

Change settings only after narrowing the scope. If one node alone is broken, changing DNS and TUN creates new problems. If every subscription fails on one network, buying more nodes reveals little about the cause.

Do not troubleshoot timeout, refused, reset, and DNS error as the same problem

i/o timeout / context deadline exceeded

The path did not complete within the time limit; compare the node, network, and target address.

TLS handshake timeout / handshake failed

The connection reached the handshake stage but did not complete; verify the node protocol, system time, core compatibility, and current network.

connection refused

The target host is reachable but rejects the port; the node service or port configuration may have changed.

connection reset by peer

The peer or an intermediary reset the established connection; inspect protocol compatibility and network stability.

no such host / DNS error

Domain resolution did not complete; inspect the Clash DNS and system DNS paths.

unsupported / parse error

The configuration exceeds the core's capabilities; this is not network latency.

The log time must correspond to the test action you just performed. Background subscription updates, health checks, and browser requests may all write logs simultaneously, so capturing only the final line can select the wrong event.

Switch once to a hotspot to determine whether the issue is the current network or node

Request the same target once through the same fixed node on home Wi-Fi and once through a mobile hotspot. If the hotspot works and Wi-Fi fails, the node still functions; inspect router DNS, the firewall, IPv6, or the ISP path. If both fail, try another node from the same subscription. If only peak hours are clearly slower and daytime recovers, record the test time and sustained throughput; congestion is more likely than a suddenly incorrect configuration.

If every node using one protocol fails while other protocols work, record the protocol type and core version and ask the subscription provider to verify the configuration. Do not treat names such as Reality or XTLS Vision transports or flow values as independent measures of node quality; comparisons in the same environment are what matter.

Four comparisons with minimal variables

  1. Node A + Wi-Fi

    Repeat the fixed target and preserve the log.

  2. Node A + mobile hotspot

    Change only the access network.

  3. Node B + original Wi-Fi

    Change only the node, keeping the same protocol if possible.

  4. Node using another protocol + original Wi-Fi

    Use only if the earlier comparisons remain inconclusive.

For frequent brief drops and recovery, check whether the policy group is changing outbound routes

url-test selects a lower-latency node from probe results, while fallback switches in order when the current node is unavailable. An interval that is too short, a tolerance that is too small, or an unstable test URL may change outbound routes frequently and interrupt sign-in sessions, downloads, and streamed connections.

Temporarily change the policy group to select and pin one node. If the drops disappear, the node itself may not be at fault; health-check parameters or automatic-switching behavior may be. When restoring the automatic group, use a stable test URL, lengthen interval appropriately, and give url-test sufficient tolerance.

url-test structure that can be placed directly in a Mihomo configuration
proxy-groups:
  - name: 自动选择
    type: url-test
    include-all: true
    url: https://www.gstatic.com/generate_204
    interval: 300
    tolerance: 80
    lazy: true

Return to the original workload and confirm that the timeout is truly gone

For a web issue, complete sign-in and page loading. For a download, observe sustained transfer. For voice or gaming, inspect UDP and session stability. Connections should continue showing the expected rule and fixed outbound route, and the same error should no longer appear in logs.

If only the test URL turns green while the original scenario still times out, troubleshooting is incomplete. Preserve the node, network, time, and error as four data points for the subscription provider so they can investigate the route or server.

References