Open-source core · Clients for every platform, regularly updated

Clash ChinaClient Downloads

Choose a client for your OS, start by importing a subscription, then configure rule-based routing and TUN mode.

Open-source coreSetup guidesRoute by rule

Client Downloads / Choose by OS

Clash Downloads by Platform

Check your operating system first, then confirm your processor architecture. After downloading a client, you’ll also need a working configuration or subscription. The installer does not provide proxy nodes or manage subscriptions on behalf of a service provider.

If you’re new to Clash, start with a maintained client that can import your existing subscription. Clash Plus, Clash Verge Rev, and FlClash have different interfaces and permission workflows; available features also depend on the core and operating system. If your current setup works, back it up before switching clients. Avoid changing the install environment, subscription source, and DNS settings all at once.

View all clients →

Configuration Desk / Five Key Topics

Routing, subscriptions, DNS
Configuration guides in one place

Get connected first, then fine-tune settings one at a time. The five topics on the right follow a practical setup order. The quick reference below shows syntax snippets only; adapt them to your existing configuration rather than replacing the whole file.

Explore advanced configuration →

Configuration Snippets at a Glance

rules:
  - DOMAIN-SUFFIX,github.com,PROXY
  - MATCH,DIRECT

PROXY in this example must match an existing proxy group. Rules are matched from top to bottom.

DOMAIN-SUFFIX,github.com,PROXY

Rule-Based Routing and Proxy Groups

For everyday use, start with Rule mode. Requests are matched in order by domain, IP address, or rule set, then sent to the assigned proxy group. A proxy group chooses the outbound route; rules determine which requests go to that group. They serve different purposes. Before editing, make sure the group exists and place specific rules above the fallback rule. If a site takes the wrong route, check the matched rule in the connection log instead of repeatedly switching nodes. Unlike Global mode, rule-based routing preserves direct connections, but the result depends on your configuration and rule order.

Explore configuration →
proxy-providers / interval: 3600

Importing and Updating Subscriptions

Add the URL on the client’s configuration or subscription page, wait for it to finish downloading, then enable the configuration. A subscription may contain a complete configuration or only a proxy list, so use the import option that matches its contents. If an update fails, check whether the URL has expired, whether your network can reach it, and whether the provider changed the response format. Subscription updates may overwrite manual edits; put rules you need to keep in a client-supported override instead. Subscription URLs often contain personal identifiers, so redact them before sharing screenshots or logs.

Explore configuration →
tun: { enable: true, auto-route: true }

TUN Mode

Some apps don’t use the system proxy. TUN can capture their traffic through a virtual network interface. First confirm that your subscription works with the system proxy, then enable any service or administrator permissions the client requires and verify that automatic routing is active. TUN describes how traffic enters the client; it is not the same as Global proxy mode. Rules can still decide whether captured traffic goes direct or through a proxy. If TUN conflicts with another VPN or a virtual machine adapter, disable one and test again. For LAN access issues, check routes and excluded subnets before changing subscriptions.

Explore configuration →
enhanced-mode: fake-ip

DNS and Fake-IP

DNS settings affect domain resolution and rule matching. Fake-IP assigns virtual addresses to domains, with the core maintaining the mapping; it does not mean the destination website uses that address. Save your existing settings first, check whether the client’s DNS is enabled, and confirm that the app isn’t bypassing that resolver. Add filters as needed for local domains, device discovery, or app compatibility. Simply adding more upstream DNS servers won’t solve every issue. First distinguish between resolving node hostnames, regular requests, and proxy outbound connections; each has a different purpose.

Explore configuration →
external-controller: 127.0.0.1:9090

External Control Panel

The external controller API reads connection status, switches proxy groups, and manages a running core. It’s useful for monitoring servers and routers from a central location. For local use, bind it to the loopback address rather than exposing the management interface to other devices. For remote access, require authentication, restrict allowed sources, and connect through a protected channel. The controller port and proxy port serve different purposes: being able to open the dashboard in a browser doesn’t mean proxy traffic is being captured. To troubleshoot a connection, check the destination domain, proxy chain, and matched rule in the panel.

Explore configuration →

Open-Source Ecosystem / Core and GUI

Clash, Mihomo, and Clients

Understand how the projects fit together before downloading. Similar names don’t mean the same app, and updating a client is different from updating its core.

The Clash Ecosystem Today

Clash began as a rule-based proxy core, with configuration files bringing proxies, proxy groups, rules, and DNS together. After the original project was discontinued, community forks and GUI clients continued to evolve. Today, a search for Clash downloads usually returns several distinct projects, not one installer for every operating system. Compare maintenance status, OS support, and configuration compatibility; similar names don’t guarantee identical features.

The Core Handles Connections; the GUI Manages Them

Mihomo is an actively developed open-source core in this ecosystem. It handles protocol processing, rule matching, and network connections. GUI clients provide subscription imports, tray menus, logs, and system permission management. Some bundle a core, and updates may follow different schedules. A toggle in the interface doesn’t guarantee that your system grants the required permission. When following a guide, first check whether it refers to the client interface or the core configuration that actually takes effect.

Verify Features in Source Code and Documentation

Open source lets you review code, licenses, and change histories. To check whether a feature is supported, consult the relevant project documentation and release notes, then verify which core is bundled with your client. Don’t rely on screenshots or outdated guides. The Mihomo core is licensed under GPL-3.0; check each GUI client’s license and distribution terms separately. This site organizes download links and setup guides, but does not provide proxy subscriptions or treat separate community projects as one development team.

Keep a Recoverable Configuration Before Updating

Before installing an update, export your current configuration and note the active mode and proxy groups. Keep a way to restore your client installation if needed. After updating, make sure the configuration loads, then test frequently used sites, LAN access, and background apps. If something breaks, check the release notes and startup logs to distinguish configuration changes from lost permissions or network issues. Change one category of settings at a time; it’s easier to find the cause than when you change the client, core, and subscription together.

Three Connection Checks

First check that the configuration is enabled, then confirm requests reach the core, and finally identify which rule matched. Opening a webpage in your browser only confirms that one visit worked; it doesn’t prove that every app uses the proxy. Speed tests mainly compare response under current test conditions and don’t guarantee download speeds or long-term connection quality.

If only one app has problems, check whether it uses the system proxy. If domain lookups fail while other connections work, check DNS. If LAN devices become unreachable after enabling TUN, review routes and excluded networks. Narrow down the cause based on what you observe instead of reinstalling repeatedly. For more help, see the Getting Started guide and Troubleshooting.

Usage Notes / Recent Articles

Clash Setup and Troubleshooting

Start with what you’re seeing, then separate OS restrictions from client settings and core configuration. Keep your current settings before making changes so you can compare them one at a time.

View all articles →