Explore platform options, YAML configuration, and routing rules through the mihomo core, from installation steps to field-level details.
mihomo core
GPL-3.0 licensed open source
YAML configuration
YAML / field relationship diagram · Not a complete configuration
Configuration Field Index01 — 06 / FIELD NOTES
Field structure, routing logic.
Configuration files connect entry points, resolution, and exits. First identify what each field controls, then adjust specific behavior. Client toggles still need to map to settings the core can read.
This index covers commonly used mihomo fields. Graphical clients vary in which fields they expose, how they apply overrides, and what permissions they require. Check your client's documentation before migrating a configuration.
Routing rules use an ordered list to decide which outbound route handles each connection. Domain suffixes, destination addresses, and rule sets can describe different matching scopes; usually, the first match determines the outcome. Before making changes, confirm the client is in Rule mode, check that each referenced policy exists, and put the catch-all rule last. The difference from Global mode is not the number of proxies, but whether each connection follows rules to choose a route. When troubleshooting, check the matched rule in the connection log rather than relying on latency tests alone.
Supported platforms
Graphical clients with the required core capabilities
Proxy groups provide reusable outbound names between rules and proxies. A select group gives you direct control; URL-test and fallback groups choose available members according to their respective logic. Have rules reference group names, then have groups reference proxies or proxy providers—rather than listing large numbers of proxy names directly in rules. The test URL and interval affect selection, and a single latency result does not represent performance for every use case. Group names must match exactly; circular references and removed members can prevent a configuration from loading.
Supported platforms
Clients that support the relevant proxy group types
DNS settings determine how domain names resolve to addresses and can affect domain-based routing. Fake-IP mode uses virtual addresses to preserve domain associations, but compatibility depends on the app and network environment. Before making changes, distinguish the system resolver, the client's DNS listener address, and upstream DNS services; they are not the same setting. To troubleshoot resolution, first confirm requests reach the core, then check upstream connectivity and whether domain policies match. Enabling encrypted DNS alone does not prove that every app's DNS traffic follows the intended route.
Distinguish subscriptions that provide a complete configuration from providers that contain proxies only. A full configuration may include rules and proxy groups; proxy providers are usually referenced from a local configuration. Before importing, confirm the response is a format your client supports—not a login page or a set of unconverted links. Subscription URLs may contain account identifiers, so remove them before sharing logs. To preserve personal routing rules, maintain proxy sources separately from local rules so remote updates do not overwrite your changes. After a successful refresh, check that proxies and proxy groups actually loaded.
Supported platforms
Clients that support subscription imports or provider references
TUN mode routes traffic through a virtual network interface, making it useful for apps that ignore system proxy settings. The difference is the point at which traffic is intercepted; enabling TUN does not automatically solve routing or DNS issues. Desktop clients often require a service or elevated permissions, while mobile platforms are constrained by their network extension systems. Get the standard proxy route working first, then check auto-routing, DNS interception, and LAN access one at a time. If other networking tools are running, check route priorities to prevent multiple virtual interfaces from intercepting the same traffic.
Supported platforms
Depends on client permissions and network stack implementation
Overrides separate subscription-provided settings from personal preferences, making it possible to set local ports, add rules, or adjust DNS. Overrides are usually applied by the client during loading; do not assume every client supports the same top-level fields or scripting interfaces. During migration, check how mappings are merged, whether lists are appended or replaced, and where the generated configuration is saved. Change one type of setting at a time and check the effective configuration after reloading. Editing a cached file directly may work temporarily, but a subscription refresh or client restart may replace it.
Supported platforms
Clients with merge, override, or scripting support
Related YAML fields
Depends on the client; check the final rules and dns
On the download page, select your operating system, then check the processor architecture and installer format. After installation, open the client's configuration and logs pages to see where configurations are loaded and errors appear. If another proxy tool is running, note its settings and quit it first to avoid conflicts with ports and system proxy settings.
You don't need to enable every networking option at once. Keep the default listening scope, confirm the core starts normally, then choose system proxy or TUN based on the apps you use. Grant permissions only after you understand why they are needed.
02
Import a configuration and choose a policy
On the configuration page, paste a subscription URL from a trusted source or import an existing YAML file. Once downloaded, set it as the active configuration and check that proxies and proxy groups appear. If the import is listed but no proxies are available, check the format and loading logs before repeatedly toggling the system proxy.
Next, open the proxy page, select the proxy group and proxy you want to use, and confirm the client is in Rule mode. Importing a configuration sets up the relationship between rules and outbound routes; the client does not create a remote proxy service.
03
Route traffic and check its path
Enable the connection method suited to your system, visit a site you know is reachable, then check the domain, matched rule, and actual outbound route on the connections page. Speed tests only reflect their own requests; web access, DNS results, and connection logs together provide a fuller verification.
If something goes wrong, troubleshoot layer by layer: local network, system clock, subscription content, proxy connection, and DNS. Change one variable at a time and record the result. After quitting the client, check that the system proxy has been restored so apps aren't still pointing to a closed local port.
SOURCE / OPEN-SOURCE ECOSYSTEM
Where the core and interface responsibilities begin and end
A client name is not a protocol. Configuration syntax is not a service source.
Clash Home is a Chinese-language reference site, not the publisher of any client project. Download options, field explanations, and tutorials cover different layers; keep those distinctions in mind as you read.
After the original Clash and some early graphical clients stopped being maintained, the ecosystem did not become a single replacement product. mihomo carries forward and extends related core capabilities, while graphical projects such as Clash Verge Rev and FlClash provide their own interfaces and system integrations. Screenshots, button names, and default field values in older guides may not apply to current clients. When they differ, follow the documentation for your project and check the effective configuration.
So when searching for the “official Clash site,” first identify what you're looking for: a core repository, a graphical client's homepage, and a subscription provider are different sources. A reference site can offer indexes and explanations, but cannot make compatibility commitments on behalf of project maintainers. Archived clients can be useful for understanding existing setups; for new installations, consider alternatives that are still maintained.
The core handles execution; the client handles organization
The core handles protocol connections, DNS, rule matching, and outbound selection. Graphical clients handle configuration imports, policy switching, logs, and settings such as the system proxy. Multiple interfaces can use the same core, and a client may change its core components in an update. To determine whether a feature is available, check the core's capabilities, whether the client exposes it, and whether the operating system grants the necessary permissions.
Configuration files sit between the two: they describe intended behavior but do not guarantee that system traffic reaches the core. A client showing “running” only means some components have started. To confirm traffic is actually being handled, check connection records and system settings. That's why the tutorial separates “configuration imported” from “connection verified.”
Open-source references and reporting issues
mihomo's source code and license are available in its public repository; the core is licensed under GPL-3.0. Check each graphical client's project documentation for its license. Open source means implementation and change history can be inspected; it does not mean distributed files, subscription sources, and remote proxies share the same maintainer. When evaluating options, consult release notes, issue discussions, and documentation changes rather than relying on unverified download counts or ratings.
Before reporting an issue, identify whether it occurs in the interface, core, or subscription content. Include your operating system, client name, reproduction steps, and redacted error details. Never share subscription URLs, proxy passwords, or control interface credentials in public screenshots or logs. Relevant context is more useful than pasting an entire configuration.
Manage updates and configuration separately
Client updates, core updates, subscription refreshes, and rule set updates are four different operations. The first two change the software; the latter two change the data it reads. A successful rule update does not mean the client itself has been updated. After a client upgrade, check that personal overrides are still merged in the intended order. Before making changes that affect behavior, keep a recoverable copy of your configuration and adjust settings one at a time.
The homepage does not display fixed version information. Installers, available architectures, and maintenance status are listed on the download page; field definitions are in the YAML guide. Keeping “which app should I choose?” separate from “how do I describe network behavior?” helps avoid confusion caused by old screenshots, outdated filenames, or differences between clients.
Choose your platform first, then compare clients and architectures. Clash Plus is the recommended first choice for supported platforms on the download page. For a particular desktop interface or Linux package format, also consider Clash Verge Rev and FlClash. The full list includes maintenance notes for archived projects to help identify names found in older guides.
Check your operating system and processor architecture before choosing an installer. Clash Plus, Clash Verge Rev, and FlClash are good starting points. If you're looking for a Clash for Windows alternative, pay close attention to maintenance status and configuration migration.
System proxy settings affect only apps that follow them. For broader traffic coverage, review TUN service permissions. If a UWP app behaves differently, check loopback restrictions separately instead of switching all your proxies.
Choose the right architecture for Apple Silicon or Intel devices. Compare Clash Plus, Clash Verge Rev, and FlClash by interface and configuration management; if you're using the legacy ClashX Meta, note its archived status.
If the first launch prompts you about system security or network permissions, verify the app's source and why it needs access. System proxy settings, network extensions, and other VPN tools can conflict. When troubleshooting, first identify which program is handling traffic.
Clash Android clients include Clash Plus, Clash Meta for Android, and FlClash; Surfboard is also listed on the download page. Supported configuration formats vary, so check your subscription type before importing.
Connecting usually requires system VPN permission. If the connection drops when the app moves to the background, check battery optimization and background activity restrictions. App routing also involves two separate layers: the apps covered by the system VPN and the core's routing rules.
The download page links to Clash Plus on the App Store and lists the project website, clashplus.io. Import a compatible configuration, then grant network access when prompted by the system. Available features depend on the app's documentation.
Don't move a desktop YAML configuration to your phone without checking it first. File paths, listening addresses, scripts, and system routing fields may differ by platform. Keep the basic proxies and rules, then verify additional settings one at a time.
Desktop users can explore Clash Verge Rev and FlClash, choosing a package supported by their distribution. Server and router users can find mihomo in the core section of the download page and manage configuration directories, processes, and network permissions themselves.
Terminal programs may not use proxy settings from the desktop environment. Check environment variables and program arguments separately. Before enabling a virtual interface, review routes, firewall rules, and service permissions; don't assume desktop client steps apply to a server.
Each article tackles a specific problem, adding practical context that doesn't fit neatly into field definitions. For a first-time setup, start with the quick-start guide, then explore interface explanations, sync options, or connection troubleshooting as needed. There's no need to change every advanced setting before establishing a basic connection.
Compare several ways to sync configurations across devices, with trade-offs in update speed, privacy, and platform compatibility, plus recommended setups.