How Clash, Clash Meta, and mihomo relate
Clash established a configuration style centered on YAML, proxy groups, and rule-based routing. After the original project was discontinued, the community continued to develop compatible implementations. mihomo follows the Clash Meta project line and continues to evolve support for proxy protocols, rule providers, domain sniffing, and network traffic capture. That’s why Clash Meta in older guides and mihomo in current documentation often refer to the same core development lineage. However, this does not mean every field in an old configuration works the same way today.
A client is an app with a user interface; the core is the program that handles network connections. A client may bundle a particular core or let you switch cores. To determine whether a feature is available, check core support, whether the client exposes the relevant setting, and whether your system meets the permission requirements. An app’s name alone, without details about its runtime environment, is usually not enough to tell whether a configuration will work as-is. Platforms such as iOS have their own network traffic handling mechanisms, so desktop implementation details may not apply.
Trace configuration fields to public documentation
To verify a field, start with the mihomo configuration documentation, then check the mihomo source repository for notes, release history, and issue discussions. Public source code can help explain implementation and pinpoint problems, but that doesn’t mean every graphical client offers the same options or uses the same labels. This site breaks common concepts into individual entries and keeps full setup instructions in the advanced guide, rather than treating interface steps and low-level parameters as one universal workflow.
When reading examples, distinguish complete files from partial snippets. Policy names used in rules must exist in the configuration; files referenced by rule-providers must be present; and DNS listeners and control APIs need ports not already in use. YAML uses spaces for indentation—never tabs. Before saving, validate the configuration in your client, reload it, and check the logs for success. If the interface still shows the old configuration, check which entry is active instead of importing the same link again.
Configuration updates and the limits of local edits
App, core, and subscription updates affect different layers. An app update may change the interface or service components; a core update may change protocol implementation or field behavior; a subscription update may replace servers, proxy groups, and rules. Before upgrading, keep a working copy of your current configuration and local overrides, and read the relevant release notes. Afterward, test existing connections before enabling new features one at a time. A successful subscription update does not guarantee that a server is available, and a completed installation does not mean the system proxy now handles every app.
For long-term use, let the subscription manage remote content and local overrides handle personal preferences. For example, add rules for a few work domains or keep your preferred local listening address and DNS settings. Override, merge, and processing behavior varies between clients. Check the final generated configuration, not just the partial content in the editor. If you need to merge multiple subscriptions, account for duplicate proxy group names, repeated rules, and outbound dependencies. These topics are covered in the Advanced Configuration Guide; they’re best left until after your first connection.
Troubleshoot using connection logs
Break “can’t connect to the internet” into four stages: traffic capture, DNS resolution, rule matching, and outbound routing. Whether the browser uses the system proxy, whether the core sees the connection, whether the domain resolves as expected, and which policy the connection hits are more useful clues than repeatedly changing configurations. If the core has no connection record, check how traffic is captured first. If a record shows the wrong policy, check rule order and group selection. If the policy is correct but the connection still fails, check the subscription, proxy protocol, and outbound network. Change one setting at a time so you can identify the cause from the result.
A latency test measures performance for a specific target, protocol, and set of network conditions; it cannot replace testing the app you actually use. Websites, video apps, and command-line tools may use different DNS resolvers, connection reuse, and transport protocols. To verify a setup, choose a specific app, check its connection record, and confirm the outbound route matches your rules. When sharing troubleshooting details, keep the error type and necessary fields, but remove subscription access parameters, server passwords, and personal network identifiers. For more specific steps, see Frequently Asked Questions.
A sensible order for your first setup
If you already have a working subscription, install a client that matches your system architecture. Import the subscription on the configuration page and set it as active. Then select Rule mode, choose a proxy node in the group you’ll use, and enable the system proxy or mobile VPN connection. First check that your usual apps can connect, then verify that the rules behave as expected. This order tests configuration validity, traffic capture, and outbound selection separately, making it easier to see where something went wrong instead of enabling every network option and guessing afterward.
Look into TUN only if the target app ignores the system proxy or you need to capture more traffic. Before enabling it, turn off other VPNs that may change routes and note your current DNS and proxy settings. Follow the client’s prompts to install services or grant permissions. If network problems arise, undo your latest changes and restore a known working setup. The Getting Started guide walks through importing, selecting, routing, and testing; the glossary explains terms as you go. They serve a different purpose from the advanced guide.