First-Run Setup Checklist for Clash Clients: Permissions, Subscription Import, and Proxy Modes
A step-by-step checklist for people installing a Clash-based client for the first time: system permission grants, subscription import, proxy mode selection, and the system proxy switch, plus the most common first-run pitfalls on each platform and how to fix them.
Why the first install trips up so many people
Clash-based clients (Clash Verge, Clash Plus, and other mihomo-core products among them) need to get through several independent but order-sensitive steps on first launch: granting system-level network permissions, parsing and importing a subscription, choosing a proxy mode, and deciding whether to enable the system proxy or TUN takeover. Get the order wrong, or skip a permission, and the symptoms usually show up as "no internet," "empty node list," or "browser won't load pages" — but the actual cause is often completely unrelated to whatever error message appears. This checklist follows the real install order so first-timers can avoid the usual detours, and it also doubles as a reference for troubleshooting later.
Worth stating up front: Clash itself doesn't provide any nodes. It's a rule-based proxy dispatch framework, and the actual connectivity comes from whatever subscription you import. The client's job is to parse the subscription, manage rules, switch nodes, and intercept system traffic — those four jobs map to the four sections below.
Step 1: Grant system permissions
The exact permissions differ by platform, but the common failure mode is the same: without the right permission, the client opens fine, the UI looks normal, but the proxy simply doesn't take effect — often with no obvious error dialog. This is where most beginners get stuck.
Windows
Run the client as administrator on first launch, especially if you plan to enable TUN mode (virtual network adapter taking over all traffic) — TUN needs to create a network adapter, and that fails silently under a standard user account.
Windows Defender or third-party security software may block the core process (mihomo.exe, clash-core.exe, or similar). Allow it the first time a block prompt appears, or the proxy core gets killed outright.
Corporate machines or Group Policy environments may block changes to the system proxy settings. If "the browser still isn't using the proxy after I set it" happens, check for policy restrictions first.
macOS
Enabling TUN mode triggers an "Allow VPN configuration" or network extension authorization prompt. This needs to be confirmed manually under Privacy & Security in System Settings — dismiss it once and it won't reappear automatically, so you'll need to go grant it manually afterward.
On Apple Silicon Macs, the first run of an unsigned or non-App-Store package triggers a "cannot verify developer" block. Choose Open Anyway under Security settings — this is standard Gatekeeper behavior, not a sign the installer itself is broken.
Android
Clash-based clients on Android intercept traffic via VPNService. The first time you connect, the system prompts "Allow this app to set up a VPN connection." This prompt only appears once per install; denying it means the proxy simply won't work.
Some manufacturer ROMs have their own autostart management and battery-saving policies for background apps. You may need to whitelist the client separately in system settings, or the connection will drop after the app sits in the background for a while.
iOS
On iOS, proxy takeover relies on the Network Extension framework. Enabling it for the first time brings up an "Add VPN Configuration" system confirmation dialog, which requires tapping Allow and possibly entering your device passcode or Face ID.
If you accidentally tap Don't Allow, you'll need to go to VPN & Device Management in Settings and manually enable the configuration — the client's in-app toggle can't override a system-level denial.
Step 2: Import a subscription
A subscription is a remotely updatable piece of configuration, usually containing proxy node information and, optionally, a rule set URL. There are three common import methods, and the client's UI typically has an entry point for each.
Import via subscription URL: paste the URL provided by your subscription source into the client's "New Profile" or "Import Config" field. Confirming triggers a network request that fetches and parses the content. This is the most common method.
Import a local file: if you have a YAML config file, load it directly through the client's file import feature — useful when there's no remote link, just a static config file.
Clipboard / QR code import: mobile clients (especially on iOS) often support reading subscription info from the clipboard or scanning a QR code. It's faster in practice, but works the same way under the hood as a URL import.
Tip
After importing, check whether the node count matches what you expected, then check whether the rule set loaded along with it. Some subscriptions only include nodes with no routing rules, in which case the client falls back to default rules or you'll need to add a rule file manually.
The three most common causes of import failure: the URL itself is dead or expired; the network the client is currently on can't reach the subscription server (you need a working network path just to fetch the subscription in the first place — a bit of a chicken-and-egg problem that usually means switching networks temporarily or using a phone hotspot for the first import); and some subscription providers validate the client's User-Agent and reject requests from clients other than their own, in which case check whether the client has a "custom User-Agent" option in settings.
Step 3: Choose a proxy mode
Once the subscription imports successfully, the client typically offers three core operating modes. For a first run, pick based on the criteria below rather than just picking whichever one is highlighted.
Rule mode: traffic is routed direct, through the proxy, or blocked based on domain or IP rule sets. This is the recommended mode for the vast majority of use cases, balancing speed and coverage — routing local traffic direct and everything else through the proxy is the typical goal.
Global mode: all traffic bypasses rule evaluation and goes through the currently selected node. Useful for quickly testing whether a specific node is reachable, or when you genuinely need all traffic proxied. Leaving it on long-term routes traffic that should go direct through the proxy anyway, adding unnecessary latency.
Direct mode: the proxy is completely bypassed and all traffic follows the system's normal routing. This is the most useful mode for ruling the proxy in or out as a cause — if the problem persists in direct mode, it has nothing to do with Clash.
For a first install, staying in rule mode by default is recommended. If a specific site won't load, check the rule match for that site specifically rather than jumping straight to global mode, which just papers over real rule configuration issues.
Step 4: System proxy vs. TUN mode
Once rules and nodes are configured, there's one last step people tend to skip: selecting a node inside the client doesn't mean every other program on your system will route through it. There are two takeover methods here, with different mechanics and different use cases.
System proxy (HTTP/SOCKS proxy settings)
The client opens a local proxy port and points the system's network proxy settings at it. Most browsers and proxy-aware applications automatically follow the system proxy, but command-line tools, some game clients, and any app that doesn't read system proxy settings won't be covered — this is the usual explanation for "the browser works but this one app doesn't."
TUN mode (virtual adapter takeover)
TUN mode creates a virtual network adapter that intercepts nearly all traffic at the network layer, regardless of whether an application reads system proxy settings. Coverage is more complete, at the cost of needing extra system permissions (see Step 1) and being somewhat more involved to configure and troubleshoot. If you're just trying to confirm your subscription and nodes work on a first install, get things running with system proxy mode first, then consider enabling TUN once that's confirmed working.
Note
Running system proxy and TUN mode together usually doesn't cause conflicts — the client coordinates traffic internally — but if pages load unusually slowly or you see odd duplicate requests, try keeping only one takeover method active at a time to isolate the source.
Quick reference: common first-run issues
UI opens but the list is empty: confirm the subscription actually imported successfully, then check that the correct profile is selected (some clients can store multiple subscriptions, and the active one might not be the one you just imported).
Connects but pages won't load: check whether the proxy mode is set to rule mode and whether the rule set loaded correctly; confirm the system proxy is actually pointed at the client's port by manually checking the port number in system network settings.
Connection drops when backgrounded on mobile: on Android, check whether the app is whitelisted from the manufacturer's battery-saving policy; on iOS, check whether the network extension was suspended by the system, usually related to Low Power Mode or system-level data restrictions.
TUN mode fails to enable: on Windows, confirm the app is running as administrator; on macOS, confirm the network extension authorization was actually confirmed in System Settings rather than just toggled inside the client.
Nodes disappear after a subscription update: most likely the subscription provider changed nodes on their end, unrelated to the client itself — try re-fetching the subscription or contact the provider to confirm.
Recommended full sequence
Putting the four steps together, the recommended order from install to working setup is: install the client and confirm system permissions first (without rushing into TUN), then import the subscription and confirm the node count and rule set look normal, then select rule mode as the default operating mode, and finally enable the system proxy to verify that browsers and other everyday apps can get online normally. Once everything checks out, decide separately whether you actually need TUN mode to cover apps that ignore system proxy settings. Following this order covers the vast majority of sticking points during a first install.
Check whether your client version is current
If the permission or subscription issues above keep recurring, it's worth first confirming you're on the latest client build, then working through the configuration checks step by step.