Skip to content
Clash ecosystemClients · Setup · Core

Clash GuideDownloads & Setup

Choose a client for your system, start with importing a subscription, then learn how to configure routing rules and the mihomo core.

Open-source coreMulti-platform clientsEnglish guides

Import subscriptions, route traffic,
and enable TUN

First make sure the configuration loads, then decide how traffic enters the core and which rule selects its route. The examples below illustrate common settings without connecting to a real service; menu names vary by client.

Clash · Profiles

Remote profile

This example URL is not a subscription. Use your own configuration in the client.

Load full configuration

In the client’s Profiles or Subscriptions page, paste the URL provided by your service and select the profile after it downloads. A complete Clash YAML can include proxies, proxy groups, and rules; a single-node link usually contains only connection details and cannot replace a full routing setup. If import fails, check whether the URL has expired and whether the response is valid YAML, then confirm that the core supports the protocols it uses. Updating a remote profile may overwrite manual edits, so keep persistent rules in the client’s override or merge settings. Subscription URLs contain access credentials and should not be shared publicly.

Profiles, traffic entry points, and routing policies are separate layers. A subscription provides nodes and rules; the system proxy or TUN determines which app connections enter the core; proxy modes and groups decide which route those connections take. Set them up in that order so you can troubleshoot one layer at a time instead of changing multiple switches at once.

Follow the steps to complete your initial setup →

Choose a Clash client for your system

The GUI client handles subscriptions, tray menus, and system integration; the core handles protocol connections and traffic routing. Choose an installer for your device, then check that it supports the protocols and features you need. Similar-looking interfaces do not guarantee identical core capabilities.

Windows

Start by checking out Clash Plus, or choose Clash Verge Rev, FlClash, or Clash Nyanpasu based on your interface preferences. Before downloading, confirm your operating system and processor architecture. Being able to open the GUI does not mean the service required for TUN is installed correctly.

For everyday browsing, start with the system proxy. Set up TUN only after verifying your subscription and rules. If your browser loses internet access after you close the client, check whether the system proxy is still enabled before switching nodes. Clash for Windows is no longer maintained and is listed in the download page’s archive. Back up your local configuration before migrating, and avoid relying on an old core to parse newer protocol fields.

Go to downloads

macOS

For MacBook and other Mac devices, first identify whether you have Apple silicon or Intel, then choose the matching installer. Clash Plus, Clash Verge Rev, and FlClash are options to consider; check the download page and app documentation for supported macOS versions.

When launching the app for the first time, watch for system permission and network extension prompts. You usually do not need to configure the system proxy and TUN at the same time. If you want to use a proxy with terminal tools, check whether they read system proxy settings or configure a proxy address for the individual command. ClashX Meta is no longer maintained and is included for reference only; the name Meta does not guarantee support for every current mihomo feature.

Go to downloads

Android

Compare Clash Plus, Clash Meta for Android, FlClash, and Surfboard. Most recent phones use ARM64, but check your device’s actual architecture. Subscription format support varies by app, so a file extension alone cannot tell you whether a configuration is compatible.

Mobile clients usually route connections through the system VPN interface. Approve the permission request on first launch; other VPNs in the same user environment may conflict. If the connection drops when the screen locks, check battery optimization and background activity permissions before investigating the node. Settings for per-app routing, LAN bypass, and DNS vary by client. After importing a desktop profile, verify how much traffic the mobile app actually captures.

Go to downloads

iOS

For iPhone and iPad, visit the Clash Plus App Store page from the download page. The project website is clashplus.io. Check the system requirements listed in the App Store before installing, then follow the app’s prompts to add a VPN configuration.

The system proxy toggle on desktop is not the same as VPN authorization on mobile. After importing a subscription, check the proxy groups, rules, and configuration fields supported by the app, then verify the connection status and route. Support for the Clash format does not mean support for every desktop feature. Background operation, network changes, and system extensions remain subject to iOS behavior and the app’s implementation.

Go to downloads

Linux

For desktop Linux, compare Clash Verge Rev and FlClash, then choose a package format for your distribution. For servers, routers, or self-hosted setups, see the Mihomo Core section on the download page and choose a file for your processor architecture and deployment method. The core alone does not include a GUI for managing subscriptions.

Whether the desktop system proxy works with an app depends on the desktop environment and the app itself; command-line programs may need separate configuration. Before deploying the core, decide which account will run it and where configuration files and logs will be stored. TUN and route changes require the appropriate permissions. When changing routes on a remote server, keep a recovery path available. Restrict the external controller to localhost or a protected network; never expose it directly to the public internet.

Go to downloads

Installers, system requirements, and archived apps are listed in the download center. The home page does not show specific versions, to avoid confusing client updates with core updates.

Browse all clients →

Open-source ecosystem and how to choose a core

Clash is the name of a historically related ecosystem of cores and clients, not a single project publishing every app with Clash in its name. This site provides downloads and English-language guides. Check each project’s own records for its features, licensing, and maintenance status.

Original Clash, Meta, and mihomo

The original Clash established a YAML-based approach to defining proxies, proxy groups, and routing rules, and many GUI clients still use this configuration structure. After the original project stopped being publicly maintained, forks in the ecosystem continued to develop. Clash.Meta later continued development under the mihomo name, so references to Meta and mihomo in older guides are often historically connected. However, neither should be treated as equivalent to every app with Clash in its name. When reading an older guide, first determine whether it refers to a core, a GUI client, or a subscription format.

Clients typically embed or call a core, then add features such as profile downloads, system proxy settings, service management, and connection details. Changing the interface does not necessarily change protocol support, and replacing the core does not guarantee that the interface will expose its options. For most users, a reliable approach is to choose a client with clear maintenance information, then check which core it uses and where its features are configured. If you encounter an unfamiliar field, consult the documentation for that core instead of repeatedly changing indentation to make an old core accept new syntax.

Protocol support and configuration compatibility

Shadowsocks, VMess, Trojan, VLESS, Hysteria2, and TUIC use different connection parameters and transport methods; the protocol name alone does not predict real-world speed. Link quality, server configuration, packet loss, and device performance all affect results. UDP-based transports in particular require the network to allow the relevant traffic. A client recognizing the configuration fields does not guarantee that connection requirements are met. Choose a solution that supports the parameters provided by your service, then consider mobile network handoffs, battery use, and maintenance complexity.

Common node, proxy group, and rule fields in Clash YAML have remained fairly consistent, but older cores may not recognize newer protocols, DNS options, or rule data formats. A full configuration, a proxy provider, and a single-node link are different things. Converting a subscription may strip client-specific fields or break the relationship between rules and proxy group names. If import fails, use the logs to determine whether the issue is YAML parsing, unsupported fields, or a failed resource download. Passing syntax checks is only the first step in verifying a connection.

Maintenance history matters more than the name

To judge whether a project is suitable for long-term use, check its public source code, release notes, issue discussions, and whether its documentation stays current as features change. A client’s release schedule may not match updates to its embedded core, and rule databases are another independent resource. Updating the GUI, the core, and the subscription solves different problems; success with one does not mean everything else is up to date. The download page distinguishes currently maintained options from archived apps, which are best used for migration and reference with older configurations.

Before updating, keep a working copy of your configuration and overrides, and note the current proxy mode, DNS setup, and TUN status. After updating, reload the configuration and test commonly used apps, local services, and route selection. If something breaks, compare changes one at a time instead of resetting everything immediately. When reporting an issue publicly, include your operating system, client name, core, and redacted error details; this is usually more useful than simply saying that you cannot connect.

Verify connections and find documentation

A node latency test measures the connection to a specific test destination; it does not show that every website or app takes the same route. To verify that your setup is working, check the client’s connection records, matched rules, and actual route, then confirm whether the app reads system proxy settings or is routed through TUN. If only some apps have problems, check the entry point and the apps’ own proxy settings first. If only some domains fail, check DNS and rule matching to avoid unrelated changes.

If terms such as Fake-IP, proxy groups, rule providers, or UWP loopback are unfamiliar, start with the glossary, then follow a tutorial. The technical reference pages compare protocol design, core relationships, and subscription compatibility; consult them before switching clients or server setups. The sample windows on this site illustrate how settings relate to one another. They are not complete representations of every client on every system, and they do not replace checking real connections after installation.

Setup topics and troubleshooting order

Once you have made your first connection, explore the guides relevant to your issue. Proxy group selection, rule database updates, and node timeouts belong to different layers. Identify where the problem occurs before changing settings.