Clash FAQ
Frequently Asked Questions · Reference · 20 questions across four categories
This page catalogs 20 real Clash questions across four categories — basics, setup, usage, and troubleshooting: importing and fixing subscription links, working with rules and proxy groups, TUN mode permissions and when to use it, system proxy failures, UWP loopback restrictions, and DNS leak checks. Each answer gives concrete steps to follow, and entries touching deeper configuration link out to the protocol reference and related articles.
Basics
5 questions on terminology and how the ecosystem fits together: what Clash actually is, how the core relates to clients, and what a subscription link is and how to keep it safe.
What is Clash, and how is it different from a VPN?
Clash is an open-source proxy client core that forwards local network traffic according to rules; it doesn't provide any nodes itself. It supports proxy protocols like Shadowsocks, VMess, Trojan, VLESS, and Hysteria2, with nodes and routing rules described in a YAML config file. The difference from a VPN comes down to how traffic is handled: a VPN typically tunnels all device traffic through a single provider, while Clash evaluates every connection against the rule list — traffic matching a proxy rule goes through a node, traffic matching a direct rule connects straight through, and traffic matching a reject rule is dropped outright. Nodes can come from any provider or a self-hosted server.
How do the original Clash, Clash Meta (mihomo), and GUI clients relate to each other?
The original Clash core was built by Dreamacro and was archived in late 2023. Clash Meta, a community fork that added features on top of it, was later renamed mihomo and is now the dominant core. GUI clients (Clash Plus, Clash Verge Rev, FlClash, Clash Nyanpasu, and others) wrap that core with an interface, subscription management, and system proxy settings. What users install day to day is the client; the client then calls the core to actually route traffic. Every client listed on this site's download page is built on the mihomo core.
What is a subscription link, and what does it contain?
A subscription link is a URL provided by your subscription source. Your client fetches it once to pull down the full node list and routing rules, and can refresh it on a schedule to stay current. The content is usually a Base64-encoded node list or a complete Clash YAML config. Treat a subscription link like a login credential — anyone who has it can use its nodes, so don't share it publicly. If you suspect it's leaked, ask your provider to reset it.
Is Clash itself paid software?
No. The Clash core and nearly all GUI clients are released under open-source licenses such as GPL-3.0, and downloading and using them follows those license terms. What usually costs money is the node service itself — the proxy server bandwidth behind a subscription link — and that's priced by the subscription provider, not tied to the client software at all.
Can you use Clash without a subscription link?
Yes. Clients support adding a single node manually — just enter the server address, port, protocol, and password directly in the config — or you can import a local YAML config file. A subscription link is just a convenient way to distribute and update nodes in bulk; it's not the only way in. Users running their own servers typically configure nodes by hand anyway.
Setup
5 questions on installing and importing: the install process, subscription import, fixing expired links, macOS blocking the app, and startup launch.
What's the basic process for installing a client on Windows?
Using Clash Plus as an example: download the Windows installer from the download page and run it, following the setup wizard. On first launch, go to the subscription (profile) page, paste your subscription link, and save it — the client will fetch the node list right away. Back on the main screen, turn on the system proxy toggle, and your browser and most desktop apps will start routing traffic according to the rules. Clash Verge Rev, FlClash, and similar clients follow the same steps, just with different layouts.
See alsoGetting Started Guide, Download page
How do you import a subscription link into a client?
Menu labels vary slightly between clients, but generally you go to the profiles (or subscriptions) page and click New or Import, paste the subscription URL, give it a name, and confirm — the client will download and parse it right away. Once imported, you need to select that profile to activate it (some clients select it automatically). After that, you can refresh it manually from the same page or set an auto-update interval to keep the node list synced with your provider.
What if a subscription link stops working or fails to load?
First check the link itself: paste the subscription URL into your browser's address bar — if it downloads a chunk of text, the link is still valid. If it loads fine in a browser but the client can't fetch it, the usual cause is a conflict between the client's own proxy settings and its current node state — try turning off the system proxy before updating, or toggle off the option to use the system proxy when updating subscriptions, then retry. If the browser can't load it either, the link has expired and you'll need to get a new one from your provider.
What to do when macOS says the app is damaged and won't open?
This is Gatekeeper's default block on third-party apps that haven't been notarized by Apple — it doesn't mean the installer is actually broken. There are two fixes: go to System Settings → Privacy & Security, find the relevant prompt, and choose Open Anyway; or run xattr -cr /Applications/Clash Plus.app in Terminal to clear the quarantine flag, then relaunch the app. Both are standard steps for running open-source clients on macOS.
How do you set a client to launch on startup?
Most clients have a launch-on-startup toggle right in their settings — just turn it on, no need to add a startup entry manually. Combine it with start-minimized-to-tray for a fully silent launch. On Windows, this works through a startup entry or scheduled task; on macOS it uses login items, so if the toggle is off but the app still launches at startup, check System Settings → General → Login Items and remove it there.
Usage
5 questions on modes and routing: the three proxy modes, proxy groups, latency testing, TUN mode, and direct-connect exceptions.
What's the difference between Rule, Global, and Direct proxy modes?
Rule mode matches traffic against the rule list in order: traffic matching a proxy rule goes through a node, traffic matching a direct rule connects straight through, and anything left over falls back to the catch-all MATCH rule at the end — this is the recommended everyday mode. Global mode ignores the rules entirely and routes all traffic through whichever node is selected, useful for temporarily proxying everything at once. Direct mode routes nothing through a proxy at all, effectively pausing proxying.
How do you route different sites through different nodes?
This is handled by proxy groups in your config: a proxy group bundles nodes into a selectable exit, and rules then point specific domains or IPs at a given group. For example, you might point a streaming group at low-latency nodes and a downloads group at high-bandwidth ones. You can pick nodes manually per group in the client UI, or use a url-test group that auto-selects based on latency. Rules are matched top to bottom and stop at the first hit, so their order determines priority.
See alsoA Deep Dive Into Custom Rule Syntax, Rule-Based Traffic Splitting in Practice
What do the latency numbers next to nodes actually mean?
The latency test sends a single HTTP request to the node and shows the round-trip time. That number only reflects connectivity and latency to the node's server — it says nothing about actual download bandwidth, so weigh both when picking a node. A node showing as timed out is currently unreachable; try another node, or update your subscription and re-test.
What is TUN mode, and when do you actually need it?
TUN mode creates a virtual network adapter that takes over all TCP/UDP traffic on the device, independent of any app's own proxy settings. The default system proxy mode only affects apps that respect system proxy settings — games and some command-line tools ignore it entirely, and TUN mode is the only way to catch that traffic. Enabling TUN requires admin/root privileges and installs a virtual adapter driver. You don't need it for everyday browsing — turn it on specifically when you need to proxy one of these stubborn apps.
How do you keep a specific app or site out of the proxy?
There are two approaches. First, add a direct rule near the top of your rule list, e.g. DOMAIN-SUFFIX,example.com,DIRECT — anything matching it connects directly. Second, on Windows, the system proxy settings let you maintain a bypass list; addresses on it skip Clash entirely, which is handy for LAN addresses and domains you always want direct. For quick one-off cases, you can also switch the relevant proxy group to DIRECT, or switch the whole client to Direct mode.
Troubleshooting
5 questions on fixing problems: node timeouts, system proxy failures, TUN permissions, UWP loopback, and DNS checks.
What if every node shows as timed out?
Work through this checklist: update your subscription to rule out a stale node list; switch networks — say, from Wi-Fi to a phone hotspot — to rule out local network interference with the proxy port; check your system clock, since TLS-based protocols like Trojan and VLESS are sensitive to time drift and a gap of even a minute or two can break the handshake; and try the same subscription on another device or client to see whether the problem is on the node side or your machine. If every node times out across multiple networks, the subscription itself is most likely dead.
System proxy is on, but the browser still isn't using it?
First confirm the client's system proxy toggle is actually on and that its listening port isn't already taken by another proxy app — running two proxy clients at once is the single most common cause. Next, check whether your browser has an extension with its own built-in proxy feature; extension proxies take priority over the system proxy, so if they conflict, the extension wins. Finally, double-check that the system proxy setting points to 127.0.0.1 and the client's listening port, commonly 7890.
TUN mode reports insufficient permissions or fails to create the virtual adapter?
TUN requires OS-level privileges. On Windows, run the client as administrator, or enable the client's service mode so a background service holds the permissions instead. On macOS, you'll be prompted for your password the first time you enable it, to authorize installing a helper tool. On Linux, you need root, or add the cap_net_admin capability to the executable. If it still fails after granting permissions, check for conflicts with other VPN or accelerator software — multiple virtual adapters fighting over the routing table is a common cause; quit the conflicting software and try again.
UWP apps (Microsoft Store apps, etc.) on Windows won't go through the proxy?
This comes down to UWP's sandboxed loopback restriction: UWP apps are blocked from reaching 127.0.0.1 by default, so they can't connect to Clash's local proxy port. There are two fixes: enable TUN mode, which intercepts traffic at the network adapter level and isn't affected by the loopback restriction; or exempt the specific app from loopback isolation — some clients include a built-in UWP loopback tool where you just check the target app. Once exempted, the UWP app routes through the system proxy like any regular desktop app.
How do you check for a DNS leak or odd domain resolution behavior?
The typical symptom is a domain that won't load while its IP address works fine, or a site that redirects to the wrong page. Clash has a built-in DNS module — nameserver in the config handles regular resolution, while fallback handles domains affected by DNS poisoning. Start by confirming the client's DNS settings are actually enabled, then check whether your browser's secure DNS (DoH) is conflicting with Clash's own resolution — browser DoH bypasses Clash's DNS entirely, so try disabling it temporarily to compare.
Beyond This FAQ
Anything not covered here can be found elsewhere on the site: the full setup walkthrough is in the Getting Started Guide, protocol differences and how the core relates to clients are covered in the Protocol Reference, and long-form deep dives on rules, DNS, and other topics live in the blog.