Windows
Compare Clash Plus, Clash Verge Rev, and FlClash for your Windows version. Browsers usually follow the system proxy; games and store apps may need TUN, loopback access, or firewall setup.
Go to downloadsIOS · MACOS · MIHOMO CORE
Choose a client for your device, then set up subscription imports, rule-based routing, and system permissions. Finally, verify which proxy endpoint your connection uses.
CONFIGURATION INDEX
In a Clash configuration, proxies define connection endpoints, proxy groups select among them, and rules match connections. First make sure the active kernel can parse the configuration, then adjust how it handles system traffic. This helps distinguish configuration errors from permission issues. On Apple platforms, check the client's supported features rather than assuming fields are compatible based on similar interface labels.
RULES / FIRST MATCH
Rules are checked from top to bottom, and the first match selects a proxy group. Put rules for specific domains before catch-all rules. Select rule mode in the client, then check the connection log to see which rule matched. Editing a file without reloading it won't change the running configuration. On Apple platforms, routing also depends on whether the connection reaches the client; apps outside the system proxy won't be matched by these rules. Unlike global mode, rule mode can keep local network traffic and selected sites on a direct connection. If your subscription already includes rules, add your own through the client's override feature to avoid losing them on the next update.
# This snippet uses built-in policies only
mode: rule
rules:
- DOMAIN-SUFFIX,example.com,DIRECT
- IP-CIDR,192.168.0.0/16,DIRECT,no-resolve
- MATCH,REJECT
The example uses REJECT as a catch-all to illustrate rule order. In practice, replace it with a defined proxy group.
PROXY GROUPS / SELECTION
Proxy groups organize nodes into selectable endpoints. Use a manual group to stick with a specific route; a URL-test group selects a candidate based on its probe results. Test duration doesn't indicate actual browsing speed across all sites. In an Apple client, expand the proxy group on the Proxies page to see the current selection and run a test. Supported fields depend on the kernel in use. Nested proxy groups make it easy to switch between manual and automatic selection, rather than choosing nodes one by one. When renaming a group, update any rules that reference it to avoid errors when loading the configuration.
# DIRECT is a built-in policy; add configured nodes to the candidate list
proxy-groups:
- name: PROXY
type: select
proxies:
- DIRECT
rules:
- MATCH,PROXY
TUN / NETWORK STACK
The system proxy works mainly with apps that respect proxy settings. TUN uses a virtual network interface to capture more connections, including those from apps that ignore the system proxy. A macOS client may require a helper service or approval for a network extension, depending on how it works. iOS usually creates a tunnel through the system VPN configuration; this doesn't mean desktop TUN fields can be used directly. Before switching modes, disable other tools that route network traffic and keep a copy of your current configuration. If local network access breaks, check routes and exclusions instead of repeatedly switching nodes.
# Requires client support and the necessary system permissions
tun:
enable: true
stack: mixed
auto-route: true
auto-detect-interface: true
dns-hijack:
- any:53
DNS / RESOLUTION
A DNS lookup failure and a proxy connection timeout are different problems. First check the logs to see whether the destination address was resolved, then find out which route the DNS request took. A browser error alone doesn't tell you whether a node is at fault. Supported clients can use mihomo's separate DNS configuration; check the client documentation to see whether those fields are available on Apple mobile devices. Compared with relying on system DNS, a separate configuration gives you more control over the resolution path, but also involves upstream reachability, caching, and rule matching. Reload the configuration and start a new connection after making changes so cached results don't affect your test.
# Choose upstreams based on reachability on your current network
dns:
enable: true
enhanced-mode: fake-ip
fake-ip-range: 198.18.0.1/16
nameserver:
- https://1.1.1.1/dns-query
SUBSCRIPTION / LIFECYCLE
Client subscriptions usually import a full configuration, while proxy providers supply only a collection of nodes. These are different import options. After pasting a link on the configuration page, check that it downloaded successfully, that the configuration is selected, and that its proxy groups appear. Import buttons may have different names on Apple platforms, but the checks are the same. Use a separate override to keep personal rules instead of editing a remote configuration directly, and note your customizations before updating a subscription. Subscription URLs may contain access credentials; store them in a trusted client and hide the full link when sharing logs or screenshots.
proxy-providers:
local-nodes:
type: file
path: ./providers/local.yaml
proxy-groups:
- name: PROXY
type: select
use:
- local-nodes
rules:
- MATCH,PROXY
Prepare a local file with a valid proxies list first; this snippet does not provide any proxy nodes.
See installation guides and configuration fields for all platforms →
CLIENT SHELF
Check your operating system first, then your processor architecture, and finally the client's kernel and configuration format. You can import the same subscription on multiple devices, but system permissions, proxy ports, and traffic-routing settings aren't interchangeable. The download page lists installers by platform, along with archive status and compatibility requirements. Check each client listing for version details.
Compare Clash Plus, Clash Verge Rev, and FlClash for your Windows version. Browsers usually follow the system proxy; games and store apps may need TUN, loopback access, or firewall setup.
Go to downloadsCheck About This Mac for Apple silicon or Intel, then choose the matching installer. Approve required permissions on first launch. System proxy settings, background services, and network extensions have different roles.
Go to downloadsChoose Clash Plus or Clash Meta for Android to match your configuration and processor architecture. After connecting, check battery and background restrictions: screen-off disconnections may come from Android rather than an expired subscription.
Go to downloadsFind Clash Plus on the App Store and verify details at clashplus.io. Import a supported subscription, approve the iOS VPN configuration, then connect. Check mobile support before reusing desktop settings.
Go to downloadsChoose Clash Verge Rev or FlClash in your distribution's package format, or standalone mihomo for servers and routers. Configure services and firewall routing separately; a GUI installation alone does not proxy terminal traffic.
Go to downloadsBrowse all clients →Compare clients and selection criteria →
QUICKSTART / THREE CHECKPOINTS
For your first setup, leave the client's network settings at their defaults and check in this order: configuration is valid → proxy endpoint works → app traffic reaches the proxy. Change one thing at a time and check the logs; this makes problems easier to isolate than changing DNS, rules, and TUN together. Before you begin, prepare a supported configuration file or subscription link. Downloading a client doesn't provide a proxy service.
01 / IMPORT
Open the configuration or subscription page, add a remote configuration, and paste the full URL. Wait for the client to confirm a successful update, then select it as the active configuration. Next, open the Proxies page and check that proxy groups and candidate nodes appear. If the import fails, check whether the link has expired, whether it returns a supported configuration format, and whether your network can reach it. A webpage URL or login page isn't a subscription link.
02 / CONNECT
Choose an available node in a proxy group, then enable the system proxy or the client's VPN connection. The first time you enable a service on macOS or add a VPN configuration on iOS, approve the system prompt and return to the client to check its connection status. If another VPN or proxy tool is running, disable one first to avoid route or port conflicts. Rule mode lets you keep selected traffic on a direct connection; use global mode only for a brief comparison test.
03 / VERIFY
Open a site you can access and check the client's connection log for the destination domain, matching rule, and actual proxy endpoint. If the connection appears but the request fails, check the node and DNS resolution. If there's no connection in the log, first check whether the app uses the system proxy or enters the tunnel. Reopen the page or start a new connection to test your changes; existing long-lived connections may keep using the previous endpoint and don't confirm that new settings are working.
Read the full setup guide →Explore rules, proxy groups, and DNS concepts →
OPEN SOURCE / PROJECT BOUNDARIES
After the original Clash project was discontinued, community projects continued to use its configuration formats and established workflows. To decide whether a client is still suitable, check its maintenance status, the kernel it uses, and current OS compatibility notes—not just whether its name includes Clash. Archived clients can help you understand older configurations, but don't expect them to support new protocols or changes to system networking automatically.
mihomo evolved from the Clash Meta fork and handles protocol support, rule matching, proxy groups, and networking. GUI clients build on the kernel to provide configuration management, system proxy settings, permission prompts, and logs. A kernel's support for a field doesn't mean every GUI client exposes that option, and a client update doesn't necessarily replace its bundled kernel. When reading configuration docs, keep these two layers separate.
macOS desktop clients can route different types of traffic through the system proxy, a background service, or a network extension. iOS is subject to restrictions on apps and system tunnels. Implementations vary by product: support for Clash configurations doesn't automatically mean a client uses the mihomo kernel. Before choosing a client, check its subscription format, required protocols, and routing features, then confirm the system permission steps for your device. This helps avoid situations where a configuration imports successfully but the features you need aren't available.
Before updating, save a restorable copy of your configuration and note any custom rules, ports, and network settings. Read the client and kernel release notes for changes to deprecated fields, default behavior, and permission flows. After updating, retest rule matches and proxy endpoints with the same destinations. Source code, release history, and issue discussions can help confirm how something works, but they can't replace testing on your network or guarantee that any third-party subscription will work.
git clone https://github.com/MetaCubeX/mihomo.git
This command downloads the source code only; you'll need to set up a development environment separately to build and run it.
READING / RECENT NOTES
Once your basic connection works, find a guide for the issue you're facing. Interface guides help you locate settings, ecosystem explainers clarify which component provides a feature, and platform troubleshooting covers OS-specific network restrictions. Note your current settings before making changes, and check each guide's requirements rather than applying instructions for another platform to your device.
Learn how to switch proxy groups, manage subscriptions, and filter logs by level. If you're new to the client, find where to select a configuration first, check the active endpoint on the Proxies page, then use the logs to troubleshoot configuration and connection errors.
Read article →Learn the differences between the original kernel, the Meta fork, and mihomo, and how GUI clients depend on their kernels. Use this guide to check protocol and configuration support without conflating a client's name, supported formats, and actual kernel implementation.
Read article →Understand UWP apps' loopback restrictions and how to address them with CheckNetIsolation or client tools. First identify the app type and local proxy listener, then add an exemption if needed and keep a way to undo the change.
Read article →