Visual Tutorials • Multi-platform • Updated Regularly

Clash Tutorials
Get Started in Minutes

From client installation to rule configuration, complete your setup on Windows, macOS, Android, iOS, and Linux in just 10 minutes.

Step-by-Step Guide Subscription Config TUN Mode Tutorial Rule-based Routing Troubleshooting

Clash for Windows Tutorial

For Windows 10 / 11 (64-bit). This tutorial focuses on Clash Verge Rev (recommended), with instructions for FlClash and Clash Nyanpasu.

1

Download and Install Clash Verge Rev

Download the latest Clash Verge Rev from our download page. Most Windows PCs (Intel / AMD) should choose the x64 version; ARM devices like Surface Pro X should choose ARM64.

Go to Clash Verge Rev Download
Not sure about your architecture? Right-click 'This PC' → 'Properties' → 'System type'. Choose x64 for 64-bit systems, or ARM64 for ARM-based systems.

After downloading, double-click the .exe installer and follow the prompts. Windows may show a UAC prompt; click 'Yes' to allow.

2

Import Proxy Subscription Link

Launch Clash Verge Rev, click 'Profiles' in the left menu. Paste your subscription link from your provider into the top input box and click 'Import'.

Clash Verge Rev — Profiles
Subscription Link https://your-subscription-url...
✓ 28 nodes loaded Import Successful
The subscription link is your private access; do not share it. If you don't have one, obtain it from a proxy service provider.
3

Select Profile and Switch Proxy Nodes

In the Profiles list, click the imported profile to activate it. Switch to 'Proxies' to see available nodes. Click the 'Test Speed' icon (lightning bolt) to check latency and select the best node.

Generally, latency between 50–200ms is good. Nodes over 500ms or showing 'Timeout' may have poor connectivity; we recommend switching.
4

Enable System Proxy to Start

Go to the 'Dashboard', find the 'System Proxy' toggle, and turn it on (it will turn green). Now your browser and other apps will use Clash for proxy access.

Clash Verge Rev — Dashboard
System Proxy
Proxy Mode Rule Mode
Current Node Connected · 43ms
Proxy Mode Guide: 'Rule' automatically decides between Direct or Proxy (recommended); 'Global' routes all traffic through the proxy; 'Direct' bypasses the proxy.
5

(Advanced) Enable TUN Mode — Proxy All Traffic

If some apps (like games or CLI tools) bypass the proxy, enable TUN Mode. Find the 'TUN Mode' toggle on the Dashboard. When enabled, Clash intercepts all TCP/UDP traffic at the system level for true global proxying.

Enabling TUN mode may require administrator privileges. Windows will request permission to install a virtual network driver; click 'Yes' to proceed.
1

Download and Install FlClash

FlClash is based on Flutter, offering a modern UI and consistent experience across platforms (Windows / macOS / Android / Linux). Get the Windows x64 version from our download page.

Go to FlClash Download

Double-click the .exe installer, follow the prompts, and launch the app.

2

Add Subscription Link

Click the 'Config' icon on the left, select 'Add Config' → 'Remote Config (URL)', paste your link, and click 'OK'. Once downloaded, click the config to activate it.

3

Select Proxy Node

Switch to 'Proxies', select a group, click 'Test Speed', and choose a low-latency node.

4

Start Proxy Service

Go to the 'Home' page and turn on the 'Start' toggle. FlClash will automatically enable the system proxy for your browser and apps.

Once started, FlClash will appear in the system tray. Right-click the icon to quickly switch nodes or stop the service.
1

Download and Install Clash Nyanpasu

Clash Nyanpasu supports switching between Mihomo and Clash.rs cores with rich theme customization. Get the Windows x64 installer from our download page.

Go to Clash Nyanpasu Download
2

Import Subscription Link

Go to 'Profiles' on the left, click the + icon at the top right, select 'Remote Profile', paste your link, and click 'Import'.

3

Activate Config and Select Node

Click the imported profile to activate it, switch to 'Proxies' to choose a low-latency node, and then enable 'System Proxy' on the Dashboard.

Switch themes in 'Settings → Appearance'. Clash Nyanpasu offers several beautiful built-in themes.

Clash for macOS Tutorial

Compatible with macOS 11 (Big Sur) and newer, supporting both Apple Silicon (M1/M2/M3) and Intel-based Macs. This tutorial focuses on Clash Verge Rev.

1

Download the Right Version for Your Mac

Check your chip type in 'About This Mac':
Apple M1 / M2 / M3 → Download ARM64 (Apple Silicon) version
Intel Core → Download Intel x64 version

Go to Clash Verge Rev macOS Download
2

Install App and Handle Security Prompts

Open the .dmg file and drag the app to your 'Applications' folder. If macOS says 'Developer cannot be verified' on the first launch:

Method 1 (Recommended): Go to 'System Settings → Privacy & Security' and click 'Open Anyway' at the bottom.
Method 2: Right-click the app in Finder → select 'Open' → click 'Open' in the dialog.
Method 3 (Terminal): Run xattr -rd com.apple.quarantine /Applications/ClashVergeRev.app
3

Import Subscription Link

Launch Clash Verge Rev, click 'Profiles', paste your link, and click 'Import'. Once the list loads, click the profile to activate it.

When nodes are updated, right-click the profile and select 'Update Subscription' to refresh.
4

Enable System Proxy or TUN Mode

Turn on 'System Proxy' on the 'Dashboard'. To proxy all traffic (including terminal commands), enable 'TUN Mode' as well.

The Clash Verge Rev icon will appear in your menu bar. Click it to quickly switch nodes or stop the proxy.

On macOS, System Proxy affects apps that support it (Safari, Chrome, etc.), while TUN Mode covers terminal (curl, wget) and all app traffic.
1

Download and Install FlClash

FlClash offers Apple Silicon (ARM64) and Intel (amd64) versions. Please choose the one matching your Mac\'s chip.

Go to FlClash macOS Download

Open the .dmg, drag the app to 'Applications', and launch it. If blocked by security, click 'Open Anyway' in Privacy & Security settings.

2

Add Subscription and Start Proxy

Click 'Config' → 'Add Config' → 'Remote URL', paste your link, and confirm. Activate the config, choose a node in 'Proxies', and turn on 'Start' on the Home page.

Clash for Android Tutorial

For Android 5.0 and above. This tutorial focuses on FlClash (recommended), with instructions for Surfboard.

1

Download and Install FlClash APK

Most Android phones released after 2016 use ARM64 architecture; we recommend downloading the ARM64 version. Try ARMv7 if that fails.

Go to FlClash APK Download
Installing third-party APKs requires 'Allow installation from unknown sources'. Enable this in 'Settings → Security' or 'Settings → Apps → Special app access'.

Once downloaded, tap the APK in your notification bar and follow the prompts to install.

2

Add Subscription Link

Open FlClash, tap the 'Config' icon at the bottom, tap the '+' button at the bottom right, select 'Import from URL', paste your link, and click 'Confirm'. Wait for the node data to download.

We recommend importing subscriptions over Wi-Fi. Large node lists may take some time to download.
3

Select Proxy Node

Go to 'Proxies', tap a group to expand the list. Tap the 'Test Speed' icon at the top right, and select a low-latency node.

Latency under 200ms is excellent. If all nodes show timeout, try 'Update Subscription' to refresh the list.
4

Enable VPN Mode to Start

Go to the Home page and tap the 'Start' button. Tap 'OK' when the system requests VPN connection permission. Once connected, a 'VPN' icon will appear in your status bar.

FlClash — Home
Proxy Status ● Connected
Current Node HK-01 · 56ms
Traffic Stats ↑ 2.3MB/s · ↓ 8.1MB/s
1

Download and Install Surfboard

Surfboard provides a Universal version compatible with all Android architectures. Simply download and install.

Go to Surfboard APK Download
Ensure 'Allow installation from unknown sources' is enabled in your security settings before installing.
2

Add Subscription and Start Proxy

Open Surfboard, tap 'Config' at the bottom, then tap '+' → 'Download from URL' to import. Switch to 'Proxies' to choose a node, then tap 'Start' on the 'Home' page and authorize VPN permission.

Clash for iOS Tutorial

Due to App Store policies, there is no official Clash client for iOS. However, the following two apps are fully compatible with Clash subscription links and YAML configs, offering an experience similar to the desktop versions.

Shadowrocket
Classic • Paid • App Store

Commonly known as 'Shadowrocket', this classic iOS proxy client is compatible with Clash subscriptions and configs. It supports Shadowsocks, VMess, Trojan, and more. Highly flexible and favored by advanced users. Approx. $2.99; requires a non-mainland Apple ID.

Search 'Shadowrocket' in App Store
1

Purchase and Install Stash from App Store

Open the App Store, search for 'Stash', find the Rule-Based Proxy app, and purchase it. For Shadowrocket, you must switch to a US or HK Apple ID.

These apps are unavailable in the Mainland China App Store. You will need a US, HK, or TW Apple ID. You can purchase gift cards for these regions to top up your account.
2

Import Subscription Link in Stash

Open Stash, tap 'Config' at the bottom, tap '+' at the top right, select 'Download from URL', paste your Clash subscription link, and tap 'OK'.

Once downloaded, tap the toggle next to the profile to activate it.

Stash is fully compatible with standard Clash YAML formats. Your provider\'s subscription link can be used directly without any conversion.
3

Select Proxy Node

Go to 'Proxies', expand the policy group, tap the 'Test Speed' icon (lightning bolt) at the top right, and select a low-latency node.

4

Enable VPN and Start

Go to the 'Home' page, tap 'Connect', and 'Allow' the VPN configuration request from iOS (enter your passcode if prompted). Once connected, a 'VPN' icon will appear at the top of your screen.

You can quickly disconnect from the iOS Control Center or check the status in 'Settings → VPN'.

Clash for Linux Tutorial

Supports Ubuntu, Debian, Fedora, and more. This guide covers both the GUI client (Clash Verge Rev) and the command-line core (Mihomo).

1

Download and Install Clash Verge Rev

Choose the installer for your Linux distribution:
Ubuntu / Debian: Download the .deb package
Fedora / CentOS / RHEL: Download the .rpm package

Go to Clash Verge Rev Linux Download
2

Install via Command Line

Open the terminal, navigate to the download directory, and run the following command:

# For Debian / Ubuntu (.deb package)
sudo dpkg -i clash-verge-rev-linux-amd64.deb
# For Fedora / CentOS (.rpm package)
sudo rpm -i clash-verge-rev-linux-x86_64.rpm
# Or use dnf for installation
sudo dnf install ./clash-verge-rev-linux-x86_64.rpm
Once installed, search for 'Clash Verge' in your app launcher, or run clash-verge-rev in the terminal.
3

Import Subscription and Start Proxy

The steps are identical to the Windows version: 'Profiles' → Paste Link → 'Import' → Activate Config → Enable 'System Proxy' on the Dashboard.

In GNOME/KDE, system proxy settings are automatically injected. For TUN mode, root privileges are required to install the virtual network card.
1

Download Mihomo Core Binary

Choose the version for your server architecture:
x86_64 Servers: mihomo-linux-amd64.gz
ARM64 / Raspberry Pi: mihomo-linux-arm64.gz
Routers (OpenWRT / MIPS): mihomo-linux-mips-softfloat.gz

Go to Mihomo Core Download
2

Extract and Grant Permissions

# Extract the gz file
gunzip mihomo-linux-amd64.gz
# Rename to 'mihomo' and grant execution permission
mv mihomo-linux-amd64 /usr/local/bin/mihomo
chmod +x /usr/local/bin/mihomo
3

Prepare Configuration

Create a config directory and place your YAML file (config.yaml) inside:

mkdir -p ~/.config/mihomo
cp config.yaml ~/.config/mihomo/config.yaml
The config uses the standard Clash YAML format, containing proxies, proxy-groups, and rules.
4

Start Mihomo Service

# Run in foreground (for testing)
mihomo -d ~/.config/mihomo
# Configure as a systemd service (background)
sudo systemctl enable mihomo
sudo systemctl start mihomo
# Check running status
sudo systemctl status mihomo

By default, it listens on 7890 (HTTP) and 7891 (SOCKS5), with the Web UI on 9090 for browser management.

Mihomo Core (CLI) Tutorial

Mihomo (formerly Clash Meta) is the most active Clash core branch. With no GUI, it\'s ideal for Routers (OpenWRT), NAS, Servers, and Raspberry Pi, or for advanced users replacing cores in GUI clients.

1

Download Mihomo Core Binary

Choose the version based on your CPU architecture:

  • x86_64 VPS / Servermihomo-linux-amd64.gz
  • ARM64 (Raspberry Pi 4, Oracle ARM Cloud)mihomo-linux-arm64.gz
  • ARMv7 (Older Routers, Raspberry Pi 2/3)mihomo-linux-armv7.gz
  • MIPS Router (Soft Float)mihomo-linux-mips-softfloat.gz
  • Ubuntu / Debian (apt install)mihomo-linux-amd64.deb
Go to Mihomo Core Download
Not sure about your architecture? Run uname -m: x86_64 means amd64, aarch64 means arm64, and armv7l means armv7.
2

Extract and Install to System Path

# Extract gz archive
gunzip mihomo-linux-amd64.gz
# Move to /usr/local/bin and rename
sudo mv mihomo-linux-amd64 /usr/local/bin/mihomo
sudo chmod +x /usr/local/bin/mihomo
# Verify installation (output version number)
mihomo -v

If you downloaded a .deb package, install it via apt:

sudo dpkg -i mihomo-linux-amd64.deb
3

Create Config Directory and Add YAML

Mihomo reads ~/.config/mihomo/config.yaml by default, or you can specify a directory with the -d flag.

mkdir -p ~/.config/mihomo
# Copy your provider\'s YAML file to the directory
cp config.yaml ~/.config/mihomo/config.yaml
Providers usually offer Clash/Mihomo subscription links. You can also download the config directly via curl.
4

Test Run in Foreground

# Start using default config directory
mihomo -d ~/.config/mihomo

Once started, the terminal will show logs and default listening ports:

  • HTTP Proxy127.0.0.1:7890
  • SOCKS5 Proxy127.0.0.1:7891
  • Web UI Dashboardhttp://127.0.0.1:9090/ui
Visit http://127.0.0.1:9090/ui to open Yacd or Metacubexd for node switching and traffic stats without the command line.
5

Configure as systemd Service (Auto-start)

Set up Mihomo as a system service to run automatically on boot.

# Create systemd service file
sudo tee /etc/systemd/system/mihomo.service > /dev/null <<EOF
[Unit]
Description=Mihomo Proxy Service
After=network.target
[Service]
ExecStart=/usr/local/bin/mihomo -d /root/.config/mihomo
Restart=on-failure
[Install]
WantedBy=multi-user.target
EOF
# Enable and start the service immediately
sudo systemctl daemon-reload
sudo systemctl enable --now mihomo
# Check running status
sudo systemctl status mihomo
1

Download Mihomo for Windows

Mihomo offers Windows x64 and ARM64 versions in .zip format.

Go to Mihomo for Windows Download
Mihomo for Windows is a pure CLI tool with no GUI. For a graphical interface, please use Clash Verge Rev (which has Mihomo built-in).
2

Extract and Run

Extract the .zip, place mihomo-windows-amd64.exe in any directory, create a config.yaml, then run PowerShell (as Admin):

# Navigate to the exe directory
cd C:\Users\YourName\mihomo
# Start with specified config directory
.\mihomo-windows-amd64.exe -d .
After starting, visit http://127.0.0.1:9090/ui for node management. Manually set the HTTP proxy to 127.0.0.1:7890 in 'Windows Settings → Network → Proxy'.
1

Download Mihomo for macOS

Choose version: Apple Silicon (M-series) for mihomo-darwin-arm64.gz, or Intel Mac for mihomo-darwin-amd64.gz.

Go to Mihomo for macOS Download
2

Extract, Authorize, and Run

# Extract
gunzip mihomo-darwin-arm64.gz
# Move to system path and authorize
sudo mv mihomo-darwin-arm64 /usr/local/bin/mihomo
sudo chmod +x /usr/local/bin/mihomo
# Remove Gatekeeper quarantine attribute
xattr -rd com.apple.quarantine /usr/local/bin/mihomo
# Create config directory and start
mkdir -p ~/.config/mihomo
mihomo -d ~/.config/mihomo
macOS Gatekeeper blocks unsigned programs. Running `xattr -rd com.apple.quarantine` removes the quarantine attribute so the program can run normally.
1

Identify Router CPU Architecture and Download Core

Most home routers use MIPS or ARM. Log in via SSH and run `uname -m` or `cat /proc/cpuinfo` to check:

  • MIPS Routers (Most home routers)mihomo-linux-mips-softfloat.gz
  • ARM Routers (R2S, R4S, Raspberry Pi)mihomo-linux-armv7.gz or mihomo-linux-arm64.gz
  • x86 Soft Routers (J1900, N100, etc.)mihomo-linux-amd64.gz
Go to Mihomo Core Download (Router version)
2

Upload Core to Router and Extract

Upload the .gz file via SCP or WinSCP, then log in via SSH and run:

# Upload core file from local to router
scp mihomo-linux-mips-softfloat.gz [email protected]:/tmp/
# Extract and install on router
gunzip /tmp/mihomo-linux-mips-softfloat.gz
mv /tmp/mihomo-linux-mips-softfloat /usr/bin/mihomo
chmod +x /usr/bin/mihomo
3

Create Config and Test Start

mkdir -p /etc/mihomo
# Upload YAML config to /etc/mihomo/config.yaml
scp config.yaml [email protected]:/etc/mihomo/
# Test start
mihomo -d /etc/mihomo
For OpenWRT routers, we recommend using iptables transparent proxy or nftables to redirect LAN traffic to the Mihomo TProxy port (7892). This enables seamless proxying for all household devices. See the Mihomo Wiki for details.
4

Configure Auto-start (init.d)

# Create init.d startup script
cat > /etc/init.d/mihomo <<'EOF'
#!/bin/sh /etc/rc.common
START=99
start() { mihomo -d /etc/mihomo & }
stop() { killall mihomo; }
EOF
chmod +x /etc/init.d/mihomo
/etc/init.d/mihomo enable
/etc/init.d/mihomo start

Clash Core ConfigDetails

Master subscription links, YAML configs, and rule-based routing to maximize Clash\'s potential.

Subscription URL

A subscription link is a URL from your provider that Clash uses to automatically download and update node configurations. It\'s the easiest setup method.

  • 1Copy the Clash-format subscription link from your provider\'s dashboard.
  • 2Paste the link into the 'Profiles' page and import.
  • 3We recommend setting the auto-update frequency to every 24 hours.
  • 4Keep your subscription link private; do not share it publicly.

YAML Config Structure

Clash uses YAML for its configuration, consisting of three main parts. Advanced users can edit these for granular control.

# Basic port settings
port: 7890 # HTTP proxy port
socks-port: 7891
mode: rule # Rule / Global / Direct
# Proxy node list
proxies:
- name: HK-01
type: vmess
# Rules (Domain/IP routing)
rules:
- DOMAIN-SUFFIX,google.com,PROXY
- GEOIP,CN,DIRECT

Three Proxy Modes

Switch modes based on your needs without editing the config file.

  • Rule (Recommended): Automatically routes traffic—direct for local sites and proxy for international sites. Best for daily use.
  • Global: Routes all traffic through the proxy. Useful for temporary full-proxy needs.
  • Direct: Bypasses the proxy; all traffic goes direct. Good for testing or pausing the proxy.

TUN Mode — Proxy All Traffic

TUN mode creates a virtual network adapter at the system level to intercept all TCP/UDP traffic. It's ideal for games and CLI tools that don't support system proxies.

  • 1Enable 'TUN Mode' on the Dashboard.
  • 2On Windows, administrator privileges are required to install the Wintun driver for the first time.
  • 3On macOS, you may need to allow the driver in 'System Settings → Privacy & Security'.
  • 4In TUN mode, all apps (including games and terminal) are routed according to Clash rules.

Clash FAQCommon IssuesAnswers

A compilation of common issues and solutions covering connection errors, installation failures, and configuration problems.

Browser still can\'t access sites after starting Clash. What should I do?

Follow these steps:
① Ensure 'System Proxy' is enabled (green).
② Check if a node is selected in 'Proxies' and test its connection via 'Test Speed'.
③ Try switching to 'Global' mode.
④ Check if Windows Firewall is blocking the client.
⑤ If the browser ignores the proxy, manually set it: address 127.0.0.1, port 7890.

How to fix 'App cannot be opened because developer cannot be verified' on macOS?

Method 1 (Recommended): 'System Settings → Privacy & Security → Open Anyway'.
Method 2: Right-click the app in Finder → 'Open' → click 'Open' in the dialog.
Method 3 (Terminal): Run `xattr -rd com.apple.quarantine /Applications/AppName.app`.
This is standard macOS Gatekeeper behavior for unsigned apps; these steps are safe.

Slow speeds or no internet after enabling TUN mode?

① TUN mode adds some overhead; choose low-latency, stable nodes.
② Try 'System Proxy + Rule Mode' for smoother daily use.
③ Check for conflicts with other VPN software (multiple VPNs cause routing conflicts).
④ On Windows, try running the client as Administrator before enabling TUN mode.

What is Clash rule-based routing? How do I customize rules?

Rules allow Clash to decide if a request should go via proxy or direct. Common types:
• DOMAIN-SUFFIX,example.com,PROXY — Proxy specific domains.
• DOMAIN-KEYWORD,google,PROXY — Keyword matching.
• IP-CIDR,192.168.0.0/16,DIRECT — Direct for specific IPs.
• GEOIP,CN,DIRECT — Direct for Chinese IPs (most common).
• MATCH,PROXY — Default rule for everything else.
Clash Verge Rev has a visual editor so you don\'t have to edit the YAML manually.

'Download Failed' or empty node list after importing subscription?

Possible causes:
① Subscription expired; contact your provider.
② Network issues; try turning off the system proxy before importing (avoid proxy-over-proxy).
③ Incorrect format; ensure you copied the full URL (starts with http:// or https://).
④ If it\'s an SSR/V2Ray link, it must be converted to Clash YAML format first.

Android APK 'App not installed' or installation failed?

① Enable 'Allow installation from unknown sources' in Security settings.
② Ensure you downloaded the correct version (ARM64 for most modern phones).
③ Try the 'Universal' version if ARM64 fails.
④ Some phones (Huawei, Xiaomi) have extra security filters; follow the prompts to bypass.

How to bypass proxy for specific apps?

In Clash Verge Rev, go to 'Settings → Bypass System Proxy' and add local IP ranges (e.g., 192.168.0.0/16) or specific domains. For TUN mode, add process names (e.g., game clients) to the `tun.bypass` field. You can also use `PROCESS-NAME,app.exe,DIRECT` in your YAML rules.

All nodes timeout or have extremely high latency. What\'s the fix?

① Click 'Update Subscription' to refresh the node list.
② Try nodes in different regions (e.g., switch from HK to Japan or Singapore).
③ Check your local network and test speed during off-peak hours.
④ If all nodes timeout, it may be a provider outage; contact them.
⑤ Your network may be throttling certain ports; try obfuscation features like WebSocket over TLS if available.

Haven\'t downloaded Clash yet?

Visit the download page, select your platform, and download the latest Clash client—free, open-source, and forever available.