Open-source proxy client · Step-by-step guide

Clash Tutorial

From download and install to importing a subscription and rule-based routing, every step is worked through like a classroom example: the how first, then the why — follow along and get your first connection running.

FEATURES · Classroom Notes

What the client can do, page by page

The left side is the course index, the right side is a handout pinned to the chalkboard. Each page covers one feature: the problem it solves, how to turn it on, how it differs from similar tools, plus a config snippet you can compare directly.

Rule-based routing: every connection takes its own path

Rule-based routing is Clash's core capability: every connection is matched top-down against a rule list, and the first match decides whether it goes direct, through a node, or gets blocked. Sites in mainland China go direct with no detour, services outside China are routed to a node, and ad or tracking domains are rejected outright — the three never interfere with each other. Rules support domain suffixes, IP ranges, GeoSite, and more; just order them by priority, no need to configure each site individually. The difference from "global proxy" tools is that rule-based routing only touches the traffic that needs it, keeping speed loss minimal and never changing the apparent region for mainland services.

rules:
  - DOMAIN-SUFFIX,example.com,PROXY
  - GEOSITE,cn,DIRECT
  - GEOIP,CN,DIRECT
  - MATCH,PROXY

DOWNLOAD · Pick a Client by Platform

Five platforms, one tutorial

The first card for each platform is the actively maintained top pick; discontinued clients are marked separately as archive-only references. Click a platform card to jump to its section on the download page, where system requirements and alternative clients are listed.

Windows

Windows 10 and above: Clash Plus is the top pick, with Clash Verge Rev and FlClash as alternatives — install, import a subscription, and you're ready.

Go to download →

macOS

Separate builds for Intel and Apple Silicon: Clash Plus and Clash Verge Rev are actively maintained, while ClashX Meta is discontinued and kept for archive only.

Go to download →

Android

Android 7 and above: both Clash Plus and Clash Meta for Android run on the mihomo core, with subscription support and per-app proxying.

Go to download →

iOS

Clash Plus is on the App Store: search for it or jump to the store page from the download page, then install and import a subscription. Platform notes are on the official clashplus.io site.

Go to download →

Linux

Clash Verge Rev is recommended for desktop distros, with deb and rpm packages; for servers and routers, deploy the mihomo core directly and run it as a service with a YAML config.

Go to download →

The core (mihomo) targets advanced server and router users and is listed separately on the download page; everyday desktop and mobile users can just pick a GUI client from the five platforms above.

View all clients →

QUICKSTART · Three Steps

Your first connection, just three steps

This is the condensed version of the tutorial guide's main flow. The full version covers platform differences and troubleshooting branches for each step — for now, just remember the order: install the client, import a subscription, turn on the proxy and verify. Don't skip the order.

  1. Download and install the clientGo to the download page and pick the top choice for your platform: Clash Plus for Windows, separate Intel and Apple Silicon builds for macOS, and the matching app on mobile. Installation is like any other app — open it once after installing to confirm it launches.
  2. Import your subscription linkOpen the client's subscription or profile page, paste your subscription link, and save — the client will pull the node list and routing rules. Once imported, trigger a manual update to confirm you have the latest config before moving on.
  3. Pick a node, enable the system proxy, verifyRun a latency test on the node list and pick a low-latency node; keep the mode set to Rule and turn on the system proxy toggle; finally, visit a site you normally can't reach to confirm it loads — your first connection is done.

View the full tutorial →

OPEN SOURCE · Why You Can Trust It

An open-source ecosystem, open for inspection

The source code for every Clash-family client is public, with the core and GUI maintained separately by the community. The four sections below cover the project's history, how the ecosystem divides the work, how the core relates to the clients, and how updates work — read through before deciding whether to trust it with your traffic.

Project history

Clash first appeared around 2018 as a command-line proxy core written in Go, and its "rule-based routing" idea spread through developer communities. After the original project stopped being maintained, the community continued development from the public source, giving rise to today's cross-platform family of clients — every client listed on the download page traces back to this open development history.

The open-source ecosystem

Separating the core from the interface defines this ecosystem: mihomo (formerly Clash Meta) handles core forwarding and rule matching, while GUI clients like Clash Plus, Clash Verge Rev, and FlClash wrap the core into an interface anyone can use. Either layer can be swapped out on its own — nothing is tied to a single author or repository.

How the core relates to clients

mihomo is the actively maintained core, compatible with the original Clash config format and extended with TUN mode, rule sets, and more. Most GUI clients on the download page bundle mihomo internally; server and router users can also run the core directly with the same YAML config, getting identical routing behavior to desktop clients.

How updates work

Each client ships releases on its own schedule, and the download links on this site follow upstream releases without hardcoding a version number. The subscription and GeoIP/GeoSite databases built into each client update automatically on a set interval, so node lists and routing data stay current without manual downloads.

git clone https://github.com/MetaCubeX/mihomo.git

The core's repository address is public — clone it to read the full forwarding and rule-matching implementation.

BLOG · Latest Posts

Turning common questions into worked examples

Posts follow a "one problem, fully explained" format — how to pick a mode, how to verify your first connection, how to read log errors — each with steps you can follow directly and the reasoning behind them.

View all posts →

FAQ · Top Questions

Quick answers, four common questions

More terms and concepts are collected on the glossary page, while platform-specific installation details and pitfalls are covered chapter by chapter on the installation guide page.

What's Clash's default port, and what if it's already in use?

The mixed port defaults to 7890. A bind error at startup means the port is in use: change it to a free value like 7891 in settings, or quit whatever program is holding the port. Port and listen address concepts are covered in the networking and ports section of the glossary.

Why does subscription updating usually fail?

Check in order: whether the system time is accurate, whether the subscription link still opens in a browser, and whether the current network is blocking that domain. The HTTP status code on the provider line in the log tells you exactly where it's stuck — just compare it step by step.

Should I enable system proxy or TUN mode?

System proxy is enough for everyday browsing; TUN's full takeover is only needed for apps that ignore the system proxy, like games or CLI tools. Don't enable both at once — see the tutorial guide for the full differences and setup steps.

What do DIRECT, PROXY, and REJECT mean in rule-based routing?

They mean go direct, route to a node, and block outright. The rule list is matched top-down, and the first match applies — order is priority. More on policies and rule syntax is in the rules and routing section of the glossary.