Open-source cores · GUI clients for every platform

Clash Chinese CommunityClient Downloads & Setup Guides

Choose a client for your device and learn how to import subscriptions, configure routing rules, and set up TUN.

Configuration Guidesmihomo Core ReferenceChoosing a Client

Configuration Fields and Setup Steps

Four Steps to Configure Clash

The GUI manages configurations; the core processes connections according to them. On your first run, get one configuration loading successfully before changing the mode, rules, or traffic routing. Change one thing at a time to make problems easier to diagnose.

Start with the subscription import guide. Get a compatible configuration URL, import it, and check for parsing errors. Then select an outbound that you know works.

Importing Subscriptions
and Updating Configurations

A subscription URL usually provides a configuration or proxy nodes; it isn't a client installer. Open the client's configuration manager, paste the URL from your provider, download it, and set it as the active configuration. Check for parsing errors first, then make sure you can select an outbound in a policy group. Clients don't all support the same subscription formats, so the URL's appearance alone can't tell you whether it's compatible. Remote updates may overwrite manual edits. Keep rules you want to preserve in the client's supported override or merge feature. Subscription links may contain access credentials, so hide the full URL before sharing logs or screenshots.

View the relevant guide →
config.yaml · Configuration Entry Point
mixed-port: 7890mode: ruleallow-lan: falselog-level: info

Rule Mode
and Policy Group Selection

Rule, Global, and Direct determine how connections are assigned to outbounds; they don't automatically route traffic from every app through the client. For everyday traffic routing, use Rule mode and select an outbound in the relevant policy group. Global mode can help with a quick comparison, but it doesn't replace checking system proxy and app settings. Direct sends connections handled by the core straight to their destinations. After switching modes, test with a new connection—existing long-lived connections may not switch routes immediately. Policy group names are set by the configuration author. PROXY in an example isn't a reserved name; references must match the names in your configuration, or it may fail to load.

View the relevant guide →
config.yaml · Outbound Policies
mode: ruleproxy-groups:  - name: PROXY    type: select    proxies: [DIRECT]

Custom Rules
and Match Order

Rules are checked from top to bottom, and the first match determines which policy handles a connection. To make an exception for a site, put its specific domain rule before broader rules and check that the target policy exists. DOMAIN-SUFFIX matches a domain and its subdomains; MATCH is commonly used as the final fallback. If a page won't load, don't keep adding rules blindly. Check the connection log for the destination, matched rule, and outbound first, then distinguish a DNS issue from an outbound failure. When combining remote subscriptions with local edits, check whether the client merges, prepends, or replaces rules so updates don't remove exceptions or change their order.

View the relevant guide →
config.yaml · rules
rules:  - DOMAIN-SUFFIX,github.com,PROXY  - IP-CIDR,192.168.0.0/16,DIRECT  - MATCH,PROXY

System Proxy
and TUN Routing

Apps that follow system proxy settings use the system proxy; some command-line tools and games need to be configured separately. TUN routes selected traffic through a virtual network interface and may also require service permissions, routing, and DNS settings. For your first connection, test the browser with the system proxy, then enable TUN if your apps need it. There's no need to change every network option at once. If enabling TUN makes local devices unreachable or causes DNS issues, turn off the new feature to compare results and check for conflicts with other virtual network adapters or proxy services. Launch at startup only starts the client. Check separately whether it loads the configuration and restores the proxy setting automatically.

View the relevant guide →
config.yaml · Virtual Network Interface
tun:  enable: true  stack: mixed  auto-route: true  auto-detect-interface: true

Find the Installer for Your Device

Clash Client Downloads

Choose your operating system first, then check the processor architecture and system requirements. Desktop and mobile installers aren't interchangeable, and core support can vary even with the same configuration. The download center lists clients, maintenance status, and installation guides by platform. Most desktop users can start with a GUI client; there's no need to install a command-line core separately.

Windows

Start with Clash Plus, then compare Clash Verge Rev, FlClash, and Clash Nyanpasu based on your preferred interface. If you're looking for a Clash for Windows alternative, back up your configuration and turn off the old client's system proxy and startup options to avoid port conflicts. Install the TUN service when prompted if you need it, and don't run multiple clients that route network traffic at the same time.

Go to Downloads

macOS

Check your chip type in About This Mac, then choose the Apple Silicon or Intel installer. Options include Clash Plus, Clash Verge Rev, and FlClash. The older ClashX Meta is archived for existing users. If the system proxy is on but an app still can't connect, check your network service and the app's own proxy settings.

Go to Downloads

Android

Check the configuration compatibility of Clash Plus, Clash Meta for Android, FlClash, and Surfboard. Most newer phones use ARM64, but verify your device's specifications. On first launch, grant the system VPN permission. If connections often drop in the background, check battery optimization and background activity permissions instead of assuming every drop is caused by a proxy node.

Go to Downloads

iOS

The download center links to Clash Plus on the App Store and lists its official site, clashplus.io. After installation, follow the in-app steps to add a configuration and grant VPN permission. Desktop feature names may not match the mobile interface. Check the subscription format before importing, and test connectivity on both Wi-Fi and mobile data after switching networks.

Go to Downloads

Linux

For a Linux desktop, start with Clash Verge Rev or FlClash and choose the package for your distribution. For servers, routers, and headless systems, see the mihomo core section. Before installing, check the architecture, service permissions, and desktop dependencies. Command-line tools often also need proxy environment variables; desktop system proxy settings may not carry over to existing terminal sessions.

Go to Downloads

Project Sources and Further Reading

How Clash, Meta, and mihomo Are Related

Clash refers to a proxy core and its configuration ecosystem, not to one particular GUI. Understanding the distinction between the client and the core is more useful than comparing software names alone. This site organizes download links and guides; it isn't affiliated with the client development teams. Refer to each project's documentation and the specific build for details about supported features.

From the Original Configuration Ecosystem to Community Cores

The original Clash established common configuration fields, policy groups, and rule workflows. Community projects later expanded the feature set in different directions. Clash.Meta was one major branch, and its successor project continues under the name mihomo. Meta in older articles and mihomo in newer documentation often refer to this same lineage, but that doesn't mean every legacy configuration is fully compatible. When following a guide, check which core it covers and which core your client actually uses.

Protocol types, DNS options, and rule features can change as cores evolve. A configuration that works in one client may use fields another client doesn't support. If an import fails, note the reported field and core name, then check the relevant documentation. That's usually more effective than repeatedly changing subscription conversion settings. For protocol selection and compatibility, read the Protocol Guide.

GUI Clients and Cores Update Separately

GUI clients provide subscription management, policy group selection, logs, and system integration. The core parses configurations, establishes connections, and applies rules. A client may bundle its core or offer a separate core update. A new button in the interface doesn't mean every core supports the feature, and a new core field doesn't guarantee the interface already has a setting for it. Keeping these two layers separate when troubleshooting gives you a clearer picture.

Read the project's release notes before updating, paying attention to system requirements, configuration migration, and permission changes. Keep a working copy of your configuration, then update and test the connection. Discontinued clients can help explain older guides but shouldn't be used as a reference for new features. The comparison page covers interface, platform, and day-to-day management differences; the download page provides installers. Keep choosing a client and installing it as separate steps.

View mihomo Source Code and Documentation

The project repository includes source code, release history, and issue discussions. The command below only clones the repository to your computer; it won't install a client or change your system proxy settings. Most users don't need to build from source. To check how a field works, start with the project documentation and existing discussions.

Open the MetaCubeX/mihomo repository ↗
git clone https://github.com/MetaCubeX/mihomo.git

Use Connection Logs to Find the Cause

A latency test returning a result only shows that one test request completed; it doesn't verify access from a real app. To investigate a problem, first check whether the app's connection appears in the log. If not, check the proxy entry point. If it appears but uses the wrong policy, check the mode and rule order. If the policy is correct but the connection still fails, check DNS, the outbound, and the destination service. Logs may contain domains, subscription URLs, or account details. Before asking for help publicly, share only the relevant lines and remove sensitive information.

“Free Clash nodes” aren't built into the client. The client, configuration file, and connection service are separate components; installing the software doesn't provide a working outbound. Before importing a configuration from an unfamiliar source, find out who provides it and what it's for. Don't choose a long-term service based on a single latency test. See Key Terms for the basics, or follow the steps in Troubleshooting to diagnose a connection issue.

Community Articles

Client Comparisons and Configuration Guides

Once your basic connection works, explore advanced topics as needed. These articles focus on settings and steps you can verify: each explains when to use a feature and which settings need to change together. Before changing shared proxy access, service permissions, or system network settings, keep the original configuration and verify the new setup before relying on it.