Project history and maintenance scope
The Clash ecosystem grew from a rule-based proxy core, with graphical clients adding features such as configuration selection, system proxy controls, and connection views. After the original project and some early desktop clients stopped being maintained, the community developed separate forks. mihomo continues the development direction of Clash Meta, supporting rules, DNS, TUN, and multiple proxy protocols. Similar names don't mean two products are the same, or that a button from an old tutorial still exists in a current client.
When looking up guidance, note which graphical client you're using and which core it includes, then consult the relevant documentation. A matching menu label isn't enough: some clients generate configurations, some merge override files, and some restrict which fields you can edit. Replacing a client’s entire configuration with one from another client may bypass subscription management or overwrite controller and listener settings. Before migrating, keep the old configuration and local changes. Confirm the new app starts before moving settings across one at a time.
The interface manages settings; the core handles connections
Clash clients typically manage the tray menu, startup behavior, system proxy, subscription downloads, and configuration editing. The core handles connections, DNS resolution, and rule matching. A “running” status only means the process is active; it doesn't confirm that the subscription is valid or that every destination is reachable. Troubleshoot in stages: can the client start, can it load the configuration, can a node connect, do rules select the expected policy, and does DNS resolve the domain?
System proxy and TUN operate at different layers. The system proxy tells apps that honor the setting to connect to a local port; some command-line tools need proxy environment variables set separately. TUN uses a virtual interface and routing to capture more traffic, but is more sensitive to permissions and network conditions. A website working in your browser while a particular app fails doesn't mean the node is down. Check whether the app appears in the connection list, then decide whether to investigate its proxy path or the matching rule. That's more effective than enabling every option at once.
Subscriptions provide configurations; clients don't provide proxy service
After installation, you'll still need an existing subscription or your own connection details. A subscription may include nodes, proxy groups, rules, and DNS settings—or just a proxy list. If import fails with a format error, check whether the response is actually Clash YAML. If opening the URL in a browser shows a login page or an error, the client can't read it as a configuration either. An empty list, authentication failure, or timeout usually calls for checking the service, URL, and download path—not changing the local proxy port.
Treat tokens in subscription URLs as credentials. Hide the full URL in screenshots, remove account details before exporting a configuration, and share only the necessary redacted snippets when asking for help. Third-party subscription converters send the original URL to another service; understand where your data goes before using one. Updating a subscription doesn't necessarily update local settings: a client may regenerate rules. Put personal routing changes in a supported override mechanism, then verify what's actually applied after an update.
Open-source records help verify details; they don't replace runtime testing
mihomo is licensed under GPL-3.0, and its source code and development history are available in its repository. Each graphical client has its own project, license, and release notes, so check those separately. Open source makes implementations and changes available for review and helps locate discussions about compatibility issues; it doesn't guarantee that a particular network, subscription, or configuration combination will work. This site doesn't substitute verifiable information with unsubstantiated download counts, ratings, or speed-test figures.
When reporting an issue, include your operating system, client name, relevant settings, and steps to reproduce it. Share only the necessary log lines around the error, and redact subscriptions, keys, and personal destinations. “address already in use” points to a port conflict; “connection refused” means the destination port rejected the connection. A resolution failure calls for checking the DNS path. The exact error is more useful than “can't connect” and helps distinguish client, configuration, and server issues.
Update order and rollback-ready configurations
The client, core, subscription, and GeoIP database are separate update targets. Updating the client may change its interface or service components; a core update may affect protocols or fields; a subscription update changes connection details and rules; a GeoIP update changes matches that rely on regional data. Change one category at a time and record the previous state. If something breaks, reverting the latest change usually makes the cause easier to find than resetting everything.
For a first-time setup, start with rule mode and verify browser access, then test other apps, and only then consider TUN, LAN sharing, or an external dashboard. Don't just check whether a website loads: confirm that the connection list shows the expected domain, matched rule, and final policy. A successful connection with the wrong policy still needs fixing. Save custom configurations in a separate file. Use spaces for YAML indentation and avoid duplicate top-level keys. After applying changes in the client, check the logs and confirm the configuration loaded before moving on.
Where to find guides and what to check first
For your first setup, start with the subscription import steps. Follow the sequence: import, select a configuration, switch to rule mode, then enable the proxy. If it already works and you want to change how sites are routed, see advanced configuration for proxy groups, rule sets, and overrides. If a term is unfamiliar, check the glossary instead of guessing from the field name. This keeps setup on a clear path and helps avoid conflicts from copying scattered snippets.
If you lose all access after enabling the client, quit other proxy tools, confirm your regular network works, then check the subscription, selected configuration, proxy group, and DNS logs in order. If only certain websites fail, check that connection's rule and destination before reinstalling. If access still fails after quitting the client, check for a leftover system proxy setting and make sure the original network settings were restored. The Help Center has answers organized by symptom. This page keeps to a troubleshooting sequence rather than treating every problem as a toggle issue.