mihomo coreOpen-source clients, regularly updated

Clash MetaApps & guides

Built on the mihomo core, this guide covers everything from subscription imports to routing rules, with proxy, DNS, and TUN settings explained section by section.

Open-source coreConfiguration docsYAML configuration

CONFIGURATION INSPECTOR

mihomo configuration overview

A configuration determines how traffic enters the core, gets resolved, matches rules, and exits. First confirm that requests reach the core, then check the matched rule and policy group. Troubleshooting one configuration section at a time makes the cause easier to identify than changing several settings at once.

RULES / FIRST MATCH

First match wins

Rules are evaluated from top to bottom, and the first match is handled by its assigned policy. Domain suffix rules work well for clearly defined groups of sites, while geographic IP rules match by address location. The final MATCH rule catches everything else. If a site uses the wrong route, check its domain, matched rule, and final policy in the connection log—not just the currently selected node. Rule mode uses this list; Global mode applies the global policy instead. Switching modes does not fix a broken rule. The example references a PROXY policy group that must be defined first, and GEOIP rules also require usable geographic IP data.

mode: rule
rules:
  - DOMAIN-SUFFIX,github.com,PROXY
  - GEOIP,CN,DIRECT
  - MATCH,PROXY

CLIENT ENTRY POINTS

Clash client downloads by platform

Choose your operating system first, then your processor architecture. A GUI client manages configuration and system traffic capture; the core evaluates rules and forwards requests. Check separately whether the installer runs on your system, what permissions TUN needs, and whether the configuration format is supported. The client’s name alone does not tell you.

Windows

Start with a GUI client such as Clash Plus. For your first connection, verify the system proxy before enabling TUN if your apps need it. If you see a port conflict or a service permission prompt, troubleshoot your local environment instead of repeatedly changing subscriptions.

Visit download page

macOS

Choose an installer for Apple Silicon or Intel. System proxy and network extension permissions are managed in different places, so follow the prompts after installation. After waking from sleep or switching networks, check that routing and DNS still work.

Visit download page

Android

Check your device architecture and installation permissions, then allow the VPN connection after importing your subscription. Background battery restrictions may interrupt the service. If the connection drops when the screen locks, check battery settings and make sure another VPN app is not using the traffic-capture interface.

Visit download page

iOS

Use the download page to visit the Clash Plus listing in the App Store. The official site is clashplus.io. Before importing, confirm that the configuration format is supported. On first launch, approve the VPN prompt and then verify the rules and exit route.

Visit download page

Linux

Choose a GUI client for desktop use, or check the core options for servers and routers. Before installation, confirm the package format for your distribution, processor architecture, and service account. A desktop proxy setting does not necessarily capture traffic from the entire system.

Visit download page

The download page lists clients, architectures, and system requirements by platform. If you already use another client, export your configuration before migrating and note your local rules, overrides, and policy selections. The same subscription may be converted differently by different tools; similar-looking interfaces do not guarantee identical configuration handling.

Clash for Windows is no longer maintained, though old installers may still appear in tutorial screenshots. For new deployments, prioritize actively maintained options; use archived clients only when you have a specific compatibility need. After migrating, disable the old tool’s startup and system proxy settings to prevent both processes from competing for ports or repeatedly changing system settings.

View all clients →

FIRST CONNECTION

Import a subscription and connect for the first time

Installing a client does not mean your traffic is going through a proxy. Follow the sequence “Load configuration → Choose a policy → Route traffic and verify” to distinguish subscription download issues from node connection and local traffic-capture issues. The interfaces below illustrate settings only; exact menu names depend on your client.

01

Import a subscription

Open the configuration or subscription page, add a remote configuration, and paste your existing URL. Once the download succeeds, select the configuration and confirm that its policy groups appear. Saving the URL without activating the configuration will not change your current connection.

If the response is a web page, a sign-in prompt, or empty, check with your subscription provider that the link is correct and your account is active. Do not submit URLs containing account identifiers to public conversion sites or post subscription contents in public discussions.

02

Choose a rule mode and exit route

For your first connection, select Rule mode and choose a node in a policy group that your rules actually reference, then run a test. A latency test measures the response to a specific target; it does not represent the speed you will get on every website.

A timed-out test does not necessarily mean the node is unusable; the test target or DNS path may be the problem. Check actual site access and logs. Verify your connection using one fixed exit route before trying automatic testing or fallback policies.

03

Route traffic and verify the connection

First verify the connection in a browser using the system proxy. For apps that ignore proxy settings, enable TUN if needed. Open a website and check the connection log to confirm that the matched rule, policy group, and final exit route are as expected.

When verifying, check browsers, terminals, and other apps separately. Terminal tools may need proxy environment variables set manually. An IP lookup only shows the route used for that request; it does not prove that all traffic follows the same path.

Read the full guide →

SOURCE & MAINTENANCE

How the open-source core and clients differ

How Clash Meta relates to mihomo

Clash Meta was an earlier name for this core branch; the core project is now maintained as mihomo. Search results, configuration guides, and some client names may still use Meta. To determine whether a guide applies, check the core actually running and the configuration fields it supports—not just the window title. Button labels in older screenshots may have changed.

mihomo handles configuration parsing, proxy protocols, rule evaluation, and DNS. GUI clients add subscription management, tray menus, system proxy settings, and service management. Client updates and core updates are separate. If a configuration key is not recognized, check the running core version and load logs before deciding which component to update.

Verify behavior in the source code and documentation

Code, licenses, issue trackers, and release notes in public repositories are useful sources for verifying how a project works. If a guide does not match the interface, check the relevant project documentation and release history to see whether a setting was renamed, a default changed, or new permissions are required. This site provides a Chinese-language guide index; it does not replace upstream documentation on feature support.

View the mihomo upstream repository ↗ · About this site’s coverage →

Manage configuration and service providers separately

A proxy core or client is not a proxy service. Providers determine the nodes, service status, data allowance, and account validity included with a subscription; downloading a new client will not renew an expired subscription. A Clash proxy subscription is a configuration endpoint supplied by a service provider. Check its source, supported protocols, and terms before use—it is not a network service included with the core project.

Rule lists, geographic IP data, and proxy subscriptions each have their own update cycles. Before updating Clash GeoIP data, check which data format and file path your configuration uses. When updating a subscription, check that the node list and local overrides are preserved. Run these updates separately so you can roll back to a known-good state if something goes wrong.

Record settings before updating, verify afterward

Keep a copy of your working configuration, important overrides, and startup arguments. Read the change notes before updating. Afterward, check that the app starts and loads the YAML, then verify DNS, commonly used websites, and any apps that need traffic capture. If something behaves differently, save sanitized error details. When reporting an issue, include your operating system, architecture, client, and core environment—never share real subscription URLs, passwords, or full account details.

SOURCE / GIT CLONE

Clone the source to review the implementation and track changes. Running clone only downloads the repository; it does not install a client. Most desktop users can use the installers on the download page.

git clone https://github.com/MetaCubeX/mihomo.git

CONFIGURATION NOTES

Connection checks and troubleshooting

Once the basic configuration is working, use the guides below for specific symptoms. A system proxy that has no effect, a misrouted rule, and an unavailable node are different problems. Preserve the current setup while troubleshooting, find where the request diverges from what you expect, and change only the relevant setting.