Clash System · mihomo Setup Manual

Clash ClientDownloads & Setup Guide

Choose a client for your platform, from importing a subscription to setting up routing rules. Follow the steps for mihomo configuration and connection checks.

  • Open source
  • YAML configuration
  • Documentation

Configuration guide

Clash Configuration Structure
From Rules to Network Entry Points

The client imports, edits, and displays configuration; the core parses it and handles connections. Start by distinguishing listener ports, proxy groups, and matching rules, then adjust the network mode. This makes it easier to pinpoint the relevant layer when troubleshooting. The snippets below explain individual fields; they are not complete, ready-to-use subscriptions. Node details must come from an existing configuration.

config.yaml
rules:
  - DOMAIN-SUFFIX,github.com,PROXY
  - GEOIP,CN,DIRECT
  - MATCH,PROXY

Rules are checked from top to bottom, and the first match determines the connection policy. Put specific domain rules first, then regional rules for direct connections, and use MATCH last to catch everything else. PROXY in this example must be a defined proxy group; DIRECT is the built-in direct policy. Unlike switching all traffic to one global exit, rule mode routes traffic based on its destination. After editing, reload the configuration and check the matched rule on the Connections page. Subscription updates may overwrite direct edits, so keep long-term rules in a client-supported override location.

Configuration index · Select a topic

Selecting a topic pauses automatic rotation. For full configuration field details, see From Beginner to Advanced.

Downloads

Choose a Clash client for your platform

Check your device's operating system and CPU architecture, then choose a GUI client that is still maintained. Clash Plus is the recommended starting point on supported platforms; on Linux desktop, compare Clash Verge Rev and FlClash. The download center also lists alternatives and archived clients to help with migration. An installer provides the software; subscriptions and working nodes must be obtained separately. Installing a client does not provide a proxy route.

For desktop browsers and everyday apps, start with Clash Plus. Compare Clash Verge Rev, FlClash, and other options if you need a different interface or configuration workflow. System proxy and service mode are separate settings. For your first connection, verify the system proxy before enabling TUN if needed.

Go to downloads

Before downloading, check System Information to see whether your Mac has an Apple Silicon or Intel processor. After installation, grant the network-related permissions requested by the client, then import your configuration. If your browser connects but terminal apps do not, check whether those apps use the system proxy instead of repeatedly changing subscriptions.

Go to downloads

Choose a mobile client such as Clash Plus or Clash Meta for Android. After importing, check the active configuration and proxy group, then authorize the VPN connection. For reliable background use, review battery optimization settings too. For per-app routing, distinguish which apps are sent through the proxy from the destination rules in your configuration.

Go to downloads

iOS

Open the Clash Plus App Store page from the download center. Product details are available on the official site at clashplus.io. After installing, import your subscription using an option supported by the app, then add the VPN configuration when prompted by iOS. Configuration field support varies by client, so check the actual import result when migrating.

Go to downloads

For desktop Linux, consider Clash Verge Rev or FlClash. For servers and routers, deploying mihomo directly may be a better fit. Before choosing a package, check your distribution, package manager, and CPU architecture. A command-line deployment requires you to manage the configuration directory, listener ports, service user, and service lifecycle.

Go to downloads

When migrating from Clash for Windows, back up your existing Profile and custom rules, then test how they import into the new client. Scripts, paths, and experimental fields in older configurations may not work unchanged. Do not enable system proxies or virtual network interfaces in two clients at once, or you may mistake a conflict for a node failure.

Browse all clients → Explore Clash for Windows alternatives →

First connection

Import a subscription, choose a route, verify the connection

For your first setup, follow one clear sequence: load the right configuration, route traffic through the client, then verify the actual exit. Keep the default ports and basic rules for now to avoid changing too many variables at once. This is a preview of the steps; the full guide covers button locations, system proxy settings, and common prompts.

  1. Import a subscription and select its configuration

    Paste an existing URL on the client's Configuration or Subscription page. Wait for it to download and parse, then set it as the active configuration. Once its name appears in the list, check that nodes or proxy groups have loaded. If the result is empty, check the subscription format and response first. A website URL, account page, and subscription URL are different things.

    Configuration files are often called Profiles. They can come from a remote subscription or be local YAML files. A remote update refreshes the associated data but does not guarantee that custom edits will be preserved. After importing for the first time, note the configuration name and source so you can tell which one is active when switching between profiles later.

    See how to import a subscription →
  2. Choose a proxy group and routing mode

    Open the Proxies page and choose an available node in the main proxy group referenced by your rules, or select a configured automatic group. Latency tests show how the test URL responds; they do not directly measure download speed or performance on every site. Start in rule mode, letting the configuration decide which destinations connect directly and which use a proxy. Then enable the system proxy or the mobile connection toggle.

    Global mode only changes how traffic that reaches the core is routed; it does not automatically capture traffic from every app. If an app does not use the system proxy, switching to global mode alone usually will not solve the problem. Check the app's proxy settings first. If needed, follow the guide to configure TUN rather than confusing routing mode with traffic capture.

    See how to set up the system proxy →
  3. Verify the route in connection logs

    Open a site that should use the proxy and check the client's Connections page for its domain, matched rule, and final policy. Then use a trusted exit IP lookup site to verify the request's exit, rather than relying on the color of a toggle. If a direct-connection site shows your local IP, that may be exactly what the rules intend; it does not mean the entire configuration is broken.

    If there is no connection record, check the system proxy, the app's own settings, or VPN authorization first. If a record appears but the request fails, check node availability and DNS. When asking for help, include the error time and relevant logs, but redact subscription URLs and account details. Checking each layer—entry, DNS, rules, and exit—is more effective than repeatedly reinstalling the client.

    See how to check a connection →

Open-source ecosystem

How Clash, mihomo, and clients fit together

Clash is often used as a general term for proxy tools that support this configuration format, but the core, GUI, and subscription service each have different roles. Understanding these layers helps identify which component provides a feature and avoids confusing client updates, node updates, and network route changes.

Project history and maintenance

After the original Clash project was discontinued, clients built on different cores continued to emerge. mihomo carries forward the technical direction of Clash Meta, providing proxy protocols, rule matching, DNS, and TUN features. Similar names do not mean the programs are the same. When downloading, check the client name, core type, and project maintenance status. Menus and fields in older online guides may have changed, so compare them with the current client interface.

The core handles connections; the GUI manages controls

mihomo can run as a command-line program. GUI clients package configuration switching, proxy group selection, log viewing, and system settings into an interface. Using the same core does not mean clients have identical features: subscription overrides, tray menus, and service installation may all be implemented by the client. For configuration syntax, consult the core documentation. For buttons, permissions, or startup issues, consult the documentation for the specific client.

Verify features against source code and documentation

mihomo source code, licensing, and public issue discussions are available in the MetaCubeX organization repositories. The core is licensed under GPL-3.0. The repository can help confirm whether a field is supported, whether an issue is known, and whether a change has entered the release process. The command below downloads source code only; it does not install a client or configure a proxy. To build and deploy mihomo, read the repository's build instructions and prepare the required development environment.

Manage software, configuration, and data updates separately

Client updates, core updates, subscription updates, and rule data updates are four different operations. Replacing the app does not necessarily refresh nodes, and refreshing a subscription does not necessarily change the core. Before upgrading, save a working configuration and any overrides. After upgrading, verify a basic connection before restoring additional settings one by one. If you encounter a compatibility issue, record the trigger and error fields, then reproduce it with a minimal configuration. Do not post an entire subscription containing credentials to a public issue tracker.

Clash System collects download links and setup guides; it does not provide proxy nodes. Route availability, data limits, and subscription access are determined by the relevant service provider. Before use, understand local laws and network policies. On a work or campus device, follow its management policies when changing proxy or routing settings. Examples in this guide explain configuration structure and do not include working routes.

Recent articles

Subscription imports and deployment notes

Once your basic connection works, explore guides for the issues you encounter. Subscription format determines how to import it; deployment method determines permissions and where the client runs; connection checks help confirm each change has the intended effect. These articles cover practical details and do not replace your service provider's guidance on nodes, data limits, or account status.

Download the latest version of Clash