47,000+ GitHub Stars  ·  MIT Open Source  ·  Permanently Free

Clash Official Website

Open-source, cross-platform Clash client supporting Windows, macOS, Android, iOS, and Linux. Routes traffic based on rules and is compatible with common protocols like Shadowsocks, VMess, and Trojan. Simply enter your subscription to pull nodes and complete the configuration.

HK-01 · 18ms Hong Kong
SG-03 · 15ms Singapore
DIRECT · Direct Connect
Clash Cat Mascot
Rule Mode · ↑ 2.4  ↓ 18.2 MB/s
0K+
GitHub Stars
0 Major Platforms
All-platform Client Coverage
0+ Protocols
Mainstream Proxy Protocol Support
MIT
Open Source License, Permanently Free

Getting Started with Clash

How to use Clash after downloading? First, understand these three things: Subscription Links, Configuration Files, and Rule-based Routing.

The actual process is usually just three steps: Install Graphical ClientPaste Subscription URL or Import YAMLSwitch to Rule Mode to allow domestic sites to connect directly and foreign sites to go through the proxy. Clash schedules traffic locally and does not provide nodes for you. If you are looking for updated protocols and rule capabilities, you can follow distributions based on Mihomo (commonly known as Clash Meta), which has more complete support for Hysteria2, TUIC, WireGuard, etc.

Use Cases

Why choose Clash for "Smart Routing" instead of a single-protocol client?

Gaming, video conferencing, development package pulling, team collaboration—using the same set of rules to split traffic is much easier than manually switching nodes in multiple apps. It relies on the Rule Engine, Latency Testing, and Policy Groups to make decisions for you.

Low-latency Gaming and Voice Chat

Assign low-latency nodes to games or voice chat targets in Rule mode while keeping other traffic direct. Enable URL-Test in the policy group to automatically switch to an available node when the line fluctuates, reducing the need for manual switching.

Remote Work and Cross-border Collaboration

Domains like Zoom, Slack, Figma, Git, and npm registry can be written into rules: direct connection for domestic meetings and proxy for overseas tools. Multiple machines in a team can also share the same configuration approach.

Streaming and HD Video

If you often experience buffering or low resolution, besides bandwidth, check if the domain is going through the right exit and if the DNS is being hijacked or drifting. Writing platform-related domains into rule sets and setting a reliable DNS in the client will make it much more stable.

Installation and Configuration

Clash Installation Tutorial
Complete configuration in three steps; download to proxy in less than 5 minutes.

01

Download and Install Client

Choose the corresponding client version for your operating system—Clash Verge for Windows, ClashX Pro for macOS, and Clash Meta for Android. All versions are free and open-source software.

02

Paste Subscription Link

Open "Config" or "Subscription," paste the subscription URL provided by your service provider and update. The client will pull the node list. Regular updates can help avoid expired subscriptions.

03

Enable Rule-based Routing Mode

Switch to Rule mode. Clash automatically determines traffic routing based on built-in GeoIP rules—direct connection for domestic addresses and proxy for foreign traffic. No manual switching required, latency is optimized automatically.

Client · Platform Selection

Which one to use for Windows / Mac / Android / iOS?

The same Clash capabilities have different distributions on different systems: some are used to the early Clash for Windows (CFW) abbreviation, some are more familiar with ClashX on Mac, and on mobile, Clash Meta for Android is often called CMFA. The table below lists commonly used graphical clients and typical uses in the community. Please refer to each project repository for version differences and release notes.

Common Clash Clients and Use Cases by Platform
Platform Common Clients and Aliases Best For
Windows Clash Verge / Clash Verge Rev、Clash for Windows(cfw)、Mihomo Party Prefers graphical interface, subscription management, and visual rule editing
macOS ClashX Pro、Clash Verge、Mihomo Party Used to a menu bar resident or the same client set as on Windows
Android Clash Meta for Android (often called CMFA / CFA) Requires Meta kernel capabilities, per-app proxy, and subscription management
iOS / iPadOS Stash, Shadowrocket, Quantumult X, etc. (depending on region store policies) Mobile depends more on the system ecosystem; it's recommended to prioritize checking each app and local compliance requirements.
Linux / Router Mihomo binary, OpenClash, ShellCrash, various server distributions Command line, gateway, software router or side-router; covers x86_64, ARM, and other common architectures.

If focusing on command-line kernels, follow the releases and documentation of Dreamacro/clash and metacubex/mihomo. On desktops and mobile phones, prioritize graphical clients that are actively maintained and fit your system for a smoother experience.

config.yaml
mode: Rule
dns:
  enable: true
  nameserver: [8.8.8.8]
proxies:
  - name: "Hong Kong 01 · Low Latency"
    type: vmess
# Smart traffic routing rules
rules:
  - DOMAIN-SUFFIX,google.com,Proxy
  - GEOIP,CN,DIRECT
  - MATCH,Final
YAML-driven Configuration

Clash Configuration File Explained: Rule Routing, Policy Groups, and DNS Combinations

Use YAML to clearly define the flow of each type of traffic: URL-Test for auto node selection, Fallback for failover, Load-Balance, or manual assignment. These can be flexibly combined in policy groups to meet refined routing needs for individuals and teams.

  • Supports URL-Test / Fallback / Load-Balance Policy Groups
  • Built-in Fake-IP and Redir-Host Dual DNS Modes
  • Supports Scripting for any custom rule logic
Protocol Compatibility

Proxy Protocols Supported by Clash: Shadowsocks, VMess, Trojan, Hysteria2 Fully Compatible

Whether your service provider uses Shadowsocks, VMess, or Trojan, Clash is natively compatible. If you need next-generation protocols like Hysteria2, TUIC, or WireGuard, simply switch to the Mihomo (Clash Meta) kernel for support—no extra plugins needed in most scenarios.

Mainstream Transport Protocols
Shadowsocks VMess Trojan VLESS Hysteria2 TUIC
Basic Proxy Protocols
SOCKS5 HTTP / HTTPS SNELL ShadowsocksR WireGuard
Rule Matching Engine
DOMAIN-SUFFIX GEOIP IP-CIDR PROCESS-NAME SCRIPT RULE-SET
From Kernel to Rules

From "Clash Kernel" to "Rule Sets": Sorting Out the Concepts

Connecting core concepts like kernels, subscriptions, rule sets, and TUN mode to help you quickly decide whether to upgrade your client, modify your subscription configuration, or adjust rule and DNS settings.

  1. Kernels and Branches

    The classic Clash core and Mihomo (Clash Meta) iterate separately. Before switching binaries, checking release notes, or following new protocols, first confirm which branch you are using.

  2. Subscriptions and Configurations

    Subscription URLs, local config.yaml, and remote configuration hosting are the three common paths. Update failures, parsing errors, or port conflicts are mostly troubleshot from here.

  3. Rule Sets and GeoIP

    RULE-SET, GEOIP, and Country.mmdb are often used together. Deciding whether "domestic traffic is direct" or "which line to take for overseas traffic" depends on whether they are up-to-date and if the order is reasonable.

  4. Modes and Network Stacks

    Options like TUN, System Proxy, and Enhanced Mode determine whether traffic from "some apps" or the "entire machine" goes through Clash. Different clients have different menu names, so match the meanings correctly.

  5. Troubleshooting and Observation

    Checking logs, performing latency tests, and observing Policy Group Fallback can help trace "slow internet speed" back to "which rule was hit or which node is substandard."

Clash Common Problem Troubleshooting: How to Solve Subscription Failures, Rules Not Taking Effect, and DNS Leaks

Most anomalies are concentrated in categories like subscriptions, modes, DNS, and ports. Self-checking in order can quickly locate the root cause.

Continue Troubleshooting in Documentation
Local Running · End-to-End Encryption · Zero-Log Policy

Clash runs locally with a zero-log policy and fully transparent, auditable open-source code

All Clash traffic scheduling and forwarding are completed locally without passing through any third-party servers. The source code is hosted on GitHub, allowing anyone to audit it, with no backdoor risks and autonomous, controllable data security.

Full Local Operation
Zero-Log Policy
Public Code Audit
MIT Open Source License
Fully Open Source · GitHub Hosted

Clash is fully open source,
MIT Licensed, with 47,000+ Stars on GitHub

Clash has accumulated over 47,000 Stars on GitHub and is one of the most trusted open-source proxy tools. Protocol implementations and rule engines are continuously maintained by global developers, with all commit records and issues being public and code quality evident to all.

View Source Code on GitHub
Continuous Community Maintenance

Protocol and kernel features evolve with standards, and issues and patches are active in public discussions.

Multi-architecture Adaptation

Supports mainstream architectures such as x86_64, ARM, and Apple Silicon; desktops, servers, software routers, and side-routers can all be selected as needed.

MIT Licensed

The core code is released under the MIT license, permanently free, and can be used freely for personal, learning, and commercial scenarios.

Clash FAQ

Is Clash completely free?
Yes, Clash/Mihomo kernels are free to use under open-source licenses like MIT. Most graphical clients are also free or open-source, depending on their respective licenses and project descriptions.
Which proxy protocols does Clash support?
Common mainlines include Shadowsocks, VMess, Trojan, SNELL, SOCKS5, HTTP/HTTPS, etc., depending on the kernel and client you use. If based on Mihomo (Clash Meta), extended capabilities like Hysteria2, TUIC, and WireGuard are generally directly available.
How to import subscription links?
Open "Config" or "Subscription" in the client, paste the subscription URL, and execute the update to synchronize nodes. Enabling scheduled updates can prevent sudden unavailability after subscription expiration.
What is the difference between Clash and Shadowsocks?
Shadowsocks is a transmission protocol; Clash is a client that can manage multiple protocols, rules, and DNS together. You can think of it as: Shadowsocks is responsible for one type of "line format," while Clash is responsible for the entire system of "how to split and how to route."
Which Clash client should beginners choose?
For Windows, Clash Verge is preferred; for macOS, ClashX Pro or Clash Verge are common; for Android, Clash Meta for Android (CMFA) is common; for iOS, there are choices like Stash and Shadowrocket, depending on the store and system version. First-time users can start with the Verge series with a graphical interface.
Does Clash support Global Proxy mode?
Yes. Switch the operation mode to Global in the client, and all traffic will be forwarded through the selected proxy node. For daily use, Rule mode is recommended for smart split-routing between domestic direct connection and foreign proxy, which improves speed and reduces node bandwidth consumption.
How to update Clash rules and GeoIP database?
There are two ways to update: ① Bind the subscription link in the client, and the program will automatically pull the latest nodes and rule sets at set intervals (e.g., 24 hours); ② Manually download the latest GeoIP database file (Country.mmdb) and replace the old file in the client's data directory, then restart the client for it to take effect.

Free Download Clash Client

Coverage for all platforms including Windows, macOS, Android, iOS, and Linux. Choose your device and get started now.