This lesson's screenshots are based on Clash Verge Rev (Windows / macOS). If you're using Clash Plus, FlClash, or the Android app, you don't need a different guide — the four steps are identical, just with slightly different menu names. "Subscriptions" may be called "Profiles" in some clients, and "System Proxy" on Android corresponds to the Start/Run button. We'll flag these differences as they come up. Haven't installed a client yet? Grab one for your platform on the downloads page first, then come back here.
Before you start: gather these three things
Check off these three items before diving in. Missing any one of them will stall the steps below, and the failure will look like a software bug when it isn't.
- A client already installed. This site recommends Clash Plus first, with Clash Verge Rev as the go-to for more advanced users — both are sorted by platform on the downloads page. Windows users: Clash Verge Rev requires the WebView2 runtime; if the installer flags it as missing, just install it when prompted.
- A subscription link. This is a long URL starting with
https://, provided by your service in its dashboard, usually behind a "Copy Subscription" button. It's not a username/password, and it's not a proxy server itself — it's an address that points to a configuration list your provider keeps up to date. This trips people up at first; the full explanation lives in the glossary. For now, just remember: get it from the dashboard, copy the whole thing, never type it out by hand. - Close any other proxy software. If you've used another proxy tool before, quit it first. Two apps fighting over the same local port (commonly
7890) usually shows up as a startup error or traffic going haywire, and it's one of the most time-consuming things to debug.
Got all three? Let's move on.
Step 1: Import Your Subscription Link
First, load your configuration into the client. Open Clash Verge Rev and click "Profiles" in the left sidebar (this is called "Configs" in Clash Plus, and lives on the home screen in FlClash). At the top of the page there's an input field with an "Import" button next to it.
- Copy the subscription link. Go back to your provider's dashboard, find the "Copy Subscription Link" button (or similar), and click it. Important: always use the copy button, never select and copy the text manually — subscription links often end with a
token=parameter, and dropping even one character breaks the whole link, usually without a clear error message telling you why. - Paste and import. Paste the link into the input field and click "Import." The client will immediately fetch the configuration, usually within seconds. Success looks like this: a profile card appears below showing the profile name and update time, and most providers' profiles also show your data usage.
- Select this profile. Click the card so it becomes active (the card border will be highlighted). The client can store multiple profiles, but only the active one is actually in use — importing a profile without selecting it is one of the most common reasons new users see an empty proxy list.
If this step throws an error, check the type first: a timeout or network error usually means the subscription URL itself needs the proxy to be reachable — switching to mobile data and retrying will confirm this instantly. A format error means the link isn't in Clash format and needs conversion, which is a longer topic covered in the installation & setup section of Troubleshooting. Don't open the subscription link directly in a browser — it returns configuration text meant for the client to parse, not a human-readable page, so a screen of gibberish doesn't mean the link is broken.
While you're here: find the "Update" button on the profile card and note where it is. When your provider rotates nodes, old ones in your profile will gradually stop working — just come back and click Update, no need to re-import from scratch.
Step 2: Choose a Proxy Mode
Your profile is loaded — now tell the client which traffic goes through the proxy and which goes direct. That's what the proxy mode controls. On the Clash Verge Rev home screen (or at the top of the "Proxies" tab), you'll see a mode switcher with three options:
- Rule — matches traffic against the
rulesin your config file. Rules are checked top-down, and the first match wins: local sites matching a direct rule pass straight through, while services outside mainland China matching a proxy rule route through a node — no conflicts, no manual intervention. - Global — routes all traffic through the proxy, ignoring the rules entirely.
- Direct — routes all traffic without the proxy, effectively disabling it temporarily.
Here's the takeaway: for everyday use, pick "Rule" and leave it alone. Rule mode is the core value of a tool like Clash — you don't have to manually toggle the proxy for different sites, because the config already sorts that out for you. Global mode is only useful in two cases: temporarily testing whether a specific site's issue is routing-related, or handling an obscure domain the rules don't cover. Switch back once you're done — leaving Global on long-term routes even local traffic through distant servers, which actually slows things down.
Click "Rule" to select it, and you're done with this step. If you want to know exactly how rules are written, or what DOMAIN-SUFFIX and GEOIP actually do, that's reference material — check the rules and routing section of the glossary. To understand the differences between protocols and cores in depth, see the protocol reference; we won't go into that here.
Step 3: Turn On the Connection
Mode's set — now let's actually get traffic flowing through the client. This step covers two things: turning on the system proxy, and picking a node.
- Turn on the system proxy. Go to "Settings" in the left sidebar and toggle on "System Proxy." This does something very specific: it points your operating system's proxy settings to the local port the client is listening on (
mixed-port: 7890by default), so afterward your browser and most system-proxy-aware apps route traffic through the client first. Android doesn't have this toggle — the equivalent is the big "Start" button on the home screen. macOS may show a permission prompt the first time you enable it; allow it. - Pick a node. Go back to "Proxies," where you'll see one or more policy groups — think of these as drawers of grouped nodes, typically a manual selection group and an auto-speed-test group. Click the latency test button next to the group name (the lightning bolt icon), wait a few seconds, and each node will show its latency in milliseconds. Pick one with low, stable latency; if the group type is
url-test(auto speed test), it'll switch nodes on its own based on latency, so you don't have to pick manually. A few nodes timing out is normal — everything timing out is the actual problem (covered at the end of this guide).
With both of those done, your connection is live. One easy thing to misunderstand: the system proxy only covers apps that respect system proxy settings — browsers do, but terminal commands, some games, and older software don't. To capture that traffic too, you need TUN mode, which creates a virtual network adapter to intercept everything at the network layer — this involves permissions and DNS setup, and is more advanced. Concept explanations live in the running modes section of the glossary, and common issues are in Troubleshooting. For this lesson, the system proxy is enough to get the main flow working.
Step 4: Verify It's Working
Last step — don't skip this. "Looks like it's on" and "is actually routing traffic" are two different things, and verification only takes two minutes but saves you a lot of confused debugging later.
- Confirm the proxy connection works. Open your browser and visit a site you'd normally need the proxy to access. If it loads, the chain from subscription → node → system proxy is working end to end. If it doesn't load, don't panic — go back to "Proxies" and try a different node with normal latency first. A single bad node is far more common than the whole chain being broken.
- Confirm local sites aren't affected. Visit a few commonly used local sites and confirm they load at the same speed as usual. If local sites are noticeably slower, you're probably still in "Global" mode — go back to Step 2 and switch to "Rule."
- Check the connections log to confirm routing. Open the "Connections" tab in the left sidebar — it lists every active connection in real time: the target domain, the matched rule, and the outbound policy used. Refresh the two types of sites you just visited and check the log — if the local ones show
DIRECTand the ones outside mainland China show your policy group name, rule-based routing is working as expected. This tab will also be your first stop for troubleshooting going forward, so it's worth getting familiar with now.
If all three checks pass, that's the whole lesson — your setup is complete. Day-to-day, there are only two things left to do: click "Update" when your subscription is about to expire or has just renewed, and go to "Proxies" to re-test and switch nodes if things slow down. Everything else can stay on its default settings.
Stuck? Match Your Symptom to a Page
That's the end of the main guide. If a step didn't work, match the symptom below instead of starting the whole setup over:
- Proxy list is empty after importing — first check that the profile card is actually selected, then check the subscription hasn't expired. Still stuck? See the installation & setup section of Troubleshooting.
- Every node shows a timeout — this is rarely a node problem. Check in this order: subscription validity → system clock → port conflicts. The full checklist is in the troubleshooting section of Troubleshooting.
- Toggle is on but traffic isn't going through the proxy — browser traffic and terminal traffic are two separate paths with different failure causes; see Troubleshooting for how to diagnose each.
- Not sure what a term means — policy groups, TUN, GEOIP, and similar terms are each explained by category in the glossary — look it up, then come back and continue.
- Want to understand how to choose a protocol or how cores differ — that's a selection question, not a setup one. Read through the protocol reference for the full picture.