Beginner-Friendly · Cross-Platform · 5-Minute Quick Start

Clash Tutorials
Platform Config Guide

Step-by-step instructions for Windows, macOS, Android, iOS, and Linux to install, import subscriptions, and configure proxy rules for a stable and smooth experience.

5
Supported Platforms
5+
Visual Guide
10+
FAQ
MIT
Open Source & Free

Windows Tutorial

For Windows 10/11, we recommend Clash Verge Rev (Tauri-based, high performance, actively maintained). FLClash is also a great lightweight alternative with similar operations.

1

Download and install Clash Verge Rev

Go to the Download Page, select the Windows tab, and click 'Download x64' (for most 64-bit PCs) or 'Download ARM64' (for Surface Pro X / Snapdragon PCs). Run the .exe installer and follow the prompts. The app will appear in your Start menu and desktop.

Not sure which version? Most Windows PCs need x64. Only devices with ARM processors (like Surface Pro X) require the ARM64 version.
2

Launch Clash Verge Rev for the first time

After installation, open Clash Verge Rev. It will appear in your system tray (bottom right corner). The main interface features a navigation bar with: Proxies, Profiles, Connections, Rules, and Settings.

Windows Firewall may prompt for permission; click 'Allow Access' to ensure Clash Verge Rev can connect and manage proxies correctly.
3

Import Subscription Link (Provider Config)

Click the 'Profiles' menu on the left, then click the '+' or 'New Profile' button in the top right. In the popup: ① Paste your subscription URL; ② Enter a name; ③ Click 'Import' and wait for nodes to fetch. Once successful, the profile will appear in the list; click it to activate.

Profiles support Auto-Update. Enable 'Auto-Update' in profile settings and set an interval (e.g., 12–24 hours) to automatically fetch the latest nodes.
4

Choose Proxy Node and Group

Go to the 'Proxies' page to see your proxy groups and node list. Usually, there are groups like 'Select Node' or 'Auto Select'. Click a group name to expand and choose a stable, low-latency node. Use the 'Speed Test' icon in the top right to quickly measure latency for all nodes.

5

Enable System Proxy to Start

On the 'Settings' page, find and toggle the 'System Proxy' switch. This will route all system traffic through Clash Verge Rev. Alternatively, right-click the system tray icon to toggle 'System Proxy'.

To proxy all traffic (including UWP apps that don't support system proxy), enable TUN Mode in settings (requires admin rights) for true transparent proxying.
6

Verify if the Proxy is Working

Open your browser and visit google.com or any site requiring a proxy. If it loads, you're all set! You can also check real-time traffic on the 'Connections' page in Clash Verge Rev.

macOS Tutorial

For macOS 12 Monterey and above. Download the arm64 version for Apple Silicon (M1/M2/M3/M4) and x64 for Intel Macs.

1

Download the Correct Architecture

Go to the Download Page, click the macOS tab, and choose: Apple Silicon (arm64) for M-series Macs (late 2020+) or Intel x64 for older Intel-based Macs. Check 'About This Mac' in the Apple menu if unsure.

2

Install and Handle Security Prompts

Open the .dmg file and drag the app icon to the Applications folder. If you see an 'unidentified developer' error on first launch, go to 'System Settings → Privacy & Security', scroll down, and click 'Open Anyway', or run this command in Terminal:

# Remove quarantine attribute (run in Terminal)
xattr -cr /Applications/Clash\ Verge.app
3

Import Subscription Link

Open Clash Verge Rev, go to 'Profiles', click '+' to add a new profile, paste your URL, and click 'Import'. Once the node count appears, click the profile card to set it as active.

If your provider gives a Clash Subscription Link (URL usually contains clash or sub), you can import it directly without editing any files.
4

Select Proxy Node

On the 'Proxies' page, expand a group to select a node. Use the lightning icon (⚡) for a batch speed test; nodes with latency under 100ms are best. 'Auto' mode is also supported for automatic lowest-latency routing.

5

Enable System Proxy or Enhanced Mode

Toggle 'System Proxy' in settings for basic browser and app proxying. For full coverage (Terminal, games, etc.), enable 'Enhanced Mode (TUN)'. You'll be prompted to install a network extension; allow it and restart the toggle.

Enhanced Mode (TUN) on macOS requires a system extension and your Mac login password for installation.
6

Set Launch on Login (Optional)

Check 'Launch on Login' in 'Settings → General' to have Clash run automatically at startup. We also recommend enabling 'Start Silently' to keep the window hidden at login.

Android Tutorial

Compatible with Android 5.0 and above. We recommend Clash Meta for Android (official maintenance, full features) for most users, and FLClash for a lightweight experience.

1

Allow Installation from Unknown Sources

Before installing a third-party APK, you must enable the corresponding permission: go to 'Settings → Security (or Privacy) → Install Unknown Apps' and allow your 'File Manager' or 'Browser' to install them. The path may vary by brand (Xiaomi: Settings → Additional Settings → System Security; Huawei: Settings → Apps → Menu → Special Access → Install unknown apps).

2

Download and Install the Matching APK

Go to the Download Page and select the Android tab. Choose based on your CPU: arm64-v8a for most phones after 2016 (64-bit ARM); armeabi-v7a for some older models (32-bit ARM); or Universal if unsure, as it matches the architecture automatically. Tap the APK to install.

Check your CPU architecture: Go to 'Settings → About Phone → CPU Info' or use a tool like CPU-Z.
3

Launch and Authorize VPN Access

Open Clash Meta for Android. The first time you tap 'Stopped' to start, a 'Connection Request' popup will appear. Tap 'OK' to grant VPN permission. A key icon will appear in your status bar when the VPN is active.

4

Import Subscription Link

Tap the 'Profiles' tab at the bottom, tap the '+' icon in the top right, select 'Import from URL', paste your subscription link, name it, and tap 'Save'. Tap the profile name to activate it after fetching.

5

Select Node and Enable Proxy

Go to the 'Proxies' page and select a node (tap the signal icon on the right for a speed test). Return to the main page and tap the large 'Stopped' button; it will turn green and show 'Running'. Visit a blocked site in your browser to verify.

6

Choose the Right Proxy Mode

Clash Meta for Android supports several modes: Rule: Automatic routing based on rules (recommended for daily use); Global: All traffic through the proxy (for troubleshooting); Direct: No proxy used. Switch modes in the top right menu or 'Settings'.

We recommend 'Rule Mode' for daily use to ensure local traffic stays direct while international traffic uses the proxy for the best experience.

iOS Tutorial

iOS doesn't support direct APK installation. You'll need a compatible proxy client from the App Store (requires a non-China Apple ID). We recommend Stash or Shadowrocket.

1

Switch to a Non-China Apple ID

Due to App Store policies in China, apps like Stash and Shadowrocket are not available there. You'll need a US, Hong Kong, or Taiwan Apple ID. We recommend switching only the App Store account (tap your avatar in the App Store → scroll down to sign out) without changing your main iCloud account.

You can register a new ID, borrow one, or use gift cards to purchase paid apps.
2

Download Proxy Client from App Store

Search for and download either of these apps with your non-China account:

Stash — Proxy Client
Full support for Clash Premium config, most comprehensive features, paid app (approx. $3.99).
App Store
Shadowrocket
Supports Clash config format, most popular iOS client, paid app (approx. $2.99).
App Store
3

Import Clash Subscription in Stash

Open Stash, go to 'Home → Config', tap '+', select 'Remote Config', paste your URL, and tap 'Done' to activate after fetching.

Stash supports Auto-Update. Enable it in config settings to keep your node list fresh.
4

Import Subscription in Shadowrocket

Open Shadowrocket, tap '+' in the top right, set 'Type' to 'Subscribe', paste your URL, and tap 'Done'. It will automatically parse all nodes; tap the signal icon next to a node to test latency.

5

Enable Proxy and Grant VPN Permission

For both Stash and Shadowrocket, toggle the Connection switch. iOS will ask to 'Add VPN Configurations'; tap 'Allow' and verify with Face ID / Touch ID. A 'VPN' or key icon in the status bar confirms it's working.

Linux Tutorial

Desktop Linux users should use Clash Verge Rev (.deb / .rpm available). Server users can use the Mihomo Core CLI version.

1

Install Clash Verge Rev

Go to the Download Page under the Linux tab. Choose .deb for Debian/Ubuntu or .rpm for Fedora/RHEL/openSUSE.

# Debian / Ubuntu install
sudo dpkg -i clash-verge-rev-linux-amd64.deb

# Fedora / RHEL install
sudo rpm -i clash-verge-rev-linux-x86_64.rpm
For ARM64 devices (like Raspberry Pi Desktop), download the arm64.deb version.
2

Start Clash Verge Rev

Launch from your app menu or run this in terminal:

clash-verge-rev

The Clash icon will appear in your system tray, with an interface identical to the Windows/macOS versions.

3

Import Subscription Link

Identical to Windows: go to 'Profiles' → '+' → paste URL → 'Import'. Activate the profile, select a node, and enable 'System Proxy'.

4

Config System Proxy or TUN Transparent Proxy

Enabling 'System Proxy' automatically configures GNOME/KDE proxy settings. For Terminal, you can set it manually in your shell profile:

# Add to ~/.bashrc or ~/.zshrc
export http_proxy="http://127.0.0.1:7890"
export https_proxy="http://127.0.0.1:7890"
export all_proxy="socks5://127.0.0.1:7891"
Port numbers depend on your Clash Verge Rev 'Mixed Port' setting, usually 7890 (HTTP) and 7891 (SOCKS5).

Advanced Config Guide

Learn about Clash config structure, rule routing, TUN transparent proxy, subscription conversion, and more to unlock its full potential.

Basic Structure of config.yaml

Clash and Mihomo use YAML configuration files. Below is a common structure example (content is usually provided by your subscription and rarely needs manual editing):

# ── Global settings ──
mixed-port: 7890 # HTTP + SOCKS5 port
allow-lan: false
mode: rule # rule / global / direct
log-level: info

# ── DNS config ──
dns:
  enable: true
  enhanced-mode: fake-ip
  nameserver:
    - https://doh.pub/dns-query
    - https://dns.alidns.com/dns-query

# ── Proxy nodes (provided by subscription) ──
proxies:
  - name: "HK-01"
    type: vmess
    server: example.com
    port: 443

# ── Proxy groups ──
proxy-groups:
  - name: "Select Node"
    type: select
    proxies: ["Auto Select", "HK-01"]
  - name: "Auto Select"
    type: url-test
    url: "http://www.gstatic.com/generate_204"
    interval: 300

# ── Routing rules ──
rules:
  - GEOIP,CN,DIRECT # China IPs: direct
  - DOMAIN-SUFFIX,google.com,Select Node
  - MATCH,Select Node # Default: proxy

Rule Routing Config

Rules are matched from top to bottom. Once a match is found, the process stops. Common rule types:

# Exact Domain Match
DOMAIN,www.google.com,Select Node

# Domain Suffix Match (Inc. Subdomains)
DOMAIN-SUFFIX,youtube.com,Select Node

# Domain Keyword Match
DOMAIN-KEYWORD,google,Select Node

# IP Range Match (China IP Direct)
IP-CIDR,192.168.0.0/16,DIRECT

# GeoIP Match (China IP Direct)
GEOIP,CN,DIRECT

# Process Name Match (Desktop Only)
PROCESS-NAME,curl,DIRECT

# Final Fallback (Must be Last)
MATCH,Select Node

TUN Transparent Proxy

TUN mode creates a virtual network interface at the system level to intercept all traffic, eliminating the need for individual app proxy settings. Ideal for gaming acceleration and development.

tun:
  enable: true
  stack: mixed # mixed / gvisor / system
  auto-route: true
  auto-detect-interface: true
  dns-hijack:
    - any:53

In Clash Verge Rev: Go to 'Settings' → toggle 'TUN Mode' and provide admin authorization. No manual config editing is required.

Auto-Update Subscriptions

Subscriptions contain node info and rules. Periodic updates ensure node availability. GUI clients support visual setup for easy management.

  • Clash Verge Rev: 'Profiles' page → right-click profile → Edit → set 'Update Interval' (in minutes).
  • FLClash: 'Profiles' → long-press profile → Edit → enable 'Auto Update' and set interval.
  • Clash Meta for Android: 'Profiles' → tap entry → set 'Auto Update Interval'.

Recommended interval: 6 hours (360 minutes) to balance node freshness and data usage.

Proxy Group Strategies

Proxy Groups determine which node the traffic eventually uses. There are four core types:

# Manual Node Selection
type: select

# Auto speed test, choose lowest latency
type: url-test
  url: "http://www.gstatic.com/generate_204"
  interval: 300 # sec

# Use first available node (Auto-failover)
type: fallback

# Multi-node Load Balancing
type: load-balance
  strategy: consistent-hashing

DNS Leak Protection

Clash has a built-in DNS module that uses encrypted DNS and fake-ip mode to prevent ISP monitoring and location leaks.

dns:
  enable: true
  enhanced-mode: fake-ip # Recommended: Prevent DNS Leaks
  fake-ip-range: 198.18.0.1/16
  nameserver:
    - https://doh.pub/dns-query # Tencent DoH
    - https://dns.alidns.com/dns-query # Ali DoH
  fallback:
    - https://8.8.8.8/dns-query # Google DoH (Overseas)
    - https://1.1.1.1/dns-query # Cloudflare DoH
  fallback-filter:
    geoip: true # Non-China IPs use Fallback DNS

Protocols Supported by Mihomo Core

Mihomo (formerly Clash Meta) is the most comprehensive Clash core, supporting all mainstream protocols used by providers:

Protocol Transport Encryption Description
ShadowsocksSS TCP / UDP AES-256-GCM / ChaCha20 Classic protocol, stable and widely supported.
VMessV2Ray TCP / WS / H2 / gRPC AES-128-GCM / ChaCha20 Exclusive V2Ray protocol, supports various transport methods.
VLESSNew TCP / WS / H2 / gRPC No built-in encryption (requires TLS) Next-gen V2Ray protocol with better performance.
TrojanTLS TCP / WS / gRPC TLS(HTTPS Simulation) High detection resistance; disguises traffic as HTTPS via TLS.
RealityNew TCP / H2 XTLS Reality Next-gen TLS obfuscation with strongest anti-detection.
Hysteria2New QUIC / UDP TLS + QUIC High-performance QUIC-based protocol with low latency and high bandwidth.
TUICNew QUIC / UDP TLS + QUIC Efficient multiplexing, ideal for high-latency networks.
WireGuardVPN UDP Noise Protocol Modern VPN protocol with excellent encryption performance.
FAQ

Having Issues? FAQ

A summary of frequent issues regarding Clash installation, subscription import, and connectivity for quick troubleshooting.

More Questions?

Visit GitHub to submit an issue or check the official Mihomo Wiki for technical support.

Go to GitHub Issues
Open the client, go to 'Profiles', tap '+' to add a profile, paste your subscription URL, and tap 'Import/Update'. Once fetched, click the profile name to activate, then select a node on the 'Proxies' page and enable 'System Proxy'.
Common reasons: ① Selected node is down or has high latency—switch nodes or run a speed test on the 'Proxies' page; ② 'Rule' mode might misroute a site to 'Direct'—try 'Global' mode; ③ Subscription is outdated—refresh it on the 'Profiles' page.
Find 'TUN Mode' in 'Settings' and toggle it on. The system will prompt for admin authorization (Windows UAC or macOS password). TUN mode handles all system traffic, including apps that don't support system proxy (games, certain UDP traffic, etc.).
Usually caused by an architecture mismatch. Please download the Universal version, which includes all architectures for the best compatibility. If it still fails, check your storage space or use a file manager to install.
Rule Mode: Matches traffic against rules in config.yaml—local sites go 'Direct', blocked sites use the proxy, and ads are blocked (Recommended).
Global Mode: Forces all traffic through the proxy node—useful for debugging but increases load and latency.
Direct Mode: Connects all traffic directly, bypassing any proxy.
Config paths for various clients:
Clash Verge Rev (Windows): %APPDATA%\io.github.clash-verge-rev\profiles\
Clash Verge Rev (macOS): ~/Library/Application Support/com.clash-verge-rev.clash-verge-rev/profiles/
Mihomo Core: ~/.config/mihomo/config.yaml
In Clash Verge Rev, right-click a profile → 'Open File' to edit the YAML directly. Click 'Reload' after saving.
Both support Clash configs. Main differences:
Shadowrocket: Cheaper (~$2.99), easy to use, great protocol compatibility, largest user base;
Stash: ~$3.99, full Clash Premium support (scripts, advanced strategy groups), modern UI, more features for power users.
We recommend Shadowrocket for beginners and Stash for full Clash feature parity.
A Subscription URL is provided by your proxy service provider (airport) containing all available node info. You can find 'Clash Subscription' or 'One-Click Import' in their control panel. Paste this URL into your client's import page. While formats may vary, all Mihomo/Clash Meta compatible clients can parse them.