quickstart · ~10 min

Clash Setup Guide: A Four-Step Walkthrough from Import to Verification

This page does one thing: get you to a working setup on the first try. Follow the steps in order — Import Subscription → Choose Proxy Mode → Connect → Verify It Works — and each step spells out exactly where to click, what you should see, and what comes next. If you haven't installed a client yet, head to the Get the Client page, download and install for your platform, then come back here.

4 steps mixed-port 7890 rule / global / direct

UI Differences Across Clients

This guide mainly walks through Clash Verge Rev on Linux. FlClash calls subscription management "Profiles," Clash Plus puts the subscription entry on its home screen, and the toggle positions on Clash Meta for Android and iOS differ slightly too — but all four steps follow the same order and logic across clients. If a menu name doesn't match, just look for the matching feature; key differences are called out inline.

00

Before You Start: Two Things You'll Need

Before diving in, make sure two things are ready. First, the client is installed and opens without issues: Clash Verge Rev is the recommended pick for Linux desktop users, and platform-specific choices and install steps are covered on the Get the Client page — if installation gets stuck, the full manual has a detailed per-platform section we won't repeat here. Second, you'll need a working subscription link — usually provided in your subscription provider's user dashboard, a full URL starting with https://. If terms like "subscription provider" or "subscription" are new to you, spend a minute checking the matching entries in the glossary; the rest of this guide uses these terms without further explanation.

With both in hand, let's start with step one. The whole process usually takes under ten minutes, and each step ends with a clear "what you should see when it's done" checkpoint — confirm it before moving on.

01

Import Subscription: Load the Config into the Client

A subscription is essentially a config source hosted remotely: the client fetches the node list and routing rules from this link and generates a complete config.yaml locally. So step one is simply getting the client to recognize this link.

  1. Find the "Copy Subscription Link" or "Import to Clash" button in your provider's user dashboard and copy the full URL. It typically looks like this (example uses a fake address):
    https://example.com/api/v1/client/subscribe?token=xxxx
    Note the token= parameter at the end must be complete — even one missing character will cause the server to reject the request.
  2. Open the client and go to the subscription management page: it's called "Profiles" in Clash Verge Rev's sidebar, "Configs" in FlClash, and Clash Plus has its subscription management area on the home screen.
  3. Paste the link into the input box at the top of the page and click "Import." The client immediately requests the URL and parses the response — on a normal connection, a profile card appears within seconds showing the config name and last-updated time, plus traffic usage info if your provider supplies it.
  4. Click this card to set it as the active profile. A selected-state indicator (a highlighted border or checkmark) appearing on the card confirms it worked — that's the completion marker for this step.

If you have a config.yaml file instead of a link, use the same subscription page: choose "Import File," or just drag the file into the client window — the rest of the steps are identical.

Import Failing? Don't Switch Links Yet

The most common causes of import failures are an incompletely copied link, an expired subscription, or a response that isn't valid YAML. Check in this order — link reachability, response format, client compatibility — and see the full checklist in our technical note Subscription Link Failures and Parse Errors: A Troubleshooting Checklist.

02

Choose a Proxy Mode: Rule, Global, or Direct

Once your profile is active, go to the "Proxy" page. There are three mode toggles at the top — take a minute to understand how each behaves before deciding, since this is where new users most often guess wrong.

ModeBehaviorBest For
RuleTraffic is matched against rules one by one; traffic matching direct rules bypasses the proxy, everything else goes through a proxy nodeEveryday default. Sites reachable on your local network aren't routed through the proxy, so speed isn't affected
GlobalAll traffic is sent through the currently selected nodeTemporarily testing whether rules are causing issues, or when you genuinely need all traffic proxied
DirectNo traffic goes through the proxy at allPausing the proxy without quitting the client

Bottom line: keep the default Rule mode. The rule set bundled with your subscription already routes common sites correctly, no manual tweaking needed. For how rule matching works and what rule types like DOMAIN-SUFFIX and GEOIP mean, see the "Rules & Routing" category in the glossary; if you want to write your own routing rules later, the full manual has a dedicated chapter — no need to touch it on your first setup.

The lower half of the Proxy page shows proxy groups and node lists. Expand the group named "Proxy Select" or PROXY, click the latency test button once (usually a lightning bolt or waveform icon), and the client tests latency across all nodes at once, showing a millisecond value next to each. Pick a node with a low, green-colored value and click to select it. For what these latency numbers mean and what counts as normal, see the dedicated entry in the glossary.

Switching Modes Takes Effect Instantly

You can switch between the three modes at any time — it takes effect immediately, no client restart needed, and your selected node stays unchanged.

03

Connect: Enable System Proxy to Route Traffic Through Port 7890

Clash doesn't have a big "Connect" button like a traditional VPN. Once the client is running, it opens a mixed proxy endpoint on 127.0.0.1 port 7890 (the default mixed-port) — "connecting" really just means pointing your system's network traffic at this port. There's only one switch involved:

  1. Go to the "Settings" page and turn on the "System Proxy" toggle. The client writes HTTP/HTTPS proxy settings into your desktop environment's network settings (the proxy config in GNOME/KDE), and browsers along with most GUI apps will pick it up automatically.
  2. Confirm the port shown next to the toggle or in the port settings area is 7890, and check your system tray icon — most clients change the icon's color or add a badge once the system proxy is on, which is a quick visual cue that it's active.
  3. The equivalent steps on other platforms: Windows and macOS also use a "System Proxy" toggle; on Android, Clash Meta for Android has a start button on the main screen that triggers a system VPN permission prompt — just allow it; on iOS, Clash Plus asks to add a VPN configuration on first launch, confirm it once in the system dialog, and it's controlled by the in-app toggle from then on.

One type of traffic ignores the system proxy: command-line programs in the terminal. They only respect environment variables, so export them temporarily in your current terminal session when needed:

export https_proxy=http://127.0.0.1:7890
export http_proxy=http://127.0.0.1:7890
export all_proxy=socks5://127.0.0.1:7890

These lines only apply to the current terminal window and stop working once you close it, so they won't affect your system-wide settings. If you want every app — including ones that ignore proxy settings — routed through the proxy automatically, that's what TUN mode handles; it has a higher setup bar and isn't needed for your first run. See the TUN chapter in the full manual when you're ready.

Toggle Won't Stay On? Check the Port First

If the system proxy toggle switches on and immediately flips back off, or you see address already in use in the logs, another process is holding port 7890. For the full process of finding what's using the port and changing the listening port, see our technical note Fixing "Port Already in Use" Errors in Clash.

04

Verify It Works: Confirm the Proxy Is Actually Active

A toggle being on doesn't mean the proxy is working. Check these four items from the outside in — only when all four pass is the setup truly complete:

  1. Browser check. Open a site that was previously unreachable — if it loads normally, that's basic confirmation. If nothing changes, force-refresh with Ctrl+Shift+R first to rule out browser cache before concluding anything is wrong.
  2. Command-line check.Run a request in your terminal that explicitly specifies the proxy, bypassing system proxy settings entirely, to test the proxy chain directly:
    curl -x http://127.0.0.1:7890 -I https://www.google.com
    If it returns HTTP/2 200 -style response headers, the chain from client to node to target site is working end to end.
  3. Connections page check. Go back to the client's "Connections" page, which lists every connection passing through Clash in real time: domain, matched rule, and exit node. Confirm the domain you just visited shows up in the list, and that its exit is your selected proxy node rather than DIRECT — this instantly tells you whether rule-based routing is working as expected.
  4. Exit IP check. Visit any IP lookup site in your browser — the address shown should match your node's region, not your local ISP's address.

If any check fails, the failure point itself is a clue: if the browser fails but curl works, the system proxy likely wasn't written to your desktop environment — go back to step three and toggle it off and on. If curl also fails, it's likely a node issue — go back to step two, retest latency, and switch nodes. If both pass but a specific site still misbehaves, it's usually a rule-matching issue. For a step-by-step approach to tracing logs, see our technical notes, and for deeper troubleshooting strategies, check the full manual.

Completion Checklist

Browser loads sites, curl returns response headers, the connections page shows a proxy node as the exit, and the exit IP matches the node's region — pass all four, and your first setup is complete.

What's Next: Maintenance and Going Further

Day-to-day, there's really just one maintenance task: keep your subscription updated so nodes and rules stay current. Most clients let you set an auto-update interval on the profile card (e.g., every 24 hours) — set it once and forget it; for a manual update, click "Update" in the card's menu. Topics like updating the GeoIP database, launching on startup, and switching between multiple subscriptions each get their own section in the full manual.

Full Manual

A systematic, long-form guide covering core concepts, rule-based routing, TUN mode, and day-to-day maintenance, structured chapter by chapter — worth reading through after finishing this page.

Read the Full Manual →

Glossary

Terms like mixed-port, proxy groups, and GEOIP that appeared earlier in this guide, explained one by one by category — come here whenever you hit an unfamiliar term.

Browse the Glossary →

Technical Notes

Real troubleshooting write-ups covering expired subscriptions, port conflicts, startup crashes, and log analysis — a case-by-case reference for when things go wrong.

Browse Technical Notes →