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.
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)
- Download the
.exe, run it, and follow the setup wizard. - When Windows Defender shows a firewall prompt, allow private networks unless you have a strict policy that requires manual rules.
- If SmartScreen says “Windows protected your PC,” choose “More info,” then “Run anyway.” New signing certificates often need time to build reputation.
- Launch Clash Verge Rev from the Start menu or desktop shortcut.
macOS
- Open the
.dmg, drag the app intoApplications. - On first launch, right-click the app, choose Open, then confirm Open again to clear Gatekeeper’s unidentified-developer warning.
- Apple Silicon Macs should use the
aarch64build; Intel Macs usex64.
Android (FlClash)
- Most phones since 2016 are ARM64—install the
arm64-v8aAPK unless your vendor documents otherwise. - Enable installation from trusted sources (unknown sources) for your browser or file manager, then install the APK.
- FlClash requests VPN permission on first connect; approve it so Android can route traffic through the Mihomo tunnel.
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)
- Open the app and select Profiles or the subscription section in the sidebar.
- Click +, choose a remote profile, and paste the HTTPS subscription URL.
- Save; the client downloads YAML or the provider’s format and converts it.
- Select the profile so it becomes active—usually a radio button or checkmark beside the entry.
- For freshness, enable automatic refresh (for example every 24 hours) so node changes propagate without manual clicks.
FlClash (Android)
- Open FlClash and tap + on the home screen.
- Choose import from URL, paste the subscription link, and confirm.
- Return to the dashboard and select the profile you just added before starting the VPN.
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.
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)
- Open Settings.
- Locate TUN mode and enable it.
- On Windows, approve the UAC prompt the first time so the driver can create the interface.
- 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.
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.
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.