Proxy Is On but Nothing Loads? Step-by-Step Troubleshooting
On this page
The proxy is switched on, the client says it is running, and yet nothing loads. It is the most reported problem in any Clash community, and also the most fixable — because "proxy on but no internet" is not one problem. It is four possible problems stacked on top of each other, and telling them apart takes about five minutes.
The stack looks like this: traffic must reach the client, the client must have a working node, the outbound mode and rules must send traffic to the right place, and DNS must resolve names sanely. Test the layers in order and you will find the broken one instead of flailing across all four.
Step 1: is traffic actually reaching the client?
Start at the entrance. At least one intake must be active — the system proxy toggle or TUN mode. It is surprisingly common for both to be off after an update or a crash, with the client idling and every app connecting directly.
- Check the client's connections or traffic panel while refreshing a page. Activity means traffic is arriving — skip to Step 2. Dead silence means it is not.
- If you set a proxy manually somewhere, confirm the port matches the client's settings page (the mixed port is commonly 7890 or 7897).
- Disable browser proxy extensions while testing — a leftover extension profile can quietly route the browser somewhere else entirely.
Step 2: does any node actually work?
Open the proxies page and run a latency test on your group. The pattern of results is diagnostic:
- Every node times out — the subscription is expired or the provider has an outage. Update the subscription and re-test; if it persists, check your plan status. The subscription import guide covers updating and re-importing cleanly.
- Some nodes respond — switch to a responsive one manually. Single dead nodes are routine; auto-test groups usually route around them, but a manually pinned dead node will sit there failing forever.
- Tests pass but browsing still fails — the node layer is fine; move on.
Step 3: check the outbound mode
Clash-family clients have three modes, and being in the wrong one perfectly mimics a broken proxy. In direct mode everything bypasses the nodes — blocked sites stay blocked while the client looks "on". In global mode everything transits the node, which breaks local services that dislike foreign exits. Rule mode is the normal choice; confirm it is selected, and remember that mode switches sometimes only apply to new connections, so refresh or restart the app you are testing.
Step 4: DNS symptoms
If nodes test fine and the mode is right but pages hang at "resolving host" or fail instantly, suspect DNS. Typical tells: sites fail in the browser while a latency test succeeds, or things broke right after enabling TUN. Make sure the config's dns section is enabled with enhanced-mode: fake-ip, and that upstream resolvers are reachable — the DNS settings guide walks through fake-ip, filters and upstream choices in detail.
Other culprits worth ruling out
- The underlying connection is down. Turn the proxy fully off and load a local site. If that fails too, the problem is your network, not the client.
- Two proxies fighting. Another VPN or proxy app running simultaneously produces exactly these symptoms — close everything but one.
- One stubborn app. If only a single program misbehaves, it likely ignores the system proxy; that is a coverage question, not a failure.
- Startup errors underneath. If the core itself keeps restarting or a port is occupied, fix that first — see the common errors guide.
Tip: when nothing obvious turns up, think binary search: global mode with a known-good node tests the node path alone; direct mode tests your line alone. Two measurements cut the search space in half.
The five-minute checklist
- System proxy or TUN switched on — and only one of them while testing.
- Connections panel shows traffic when you refresh a page.
- Latency test passes on the node you are actually using; update the subscription if all fail.
- Mode is rule, not direct or global by accident.
- DNS section enabled, fake-ip active, upstreams reachable.
- No second VPN/proxy running; base connection works with everything off.