What are Clash and Mihomo?

Clash is an open-source, rule-driven proxy client written in Go. It is known for being lightweight, efficient, and easy to extend. Its strength is the configuration file: you define how each connection should behave—send domestic traffic direct, route international traffic through a remote node, or block specific destinations—without flipping settings app by app.

After the original Clash core stopped receiving updates, the community-maintained Mihomo project (formerly known as Clash Meta) became the de facto successor. Mihomo keeps compatibility with familiar Clash YAML while adding modern protocols such as VLESS, Hysteria2, and TUIC, plus ongoing security fixes and performance work. Today most graphical Clash clients ship Mihomo as their default engine.

Because the file format stayed recognizable, you can often reuse the same mental model across desktop and mobile: proxies describe endpoints, proxy-groups define how outbound selection behaves (fallback, URL test, or simple picker), and rules chain matchers until one hits. Providers bundle remote rule lists so your profile tracks geopolitical IP ranges without hand-editing thousands of lines. When something breaks, checking whether the failure happens in Rule versus Global mode immediately tells you whether DNS, routing, or the remote node itself is suspect.

You remain responsible for complying with local regulations and any acceptable-use policy from whoever sells bandwidth. This article explains mechanics only—treat credentials carefully, rotate leaked URLs quickly, and prefer reputable vendors who publish clear privacy statements.

This guide focuses on Clash Verge Rev (Windows and macOS) and FlClash (Android). Both bundle the Mihomo core and match what most desktop and mobile users need day to day.

Step 1: Download a Clash client

Picking the right build saves time before you touch YAML or subscriptions. Use the table below as a quick reference; names and UI labels may vary slightly between releases.

Platform Recommended client Core Notes
Windows Clash Verge Rev Mihomo Full featured, frequent updates, modern UI
macOS Clash Verge Rev Mihomo Native Apple Silicon builds available
Android FlClash Mihomo Material You design, efficient background use
iOS Shadowrocket / Stash Vendor-specific Paid apps from regional App Store listings
Linux Clash Verge Rev / mihomo CLI Mihomo GUI or headless depending on your workflow

You can grab installers and APKs from our downloads page without relying on GitHub release pages, which keeps the first-time setup predictable even when GitHub is slow or blocked.

Step 2: Install and first launch

Windows (Clash Verge Rev)

  1. Download the .exe, run it, and follow the setup wizard.
  2. When Windows Defender shows a firewall prompt, allow private networks unless you have a strict policy that requires manual rules.
  3. If SmartScreen says “Windows protected your PC,” choose “More info,” then “Run anyway.” New signing certificates often need time to build reputation.
  4. Launch Clash Verge Rev from the Start menu or desktop shortcut.

macOS

  1. Open the .dmg, drag the app into Applications.
  2. On first launch, right-click the app, choose Open, then confirm Open again to clear Gatekeeper’s unidentified-developer warning.
  3. Apple Silicon Macs should use the aarch64 build; Intel Macs use x64.

Android (FlClash)

  1. Most phones since 2016 are ARM64—install the arm64-v8a APK unless your vendor documents otherwise.
  2. Enable installation from trusted sources (unknown sources) for your browser or file manager, then install the APK.
  3. FlClash requests VPN permission on first connect; approve it so Android can route traffic through the Mihomo tunnel.
Enable launch at startup inside the client settings so the proxy comes back automatically after a reboot instead of leaving you with a silent failure in the browser.

Step 3: Import your provider subscription

Clash does not ship with nodes. You supply outbound servers through a remote subscription URL from your provider (or a config you host yourself). Treat that URL like a password: anyone with the link can pull your node list within provider limits.

Clash Verge Rev (Windows / macOS)

  1. Open the app and select Profiles or the subscription section in the sidebar.
  2. Click +, choose a remote profile, and paste the HTTPS subscription URL.
  3. Save; the client downloads YAML or the provider’s format and converts it.
  4. Select the profile so it becomes active—usually a radio button or checkmark beside the entry.
  5. For freshness, enable automatic refresh (for example every 24 hours) so node changes propagate without manual clicks.

FlClash (Android)

  1. Open FlClash and tap + on the home screen.
  2. Choose import from URL, paste the subscription link, and confirm.
  3. Return to the dashboard and select the profile you just added before starting the VPN.
Subscription URLs encode your entitlement. Do not post them in chats or tickets unless support explicitly asks, and expect concurrent-device limits from your provider.

Step 4: Turn on system proxy

After a profile loads, choose how aggressively Clash intercepts traffic:

  • Rule: Follow the ruleset—typically domestic CDNs and banks stay direct while overseas sites use the proxy. This is the default recommendation.
  • Global: Send everything through the selected node; useful for quick reachability tests.
  • Direct: Bypass the proxy entirely, equivalent to pausing Clash for troubleshooting.

In Clash Verge Rev, flip the System Proxy toggle on the home screen. macOS and Windows applications that honor system proxy settings—most browsers, IDEs, and desktop messengers—will now route according to the active mode and rules.

System proxy covers apps that read OS proxy variables. Games, some CLI tools, and UDP-heavy programs may ignore it. For those cases, move on to TUN mode.

Step 5: Enable TUN for system-wide capture

TUN mode installs a virtual adapter and pulls TCP and UDP into Mihomo’s routing pipeline. That closes the gap left by system proxy alone and is the practical way to proxy stubborn binaries without per-app SOCKS hooks.

Clash Verge Rev (Windows / macOS)

  1. Open Settings.
  2. Locate TUN mode and enable it.
  3. On Windows, approve the UAC prompt the first time so the driver can create the interface.
  4. Confirm the dashboard shows TUN as active alongside your chosen outbound.

FlClash (Android)

Android’s VPN slot already behaves like a user-space TUN interface. When you tap connect and grant VPN permission, FlClash routes traffic through Mihomo automatically—no separate toggle is required beyond choosing Rule versus Global inside the app.

Even with TUN on, stay in Rule mode unless you intentionally want every byte to exit via the remote. Global + TUN can slow domestic streaming or banking sites unnecessarily.

Step 6: How rule-based routing works

Split tunneling is Clash’s headline feature. Providers ship curated rule lists; understanding the primitives helps when you add overrides.

DOMAIN and DOMAIN-SUFFIX

Match a hostname exactly or every subdomain beneath a suffix:

rules:
  - DOMAIN,google.com,Proxy
  - DOMAIN-SUFFIX,youtube.com,Proxy
  - DOMAIN-SUFFIX,baidu.com,DIRECT

Here google.com and any *.youtube.com name take the Proxy policy, while *.baidu.com stays direct.

GEOIP

Route based on the destination IP’s country database entry:

rules:
  - GEOIP,CN,DIRECT
  - MATCH,Proxy

GEOIP,CN,DIRECT keeps mainland targets local; MATCH catches everything else and sends it to your proxy group.

IP-CIDR

Use CIDR notation for LAN segments or provider-specific ranges:

rules:
  - IP-CIDR,192.168.0.0/16,DIRECT

This prevents printer or NAS traffic from being dragged through an overseas node.

Real-world profiles usually combine these primitives with rule providers: downloadable YAML fragments that refresh on a timer. That pattern isolates responsibility—the airline maintains its domestic-direct lists while you keep a tiny local file for office SaaS domains that must bypass the tunnel. When latency spikes after an automatic refresh, roll back to yesterday’s snapshot inside your client or disable the newest provider until you trust the diff.

Most subscriptions already embed sensible GEOIP and domain lists. Use client-side overrides or merge snippets when you need custom exceptions instead of editing the hosted file manually.

Troubleshooting and FAQs

No nodes after subscribing

Verify billing status with your provider, copy the subscription URL again, and open it in a browser— you should see YAML or base64 content. Corporate DNS filtering can also block the download domain; temporarily switching DNS or networks isolates that failure mode.

Browser offline with system proxy enabled

Activate a profile, ensure mode is not Direct, and pick another outbound before blaming Wi-Fi. Mixed corporate proxies sometimes conflict; disabling other VPN software clears overlapping Layer 2 filters.

TUN requires elevation

Virtual adapters need privileges. Run Clash Verge Rev as administrator on Windows or enable the helper/service option if the UI exposes it.

High latency everywhere

Use built-in latency tests, sort by delay, and prefer wired Ethernet when measuring. If every region scores poorly, escalate with your provider—likely an upstream saturation issue rather than local YAML mistakes.

Auto-start without working proxy

Race conditions between login items and macOS network extensions occasionally delay proxy application. Combining launch-at-login with elevated helper modes usually stabilizes the sequence.

Why your choice of client still matters

Routing YAML correctly is only half the story. The wrapper application decides how often Mihomo updates, how transparently it surfaces errors, and whether advanced toggles—TUN, mixin profiles, external controllers—are exposed safely.

The ecosystem includes forks that stagnated years ago, forks with cluttered UX that scare newcomers, and closed-source repacks with unclear telemetry. A weak client turns good infrastructure into random disconnects or opaque log spam even when your subscription is healthy.

A trustworthy Clash distribution typically combines an up-to-date Mihomo core (including Hysteria2 and VLESS Reality–style features where applicable), responsive maintainers, full TUN support, straightforward subscription import, and source code you can audit.

If you want curated builds for Windows, macOS, Android, iOS, and Linux hosted on fast mirrors—so you can finish installation before touching any proxy-dependent URL—use our downloads page and pick the bundle that matches your CPU architecture.

Download Clash free for your platform →