Mobile setup · mihomo ecosystem

Clash MobileClient Downloads & Setup

From importing subscriptions to rule-based routing, follow your phone’s steps for permissions and background settings, or explore desktop setup.

  • Chinese-language guides
  • YAML configuration
  • Open-source core engine

01 / CLIENTS

Clash client downloads

Browse all clients →

Start with your device’s operating system, then check which core engines and configuration formats each client supports. Clash is an ecosystem, not a single app, so different interfaces may not offer identical features. After importing the same subscription on a new device, check proxy group names, DNS settings, and how the app routes system traffic. New users can follow the Clash Plus guide; if you already have a configuration, back it up before considering a switch.

Windows

A good fit for browsers, office apps, and desktop software. Start by testing the connection with the system proxy. If you need to route traffic from apps that ignore system proxy settings, consider TUN mode, which uses a virtual network interface. Before downloading, check your processor architecture. Quit the old client before enabling another proxy to avoid multiple apps repeatedly changing system settings.

Go to downloads

Android

On Android, first grant VpnService permission. This Android system VPN interface lets the client route device traffic; it does not mean you are connected to a remote node. After importing a subscription, allow the app to run in the background. If the connection drops when the screen locks, check battery optimization, auto-start permissions, and conflicts with other VPN apps.

Go to downloads

iOS

Open Clash Plus in the app store from the downloads page, or visit its official website at clashplus.io. After importing a configuration, follow the app’s prompts to add a VPN configuration and approve it through iOS. This system VPN configuration is different from a manually installed profile. If you encounter an unfamiliar profile, verify its source and purpose first.

Go to downloads

macOS

Check About This Mac to see whether your Mac has Apple silicon or an Intel processor, then choose the matching installer. System proxy and TUN have different permission requirements; verify the app’s source before installing helper services. If websites stop loading after you switch clients, check for leftover ports in your network settings before adding another proxy configuration.

Go to downloads

Linux

For desktop use, start with a graphical client; consider deploying the mihomo core separately for servers and routers. Match the package format, processor architecture, and service permissions to your system. Command-line tools may not use desktop proxy settings, so check environment variables separately. Before enabling TUN, understand which routes and DNS requests it will handle.

Go to downloads

02 / SETTINGS

Rule-based routing and mobile network settings

Before changing settings, understand what each one controls. The sections below cover common options: rules determine where traffic goes, proxy groups choose an outbound connection, and TUN plus system permissions determine which traffic reaches the core engine. The snippets illustrate syntax; they are not complete configurations with nodes. Setting names may also vary between client interfaces.

Rules are evaluated in order

In rule mode, the client checks conditions such as domains and addresses from top to bottom, then sends matching traffic to the assigned policy. Put specific domains that should connect directly first and the fallback MATCH rule last; the referenced policy must exist. Unlike global mode, rule mode doesn’t send every connection through the same outbound route. If one app misbehaves on your phone, check the connection log to see which rule matched before changing it. Subscription updates may overwrite rules edited directly, so use the client’s supported override or merge feature for lasting changes.

mode: rule
rules:
  - DOMAIN-SUFFIX,example.com,DIRECT
  - IP-CIDR,192.168.0.0/16,DIRECT,no-resolve
  - MATCH,DIRECT

This snippet uses a direct connection as its fallback and demonstrates rule order only. Set proxy policies to match names in your own configuration.

03 / QUICK START

Import a Clash subscription in three steps

For your first setup, get one complete path working: load a usable configuration, establish the system tunnel, and confirm that your target app can connect. Keep the subscription’s DNS and rules for now. Don’t combine snippets from multiple guides in one configuration at once. Test after each change so you can track down issues later.

  1. Get your subscription and import it

    Copy the subscription URL from a trusted provider. In the client’s configuration page, import it from URL and set it as the current configuration. If the client reports a format error, check that the response is a supported configuration—not a login page or an expired-subscription notice. Never post your subscription URL in a public discussion.

  2. Choose a rule mode and grant permissions

    Use rule mode, choose a working outbound route in a proxy group, and start the connection. On a phone, approve the VPN configuration when prompted; on Android, also allow background activity. System proxy, TUN, and rule mode are separate settings. You don’t need to enable every switch “just in case.”

  3. Test the app and screen-lock behavior

    First, open a site or app you use regularly and check the connection log to confirm the expected policy matched. Then switch between Wi-Fi and cellular data, and test again after locking and waking the screen. If the connection drops only while locked, check battery restrictions first. If only one domain has a problem, inspect its rules and DNS before reinstalling the client.

Read the full guide →

04 / OPEN SOURCE

Clash core engines and open-source ecosystem

When choosing a client, it’s more useful to understand the project, core engine, and configuration source than to judge by the interface alone. This site brings together download links and Chinese-language guides; it doesn’t replace upstream release notes or provide proxy nodes. A client’s capabilities depend on its core engine, system limitations, and configuration.

How the original Clash, Meta, and mihomo relate

The original Clash established a common configuration approach for rule-based proxies. Clash.Meta expanded on it, and its related core engines later continued under the mihomo name. So “supports Clash configuration” doesn’t mean every field is interchangeable. Check core engine support for newer protocols, rule types, and network stack options.

When migrating an older configuration, keep the original subscription and check startup logs for the specific field causing an error. Get the basic configuration to load before restoring custom rules. Don’t delete an entire DNS or routing section just to clear one error; the client may start, but traffic could take a different route.

See how the core engines differ →

How the client interface and core engine work together

Graphical clients provide an interface for importing subscriptions, choosing policies, setting system proxies, and managing permissions. Core engines such as mihomo execute the network configuration. The same core engine can work with different interfaces, and a client may change its core engine or defaults in an update. Screenshots alone can’t confirm that two setups behave identically.

Phones have additional system constraints. Android battery management may stop background services, iOS VPN configurations require system approval, and desktop clients may rely on helper services. To troubleshoot, first distinguish between an interface that won’t start, a core engine that can’t load its configuration, and a system tunnel that hasn’t been established.

Browse networking and system terminology →

Open-source licensing and source code

The mihomo project is licensed under GPL-3.0. Its public repository includes source code, issue discussions, and release history. An open-source license sets the terms for using and distributing code; it doesn’t mean every client using the core engine has the same interface, features, or maintenance schedule. Read the relevant project’s license file before modifying or redistributing its code.

Most users don’t need to compile the source code to use the client. Cloning the repository makes sense if you want to study configuration behavior, reproduce a bug, or contribute to development. Before reporting an issue, remove subscription URLs, node passwords, and personal network details. Include only the smallest configuration and logs needed to reproduce it.

Browse the mihomo project repository ↗

Keep a fallback when updating or migrating

Client updates, core engine updates, and subscription updates are three different things. A client update may change system integration, a core engine update may change how fields behave, and a subscription update may replace nodes and rules. If something breaks, first identify which layer changed recently. Don’t roll back the app, reset the network, and reimport every configuration all at once.

Keep a working configuration and a separate record of overrides. After an upgrade, check startup, DNS resolution, proxy groups, and your target app in order. A client that’s no longer maintained is better treated as a migration source than a default choice for a new device. Once the migration is complete and stable, remove the old app and any leftover proxy settings.

See migration paths from discontinued clients →

Clone the mihomo source code

Git must already be installed locally. This command downloads the source code only; it doesn’t install a graphical client or create a proxy configuration. See the repository documentation for build instructions and development dependencies.

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

05 / NOTES

Clash technical notes

Browse all articles →

Once your basic connection works, explore client selection, migration, and proxy group setup. Each article focuses on a specific issue, helping you avoid rebuilding your whole setup to fix one problem. Keep your original configuration before making changes, and adapt examples to your client, core engine, and subscription.