Clash Running Slow? Layered Troubleshooting: Nodes, Route, Local Config
Slow speed isn't always the node's fault. Isolate the cause in three layers: compare nodes, benchmark a direct connection, then check rule matches and DNS.
Slow speed isn't always the node's fault. Isolate the cause in three layers: compare nodes, benchmark a direct connection, then check rule matches and DNS.
"Clash is slow" is a vague complaint that can stem from three completely different causes: a poor-quality node, congestion somewhere along the route, or a misconfigured local setup. Many people jump straight to swapping subscriptions or clients the moment things stutter, only to find the problem persists — because they skipped a step and never checked the layer in between.
A more efficient approach is to verify three layers in order, working from the far side inward:
Only by isolating and verifying each layer in sequence can you know whether to switch nodes, wait out peak hours, or fix your configuration. Let's go through each layer.
Node quality is the layer most often misjudged — many people conclude from the latency number on the panel alone, but low latency doesn't mean bandwidth is sufficient. To judge whether a node is actually good, check three dimensions:
The latency shown in the client panel is usually the time it takes to establish a connection to a test endpoint — it reflects handshake speed, not actual transfer bandwidth. A node under 100ms latency can still deliver only a few hundred KB/s in real downloads, which usually means the node's upstream bandwidth is being shared by too many concurrent users.
If you suspect a specific node is slow, the most direct test is to switch, within the same time window, to two or three other nodes in different regions or with different labels from your subscription, and measure actual download speed for each (a command-line tool or downloading a fixed-size file in the browser both work). If speed clearly improves after switching, the problem lies with that specific node — likely overloaded or on a poor route — and you should simply avoid it going forward.
Many subscriptions offer multiple nodes in the same region, often labeled with numbers or tags like "load" or "high-speed." Sticking to a single node long-term makes you vulnerable to congestion during peak hours; rotating between same-region nodes tends to give a more stable experience than defending one node at all costs.
If speeds are similar across several different nodes, the problem probably isn't the node — it's the transmission path between your local network and the node. The most common symptom at this layer: fine during the day, noticeably slower during peak evening hours, or unpredictable speed swings at certain times.
Temporarily disable the proxy and access a local speed-test site directly to record your baseline network bandwidth. If the direct connection itself is unstable, then slow proxy speed is largely a local broadband or router issue unrelated to Clash configuration — rule this out first.
International uplink bandwidth is typically tighter in the evenings and on weekends, especially on links involving cross-carrier interconnection. If you notice slowdowns clustering at fairly fixed times — around 8-9pm, weekend evenings — this usually points to route congestion that switching nodes can't fundamentally fix; you either wait out the peak or pick a relay with a more stable path.
If possible, trace the path with a tool like mtr or traceroute and watch for a sudden latency jump or packet loss at a specific hop. Persistent packet loss usually points to a problem on a particular link segment rather than the node server's processing capacity — and this kind of issue is hard to fix by switching nodes, since they likely all route through the same congested segment.
Once you've ruled out the node and the route, if speed still isn't right, it's time to look back at the local Clash client's configuration. Issues at this layer are subtle and easy to overlook, but their impact can be significant.
In rule mode, traffic is matched against the config file rule by rule, and handled according to whichever rule it hits. If the rules aren't precise, some domestic traffic that should go direct gets proxied by mistake, or vice versa — either way causing a noticeable speed hit. Opening the client's connection log to see which rule a given domain actually matched is the most direct way to diagnose this.
Slow DNS resolution drags out the entire connection setup process, so even with a fine node and route, the experience still feels "slow." Check the dns field in your config file, confirm whether fake-ip mode is enabled, and verify that upstream DNS servers are reachable and responsive. For cross-border access, it's best to have proxied domains resolved remotely, avoiding a situation where a local ISP's DNS returns the wrong IP and forces a roundabout connection.
dns:
enable: true
ipv6: false
enhanced-mode: fake-ip
nameserver:
- 223.5.5.5
fallback:
- https://1.1.1.1/dns-query
With TUN mode enabled, all traffic passes through a virtual network adapter before being forwarded to the Clash Meta (mihomo) core — an extra layer of encapsulation/decapsulation compared to traditional system-proxy mode. On lower-powered devices, or with many bandwidth-heavy apps running at once, this extra overhead becomes more noticeable. Switching back to system-proxy mode as a control test can help determine whether the speed difference actually comes from TUN mode itself.
Too many simultaneous connections — especially multi-threaded downloads or video streaming — can spike the load on the proxy core. Check the connection count and traffic graph in the client panel; if the numbers look abnormally high, try closing unnecessary downloads and see whether overall speed recovers.
Follow the node → route → local order strictly. Tweaking local configuration first tends to turn a simple node problem into a much more complicated one, wasting a lot of troubleshooting time.
Here are the easiest mistakes to make during troubleshooting, worth checking against:
Treat this checklist as a routine troubleshooting sequence: run a direct-connection baseline test first to confirm the local network is fine; then compare two or three nodes to judge whether it's a node issue; if both check out but it's still slow, go back and check the rule-match log and DNS configuration. Working through the three layers in order will pinpoint the issue almost every time, without guessing.
Once your troubleshooting approach is clear, run through the full flow with the official client: import a subscription, verify the rules, enable the right proxy mode, and confirm each layer works as expected.