This is a clinic log, not a lecture. The ten questions below are ordered from most to least common, grouped into four topics: subscriptions, ports, modes, and cores. Each one gets a fix first, followed by a sentence on why it happens. In a hurry? Scan the table below and move on once you spot your answer; want to understand why, read the matching section.
| Question | One-line takeaway |
|---|---|
| Subscription import fails | Re-copy the full link; turn on the proxy or switch to mobile data before updating; if the link was reset, get a new one from the dashboard |
| How often are nodes updated | Tap update manually, or enable auto-update with a 24-hour interval |
| Latency test shows all timeouts | Doesn't mean every node is dead — pick one and actually connect before judging |
| Port 7890 is in use | Find and end the process using it, or change the mixed port to a free one like 7897 |
| Some apps don't use the proxy | Manually enter 127.0.0.1:7890 in that app, or switch to TUN mode for system-wide takeover |
| Turn off system proxy before shutdown? | Yes — otherwise nothing may load online at next startup |
| Which of the three modes to use | Use Rule mode day to day; switch to Global only temporarily for troubleshooting |
| Domestic sites got slower | Switch back to Rule mode, update the GeoIP/GeoSite databases, and pick a lower-latency node |
| Clash or mihomo — which to pick | No need to choose — mainstream clients already bundle the actively maintained core, ready to use after install |
| Edited config file keeps getting reset | Make changes in the settings UI or override feature, not directly in the client-generated file |
I. Subscriptions & Nodes: Import Failures, Update Frequency, Timeout Judgment
1. Subscription link import fails with a download error — what now?
Ranked from most to least likely, here are four steps:
- The link wasn't copied in full. Subscription URLs are usually long and end with a token string, so manual selection often clips the last few characters. Use the "Copy Subscription" button on your provider's page instead of dragging to select.
- The subscription URL itself needs a proxy to reach. Some subscription servers aren't reachable over a direct connection. Turn on the system proxy in the client first, then tap update; if you have no working node at all yet, switch to mobile data and try again.
- The link has been reset. Once you click "Reset Subscription" in your provider's dashboard, the old link is invalidated immediately — you'll need to copy and re-import the new one.
- System clock drift is too large. An inaccurate clock causes HTTPS certificate validation to fail — sync your system time and try again.
The link carries your account ID and data allowance — don't paste it into group chats, forums, or public documents. If you suspect it's leaked, reset the subscription in your provider's dashboard; the old link stops working right away.
2. How often should the node list update — manually or automatically?
Importing a subscription once isn't the end of it. Providers add and remove nodes and change entry addresses over time, so the client needs to pull the latest list periodically. Either works: tap "Update" on the subscription management page for an immediate pull, or enable auto-update in settings with a 24-hour interval. Updating only refreshes nodes and routing rules — it won't touch local settings like your proxy mode or port, so go ahead and click it.
3. Latency test shows nothing but timeouts — are all the nodes dead?
Not necessarily. A latency test works by having the client send a request through each node to a test URL (usually Google's gstatic 204 page). A failed test has three common causes: the test URL itself isn't reachable on your current network — try switching to a different test URL in settings; your local network is simply unstable — retest on mobile data; or the node really is dead. There's only one real standard: don't just look at the numbers — select a node, switch to Global mode, and try loading a webpage. If it opens, it works. Latency tests showing all red while the node still connects fine is extremely common on a fresh setup.
II. Ports & System Proxy: Port 7890 in Use, Not Taking Effect, Reset on Shutdown
4. Startup shows "port 7890 in use" — how do I fix it?
7890 is the default mixed port used by most Clash clients (shared by both HTTP and SOCKS proxying). An "address already in use" error means another process is holding that port — most often because the previous client didn't exit cleanly and its core process is still running in the background. Pick either of two routes:
First route: find the process holding the port and end it. On Windows, run in the command line:
netstat -ano | findstr :7890The last column of the output is the PID — open Task Manager, find the matching process by PID, and end it. On macOS and Linux, run:
lsof -i :7890Second route: change the port. In the client's settings, change the mixed port from 7890 to a free one such as 7897, save, and restart the core. Likewise, 9090 is the default port for the external controller — if the error points to 9090 instead, that's the one to change.
5. The system proxy is on — why do some apps still bypass it?
System proxy works by writing the proxy address (127.0.0.1:7890) into the operating system's network settings. Only apps that "follow the system proxy" actually read that setting — browsers and most everyday apps do, but some download tools, game clients, and command-line programs ignore it. Two fixes:
- Manually enter the proxy in that app's own network settings: address 127.0.0.1, port 7890, type HTTP or SOCKS5.
- If the app doesn't support proxy settings at all, switch to TUN mode instead: the client creates a virtual network adapter that takes over all system traffic, so it no longer depends on apps voluntarily following the system setting. TUN mode needs either a service-mode install or admin privileges — just follow the prompt in the client's settings once.
6. Should the system proxy be turned off before shutdown?
Yes. The system proxy setting says "send traffic to 127.0.0.1:7890." If the client has already quit but the switch is still on, the system keeps sending traffic to 7890 at next boot — except nothing is listening there, and the result looks like "nothing loads after startup." Most clients restore the system proxy automatically on a clean exit, but a force-killed process or power loss doesn't get that chance. If you hit no network after booting, don't panic: open System Settings → Network → Proxy, turn off "Use a proxy server," and connectivity comes back immediately — then start the client.
The proxy switch points at a local port — the client has to be there to answer. If the client isn't running, the switch needs to be off.
III. Proxy Modes & Routing: Choosing a Mode, Slower Domestic Sites
7. Rule, Global, Direct — which mode for everyday use?
In short: use Rule mode day to day. Rule mode checks traffic against routing rules one by one — sites outside mainland China go through a node, domestic ones connect directly, so neither gets in the other's way. Global mode sends everything through a node and is only for temporarily checking whether a routing rule is misfiring. Direct mode effectively turns off the proxy and is useful as a baseline for comparison. All three switch instantly with no client restart needed, usually from the client's home screen or tray menu.
8. Domestic sites got slower or a video app misbehaves with the proxy on — why?
Nine times out of ten it's a mode or rule issue — check in this order:
- Check whether you're currently in Global mode — if so, switch back to Rule mode; this is the most common cause.
- Still off in Rule mode? The routing database is likely outdated — update the GeoIP and GeoSite databases in the client's settings.
- High node latency drags down the whole experience — run a latency test and switch to a lower-latency node.
- Some banking or government apps check your network environment — add their domains to the direct-connect rules, or switch to Direct mode temporarily while using them.
IV. Clients & Cores: The mihomo Relationship, Config Reset Issue
9. What's the relationship between Clash and mihomo (Clash Meta)? Which should I download?
Clash is the original core; its author deleted the repository and stopped updates in 2023. mihomo (formerly Clash Meta) is a community fork that continued maintaining the same codebase, with broader protocol support and more rule features — mainstream clients today all bundle mihomo. The takeaway for beginners: don't worry about picking a core at all. The clients on the download page already bundle the actively maintained core, ready to use after install — no separate core download or swap needed.
10. Config.yaml edits get reset after restart — why?
GUI clients treat the config file as a generated artifact: every time you start the app or update a subscription, it regenerates config.yaml from its own settings, overwriting anything you edited by hand. Three correct approaches instead:
- For routine options like port or system proxy, change them in the client's settings UI so the client writes them into the generation process itself.
- To inject custom rules, use the client's override feature (named differently across clients — Global Extend Config, Merge, Override) and put your custom content there; the client merges it in automatically when generating the config.
- If you genuinely need to hand-write YAML, remember indentation must use spaces, never tabs, or parsing fails outright:
rules:
- DOMAIN-SUFFIX,example.com,DIRECT
- GEOIP,CN,DIRECT
- MATCH,PROXY
V. Beyond the Ten: Still Stuck?
Ten questions can't cover every case, but the troubleshooting method generalizes. When the client throws an error you don't understand, open its log page first, set the level to info, and find the first warning or error in chronological order — the error text usually spells out the cause directly, with fixed phrasing for timeouts, parse failures, or port conflicts. If a term is unfamiliar, check the Glossary first; to walk through the install and setup process section by section, follow the Setup Guide step by step. Reading the raw error message is far faster than asking around.