Clash All Nodes Red? Fix Response time Tests: UDP, DNS, STUN, and Health Check Steps

What “All Nodes Red” Actually Measures Key Takeaways

This article is intentionally cross-platform. Desktop and mobile builds differ in labels, yet the diagnostic sequence repeats: confirm the profile is real, confirm the tunnel or system proxy path you think is active truly is, then walk DNS, UDP expectations, and health-check configuration.

In the greater part of Mihomo-based Clash GUIs, the color beside a server is driven by a response time or delay test, not by a full quality audit of every protocol you will ever work.

The client asks the core to probe each outbound with a time-bound check—often a TCP connection attempt to a provider-defined test port, sometimes an HTTP request to a url-test or health-check URL embedded in the profile. When that probe cannot entire before the timeout, the UI paints the row red or shows a dash, and anxious readers assume the entire fleet collapsed overnight.

The key point:Reality is kinder and more boring: one shared failure mode can make every outbound look dead at once. Classic examples include Clash not actually capturing traffic yet (system proxy disabled while you expect TUN behavior), DNS returning unusable answers under fake-ip, a corporate firewall blocking outbound TCP to non-standard ports, or a subscription merge that produced zero usable nodes even though the dashboard still lists names.

Before you rotate every password on the provider side, separate “delay UI says red” from “browser still offline.” They overlap, but they are not identical signals.

For subscription fundamentals and load hygiene, keep the subscription load walkthrough open in another tab so you are not debugging DNS while the YAML never refreshed.

Step 1: Isolate the Delay Test from Real Browsing in Brief

Write down three facts: are you on system proxy, TUN, or a mixed setup; which DNS mode the profile uses; and whether the provider relies on exotic transports such as QUIC or Hysteria that need UDP end-to-end.

Let me put it this way:Work two swift experiments. First, with Clash disconnected, load a plain HTTP site you are allowed to visit. If that already fails, you are looking at underlying network or captive portal issues, not proxy tuning. Second, enable your usual policy group selection, pick no matter which node yourself, and try a single HTTPS site through the browser you expect to be captured.

If browsing works while the node list stays red, your delay probe target or timeout is misfiring even though TCP relay is fine. Conversely, if browsing fails while ICMP ping to your router still works, capture mode or DNS is the more likely culprit than the remote datacenter.

Those answers decide whether the next section is five minutes or an afternoon. For a deeper comparison of system proxy versus TUN and when global capture matters, read the TUN and global proxy guide—the mental model there prevents you from chasing UDP while HTTP never left the tunnel.

Step 2: Subscription, Merge, and “Empty but Pretty” Profiles A Closer Look

When in doubt, temporarily load a minimal profile with one well-known VMess or VLESS endpoint you control on a non-filtered network.

Concretely:Response time tests iterate over outbounds the running config actually contains. If subscription refresh failed silently, a fair few GUIs still display cached names while the core merged an empty proxy list. Open the client log around the time you pressed refresh and search for HTTP status codes, TLS faults, and parser warnings.

Rotate the subscription token if the provider returns HTML login pages or 403 responses. If you recently switched clients, confirm the new build supports every outbound type your provider ships; unsupported types may be skipped, which can leave you with fewer working nodes than you assume.

If even that single outbound goes red while a phone on cellular shows green for the same URI, you have localized the bug to the desktop OS path—firewall, loopback binding, or DNS—fairly than to the remote machine. Always fetch fresh installers from our download page so you are not comparing behavior across years of core drift.

Merge order matters. Duplicate proxy names, conflicting port overrides, or provider rules that reference missing policy groups can yield a config that looks entire in the UI yet fails every probe.

Export the effective YAML when your GUI allows it and verify proxies is non-empty.

Step 3: DNS, fake-ip, and Why Everything Times Out Together What Matters

On Windows and Linux desktops, also check split DNS when VPN-style adapters appear. WSL2, Docker Desktop, and a fair few enterprise agents install competing resolvers.

Where this lands:Clash can answer DNS queries locally with fake-ip mapping so domain rules resolve quickly, but that power becomes a foot-gun when the rest of the stack disagrees about who owns resolution.

If the operating system still sends queries to a resolver that cannot see the same view as Clash, or if enhanced-mode and your TUN driver disagree, applications may attempt connections to addresses that never route through the tunnel you expect. The symptom is widespread failure: not one stubborn site, but entire classes of traffic, and delay tests that must resolve node hostnames may fail in unison.

Spin up by confirming which DNS section your profile uses: which nameservers are listed, whether fake-ip range matches your TUN subnet expectations, and whether nameserver-policy or proxy-server-nameserver entries send sensitive lookups down the tunnel.

Do not skip this:Misconfigured DNS over HTTPS endpoints that cannot be reached without the proxy create a chicken-and-egg loop: Clash needs DNS to pick a node, but DNS itself waits on a path that is not up yet. Temporarily simplify: point to a single trustworthy resolver, disable exotic DNS plugins you added for ad-blocking until the tunnel is trustworthy, and retest.

If Clash works for the host browser but not for a subsystem, you may need front end-specific fixes such as those described in the Windows 11 and WSL2 routing article, because the delay test from the GUI uses the host stack while your project traffic uses another.

Step 4: How the Response time Test Works (and What It Ignores) Key Takeaways

Timeouts deserve attention. Aggressive timeout values make flaky Wi-Fi look like total outage. If your profile sets extremely low thresholds for url-test or health checks, consider realistic values for wireless environments.

Understanding the probe helps you interpret red rows fairly. Countless builds measure TCP handshake time to a server-provided address and port, not ICMP ping. If your ISP or coffee-shop Wi-Fi blocks outbound TCP to high ports, every node hosted on those ports looks “dead” even though ICMP to 8.8.8.8 looks great.

The key point:A fair few providers publish alternate test ports; others expect you to rely on url-test against an HTTPS endpoint on port 443, which survives more hostile networks.

ICMP-based ping tests, when exposed in a GUI, may be blocked by the remote firewall or by local security products that treat raw sockets differently from user-space TCP.

Treat ping and delay as related but not interchangeable metrics. If your client exposes both, compare them; wide divergence as a rule maps to filtering, not to packet loss on the ocean cable.

Let me put it this way:Conversely, if timeouts are enormous and the UI still freezes, the core may be stuck on DNS or TLS trust validation fairly than on distance.

Step 5: UDP, STUN, and Transports That Are Not TCP Delay Tests in Brief

Protocols built on QUIC or custom UDP wrappers may need explicit outbound support in the core build. If your provider migrated to a UDP-first stack, upgrade the client from the maintained release channel and verify the feature matrix in release notes.

TCP delay success does not guarantee UDP readiness. Voice chat, a fair few games, and QUIC-heavy stacks stress UDP paths that your proxy may not forward unless you work the correct mode. TUN-style capture generally offers broader UDP coverage than plain system proxy for applications that ignore OS proxy settings.

If you require full-device UDP on desktop, align with the TUN guidance above; on mobile, VPN APIs differ, and OEM battery policies add noise—pair with the Android stability checklist when only handheld tests fail.

STUN sessions, used by WebRTC for NAT discovery, combine UDP timing with signaling plane behavior that bypasses naive “all TCP works, so UDP must work” assumptions. If a site shows relay or host connectivity faults while HTTP loads, capture browser console WebRTC diagnostics when policy allows.

Concretely:The fix may be turning on UDP forwarding, choosing a node region closer to the STUN server, or accepting that a fair few networks block UDP entirely and forcing TCP-only tooling instead.

Running a years-old GUI against a brand-new subscription is a frequent source of “everything times out” reports that are actually parser gaps.

Do not confuse STUN with DNS. STUN tells endpoints how to traverse NAT; it does not replace DNS resolution.

Fix resolver health first, then chase UDP, or you will toggle random WebRTC knobs while names never resolve.

Step 6: Health Checks, url-test, and Automatic Group Selection A Closer Look

Intervals matter for battery and log noise. Extremely frequent checks on mobile can wake radios and look like instability when the real issue is aggressive polling.

Policy groups that use url-test or fallback depend on health check targets defined in YAML. When those URLs sit behind Cloudflare or regional edges that block datacenter IPs, automatic selection may oscillate or mark every member unhealthy. Confirm the url is reachable from a neutral network without Clash, then reintroduce the proxy.

Where this lands:A fair few providers ship stock health URLs that work globally; others assume you will edit them. If you work private infrastructure, host a tiny static endpoint on port 443 dedicated to probes fairly than reusing a heavy application URL that returns 302 chains.

On desktops, the opposite risk appears: long intervals hide transient blackholes. Balance your interval against reality: home fiber tolerates shorter probes, hotel Wi-Fi may need patience.

Step 7: Local Firewall, Antivirus, and Corporate TLS Inspection What Matters

Corporate networks with HTTPS inspection can break subscription fetch and health checks simultaneously. If you must use such a network, ask whether a transparent proxy expects a custom root of trust on your device.

Third-party security suites sometimes intercept loopback traffic or inject certificates into TLS streams. Symptoms include partial breakage: HTTPS sites load in one browser but not another, or delay tests fail while long downloads work.

Do not skip this:Temporarily pause on-access scanning only on a test machine you trust, or add explicit allow rules for the Clash binary and the TUN helper. On Windows, confirm both private and public firewall profiles allow the listening ports you configured for mixed inbound, especially when LAN sharing is enabled.

Without it, TLS failures cascade into empty profiles and red response time rows—not because Clash is broken, but because the middlebox terminates trust differently than your upstream provider assumes.

A Short Repeatable Checklist Key Takeaways

After connectivity is predictable, deepen your setup through the configuration documentation hub for fine-grained rule tuning.

When time is tight, work this ordered list: verify plain internet without Clash; refresh the subscription and read logs; confirm system proxy versus TUN matches how you test; simplify DNS and validate fake-ip consistency; rerun delay tests with realistic timeouts; validate UDP and STUN-sensitive apps separately from TCP delay; review health-check URLs for automatic groups; scan firewall and antivirus rules.

The key point:The greater part of “all red” tickets close before the last step because the failure was shared infrastructure—DNS or capture—not a worldwide outage.

Compared with ad-hoc YAML copied from forums, a maintained client build plus disciplined DNS and health-check hygiene as a rule yields faster screens and fewer mystery regressions after OS upgrades.

Closing Thoughts in Brief

For installers that match current core features and fewer parser surprises, spin up from one place instead of chasing scattered release threads.

Clash response time tests are a convenience layer. Treat red rows as a prompt to inspect DNS, UDP and STUN needs, capture mode, and health check targets—not as a verdict that every server on Earth failed.

Let me put it this way:When you methodically isolate those layers, you spend less time swapping nodes and more time using the connection you already paid for.

→ Download Clash for free and experience the difference.

Need platform-specific VPN or battery context after DNS is clean?

Continue with Android troubleshooting or the TUN mode guide. Go to the download page →