• Clients · Setup · Troubleshooting

Clash Downloads
& Setup Guide

Choose a client for your system, then work through subscription imports, rule-based routing, and TUN mode—from first launch to routine maintenance.

  • Open-source core
  • Chinese documentation
  • Cross-platform setup
COREmihomoClash Meta core and configuration concepts SOURCE / OPEN SOURCEGPL-3.0Explore the mihomo project and license CONFIGRule-based routingChoose an outbound policy based on the connection target

Configuration Help Desk / CONFIGURATION

Five steps to configure Clash

Start with a configuration that works, then adjust traffic coverage and routing rules as needed. The client provides the interface, the core handles connections, and the subscription supplies nodes and configuration data—these are three separate things. Installing the client does not provide a working proxy service by itself; you also need a valid configuration and an accessible server before connecting.

The key settings below follow the order you’ll encounter them in practice. Menu names vary slightly between clients, so focus on what each setting does rather than where a button appears. When troubleshooting, check each link in the chain: Is the configuration active? Is the right proxy group selected? Is app traffic reaching the core? Which outbound does the matching rule select?

After importing, make sure the configuration is active

Add the link from your service provider on the configuration or subscription page, download it, and select that configuration. Seeing a subscription name does not mean it’s active. Check that nodes and proxy groups appear on the proxy page, then test the connection. A subscription may contain nodes, rules, and DNS settings; what it includes depends on the provider’s format. If import fails, check the download status and configuration parsing logs first instead of repeatedly reinstalling the client. Subscription links often contain personal access tokens, so hide the entire URL in screenshots, support requests, and synced notes. For local changes, use the client’s override feature where possible to avoid losing them on update.

# Checks to run after importing
Configuration downloaded successfully
→ Select and activate the configuration
→ Confirm nodes and proxy groups appear on the proxy page
→ Select an available outbound
→ Try accessing a real destination

This code explains configuration fields and what to check; it is not a complete configuration with proxy nodes. If you already have a subscription, keep the original configuration and make small overrides. When writing a configuration manually, account for the relationships between proxy definitions, proxy group references, and rule targets. For a quick walkthrough, see the Getting Started guide; for field dependencies and next steps, see the complete manual.

Proxy mode and traffic coverage

Rule / Global / Direct

Mode determines how traffic leaves

Start with Rule mode, then select a node or automatic policy in the proxy group. Global mode is useful for brief comparison tests, but it won’t automatically route traffic from every app through the client. Direct is an outbound choice within the core; it does not turn off system proxy or quit the client.

If a browser works but a particular app doesn’t, first check whether that app appears in the connection log. If it does, check the rule and outbound. If not, look at the app’s proxy settings, environment variables, or TUN coverage. Separating these two cases usually gets you to the cause faster than repeatedly changing subscriptions.

System proxy determines which apps are routed

System proxy mainly works with apps that follow the system proxy settings. Command-line tools, games, and apps with their own network settings may need a proxy configured separately. TUN can extend traffic coverage, but it is still subject to system permissions, routing, and other network software; it cannot guarantee that every connection is handled the same way.

Also distinguish existing connections from new ones: some apps reuse existing connections, so after switching modes, reload the destination or reconnect before checking again. Record the mode, proxy group, and connection logs during testing to pinpoint which layer caused the change.

See how to choose a mode

Platform guides / CLIENT SHELF

Choose a Clash client for your system

For a first client, start with Clash Plus, then compare other options based on their interface and system support. Clients can differ in configuration management, permission requests, and service modes even when they use the same type of core. Choose an installer for your operating system and processor architecture. If it won’t open or reports an unsupported format, treat that as an installation issue—not a subscription problem.

The download page brings together client options, architecture-specific downloads, and installation instructions. Check it for current version details. If your current setup works reliably, there’s no need to migrate all your settings just to try a different interface. Back up your configuration, test the new client on its own, and only then decide whether to remove the old one. This helps prevent two clients from changing system proxy at the same time.

Start with Clash Plus, or compare Clash Verge Rev, FlClash, and Clash Nyanpasu. Check your system architecture before installing. On first launch, import a subscription and enable system proxy to test browser access.

If you need TUN, check the client service and administrator permissions. Respond to firewall prompts based on what the client actually needs; don’t disable your firewall entirely. If nothing works after enabling the proxy, check whether the local listening port is in use, whether the core has started, and whether the system proxy address matches the client settings.

Go to downloads

Clash Plus, Clash Verge Rev, and FlClash are good starting points; the archived ClashX Meta is better suited to exploring older setups. Choose the installer that matches your Apple Silicon or Intel processor.

System proxy, background services, and network extensions require different permissions. Review each prompt based on the client’s instructions. If your browser works but the terminal doesn’t, check whether your terminal tools use the system proxy. If you have another VPN, disconnect it before testing to avoid mistaking an adapter or DNS conflict for a faulty node.

Go to downloads

The download page explains how to choose between Clash Plus, Clash Meta for Android, FlClash, and Surfboard. Before importing, make sure the subscription format is compatible with your client. Being able to download a subscription doesn’t mean the client can parse every protocol it contains.

Grant VPN permission when prompted to start a connection. If it disconnects when the screen locks or stops working after you switch apps, check battery optimization, background activity restrictions, and persistent notification settings. Per-app routing can also change traffic coverage. When troubleshooting an app, check whether it’s excluded and test over both mobile data and Wi-Fi.

Go to downloads

Clash Plus is the recommended starting point for Clash on iOS. The download page links to the App Store and the official site, clashplus.io. After installing, import a supported configuration, then follow the system prompts to add a VPN configuration and start the connection.

After switching between Wi-Fi and mobile data, test real-world access again. If a configuration won’t import, check that the link returns content your client supports—not a web page or error message. Don’t rely on the VPN icon in the status bar to determine whether the service works; also check the selected policy and try accessing the destination site.

Go to downloads

For desktop use, compare Clash Verge Rev and FlClash, and check that the package format matches your Linux distribution. Server and router users can explore the mihomo core, but it doesn’t include a configuration management interface like a desktop client.

Check desktop system proxy, terminal environment variables, and background services separately. When running as a service, the configuration file location, user account, and permissions may differ from an interactive launch. Don’t enable LAN listening just to fix a local connection issue. If you do need to share access, set access controls and review your firewall rules.

Go to downloads
Browse all clients →

Linux penguin graphic: Font Awesome Tux, licensed under CC BY 4.0.

Project origins / OPEN SOURCE

How Clash, mihomo, and clients fit together

When choosing a client, it’s more reliable to understand where each project comes from and what it does than to go by the name alone. Clash Help Center organizes download links and usage guides; it is not the development team behind any of the clients. Check each project’s documentation for its features, license, and maintenance status. This site does not provide proxy servers, and a client cannot replace a working server or subscription.

Project history: similar names don’t mean the same product

Clash began as an ecosystem built around a rule-based proxy core, followed by graphical clients for different systems. After the original project was discontinued, the community continued developing compatible cores and interfaces. mihomo carries on the technical direction of Clash Meta. That’s why guides still mention Clash, Clash Meta, and mihomo—but the names are not interchangeable in every context.

Buttons, supported protocols, and configuration fields in older guides may have changed. If a configuration won’t load, check which client and core you’re actually using instead of relying on the desktop icon alone. Archived clients are useful for understanding older setups; for a new installation, look for a project that’s still maintained and supports your system.

Open-source ecosystem: clients, cores, and rules are maintained separately

Graphical clients handle subscription management, system proxy controls, and settings screens. The core handles protocols, routing, and DNS, while rule sets may come from separately maintained projects. A new setting in a client doesn’t mean every core supports a field with the same name. And a subscription that imports into one app may not be fully supported by another.

Open-source repositories help you trace how features work, what license applies, and which issues are known, but they don’t prove that a proxy node will work well on your network. When reporting a problem, include the client name, operating system, steps to reproduce, and redacted error details. Filing it with the project responsible for the feature is usually more helpful than sharing a screenshot of a failed connection.

Core compatibility: migrate older configurations, then test

mihomo supports many Clash-style YAML configurations and extends their protocol, rule, and DNS capabilities. During migration, verify support for each field and protocol, especially proxy group names, rule providers, local file paths, and TUN settings. Successful parsing only confirms that the syntax and structure passed validation; you still need to test an actual connection.

Keep a copy of the original configuration. Migrate nodes and basic rules first, then restore overrides, scripts, and complex DNS settings gradually. If subscription updates overwrite local files, put custom settings in the client’s supported merge or override mechanism. This keeps subscriptions responsible for updating nodes and local configuration responsible for your routing preferences.

Updates: keep subscriptions, clients, and cores separate

Subscription updates mainly fetch nodes and configuration data. Client upgrades mainly change the interface, system integration, and bundled components. Core updates may change protocol and routing capabilities. These updates don’t always happen together and shouldn’t be treated as the same operation. Some clients bundle the core with each app release; others offer a separate core selector. Check the client’s documentation for details.

For a stable setup, check release notes regularly without changing every component at once. Before upgrading, save your subscription source and local overrides. Afterward, test the same destination in a browser, your usual apps, and local network services. If only one app has problems, check traffic coverage first. If all new connections fail, check whether the core is running, whether the configuration parses, and whether nodes are reachable.

Recent articles / FIELD NOTES

Clash setup and rule configuration articles

Once the basic connection works, move on to custom rules and system integration. The articles below are listed newest first and cover rule priority, first-launch checks, and Windows installation issues involving permissions and ports. Check that each guide applies to your current setup; don’t follow platform-specific steps on a different system.