The basic Clash map: client, core, subscription, nodes, and rules

Clash is not one single product that automatically supplies an internet connection. It is better understood as a small ecosystem of separate parts that work together. The client is the graphical application you open on Windows, macOS, Android, or another platform. The client gives you buttons, profile management, mode switches, traffic logs, and access to the embedded networking engine. The engine is often called the core. Modern clients may use a Mihomo-based core, while older applications may use a different or discontinued implementation.

A subscription is another separate piece. It is normally an HTTPS URL provided by a service operator. When you import that URL, the client downloads a configuration containing proxy servers, policy groups, DNS settings, and routing rules. The subscription does not equal the client, and the client does not create the servers inside the subscription. If the URL expires, the application may still open normally while the profile stops refreshing. This distinction explains why “the app launches” and “the service works” are two different questions.

The individual servers inside a profile are commonly called nodes, proxies, or outbound servers. A node describes where and how the core should establish an encrypted connection. It may use a protocol such as SOCKS5, HTTP, Shadowsocks, VMess, Trojan, or another protocol supported by the selected core. A node is not automatically the best choice for every website. It can be fast but unstable, stable but distant, or reachable from one network and unusable from another.

Finally, rules decide which traffic uses which path. A rule can send a domain to a proxy group, allow a private address to go directly to the local network, or route everything unmatched through a default policy. The client displays these decisions, the core executes them, the subscription may provide the data, and the rules determine the behavior. Keeping these responsibilities separate is the most useful first step for anyone searching for a Clash beginner guide.

ℹ Important distinction: Clash is a traffic-management tool, not a magical source of nodes. Downloading a client does not include a subscription, and finding a subscription does not make every client trustworthy or compatible.

What a Clash client actually does

A desktop or mobile client is the control panel around the core. It usually lets you import a profile, select a proxy group, change the operating mode, inspect connection logs, and enable or disable a system proxy. Some clients also provide TUN mode, which creates a virtual network interface so applications that ignore ordinary proxy settings can still be handled by the core. Others focus on browser-style proxying and expose only HTTP, HTTPS, or SOCKS listeners.

Common client choices include Clash Verge Rev, Clash Verge, Clash for Windows, ClashX, Clash for Android, and Mihomo-based applications. They are not interchangeable in every detail. Menu names, supported core versions, profile converters, TUN permissions, and update practices differ. A tutorial written for one application can therefore become misleading when copied into another. For example, a setting called “Service Mode” in one Windows client may not exist in a macOS menu-bar client, while Android may request VPN permission instead of changing a desktop system-proxy checkbox.

The client also determines where local traffic enters the system. In regular proxy mode, an application must know the local proxy address and port, or the operating system must expose those settings globally. In TUN mode, the client asks the operating system for additional networking permission and captures traffic at a lower layer. TUN is useful, but it is not automatically better. It can affect local discovery, banking applications, games, printers, DNS behavior, and corporate VPN software. Beginners should first confirm that ordinary proxy mode works before adding a virtual adapter to the troubleshooting list.

A healthy client interface normally exposes several useful signals: whether the profile was updated successfully, which group is selected, whether the local listener is running, and which rule matched a connection. Do not treat a green “connected” label as proof that every application is routed correctly. It may only mean that the core process is alive. Open the logs, generate one test request, and verify the selected policy group and destination. This habit is more reliable than repeatedly changing nodes without observing what happened.

Subscriptions, nodes, and provider choices

A subscription URL is sensitive account information. Anyone who obtains it may be able to refresh your profile, learn operational details, or consume the provider’s allocation. Avoid posting the complete URL in screenshots, public issue trackers, chat groups, or browser history that is shared with other users. If a provider supports token rotation, regenerate a leaked link rather than assuming that changing the visible profile name protects it.

Subscription formats also vary. Some endpoints return a complete YAML profile, while others return a base64-like list that the client converts into proxy definitions. A provider may require a special user-agent, a conversion endpoint, a selected region, or a compatible core. When the import fails, identify which layer failed: did the URL return an HTTP error, did the response contain readable configuration data, did the client reject an unsupported field, or did the profile load but contain no usable nodes? Each symptom points to a different remedy.

A profile can contain several groups. A selector group lets you choose a member manually. A url-test group periodically checks candidates and prefers one with an acceptable response time. A fallback group moves through an ordered list when earlier members fail. A load-balance group distributes connections according to its configured strategy. Beginners often treat these names as marketing labels, but they describe different trade-offs between control, stability, and automation.

Latency is only one measurement. A node can answer a short test quickly and still perform poorly during a long download, a video stream, or a connection that remains idle for several minutes. Stability, packet loss, congestion, server capacity, geographic distance, and provider limits all matter. If one website is slow, do not immediately conclude that the whole profile is broken. Compare a direct request, a second node, and the connection log. The objective is to narrow the failure instead of replacing every component at once.

⚠ Use responsibly: Review local law, workplace rules, school policies, provider terms, and the terms of the services you access. This guide explains client configuration and network diagnosis for permitted use; it is not advice for bypassing authentication, contractual restrictions, or access controls.

Routing modes: Global, Rule, and Direct

Most Clash clients present at least three familiar modes. Global sends eligible traffic through the selected proxy group. It is easy to understand during a short test, but it can disrupt local services and send destinations through a path that was never intended for them. Direct avoids the proxy for eligible traffic. It is useful as a baseline, but it may fail for destinations that require a different network path. Rule evaluates the configured rule set and chooses between groups, direct access, rejection, or other actions.

Rule mode is usually the practical daily setting because it allows different traffic classes to follow different policies. Private networks, local hostnames, printers, and intranet domains may need DIRECT. Certain public domains may use a proxy group. A final MATCH rule catches traffic that did not match anything earlier. Rule order matters: a broad rule placed above a narrow domain rule can capture traffic before the intended exception is reached.

Think of rules as a routing table rather than a list of wishes. A domain rule may match a complete hostname, a suffix, a keyword, a process name, an IP range, or a rule set downloaded from a remote provider. The more remote rule providers you add, the more maintenance you inherit. A provider update can change behavior without changing the visible profile name, so keep a note of which provider supplies each rule set and inspect changes when a previously working destination suddenly moves to another group.

DNS adds another layer of complexity. The client may resolve a hostname locally, through a configured remote resolver, or through a fake-IP mechanism. A DNS result that works in a browser may not behave identically in a game, a terminal, or an application using its own resolver. When diagnosing a failure, record whether the issue is name resolution, TCP connection establishment, TLS negotiation, or application authentication. Calling every symptom a “node problem” hides the actual boundary between DNS, routing, and the destination service.

A practical first setup walkthrough

The safest beginner workflow is deliberately boring. Start with one maintained client from a trustworthy distribution channel and install only one Clash-family application during the first test. Multiple clients can compete for the same system proxy, local ports, TUN adapter, or VPN permission. Close unrelated VPNs, traffic accelerators, and old proxy tools before testing so that the result has a clear cause.

  1. Confirm compatibility. Check your operating system, processor architecture, required permissions, and the core supported by the client. On Windows, review firewall and security prompts. On macOS, check network-extension permissions when the client requests them. On Android, understand that VPN permission is a system-level approval rather than an ordinary application toggle.
  2. Import the profile. Paste the subscription URL into the profile or provider section, then refresh it manually. Wait for a success message and inspect the generated profile. Confirm that it contains proxy nodes and policy groups instead of an empty document or an HTML error page.
  3. Choose a simple group. Select a manual selector if one is available. Pick one reasonably stable node instead of enabling load balancing or several automatic providers immediately. A single known choice makes logs and test results easier to interpret.
  4. Start with ordinary proxy mode. Enable the local HTTP or mixed listener and note its address and port. Then enable the operating system proxy only if you want system applications to use it. Leave TUN disabled until ordinary proxying has been verified.
  5. Test one destination at a time. Open a normal website, inspect the client log, and confirm that the request appears under the expected policy group. Test a second destination with a different rule category. If the first request fails, do not change five settings before reading the log.
  6. Switch to Rule mode. After Global mode proves that the selected node can establish connections, change to Rule mode and repeat the same tests. Compare the matched rules. If behavior changes, the core is probably working and the problem is in rule order, DNS handling, or the selected policy group.
  7. Record a baseline. Write down the client version, core version, profile update time, selected group, local port, and whether TUN is enabled. A short baseline turns future troubleshooting into comparison instead of guesswork.

If the subscription refresh fails, test the URL in a private browser window only when doing so does not expose credentials to an unsafe environment, and inspect the HTTP status through the client’s own diagnostics where possible. A 401 or 403 usually points to an expired token or account restriction. A timeout suggests connectivity, DNS, or provider availability. A successful download followed by a parsing error suggests an incompatible format or unsupported field. If nodes appear but every request fails, investigate core compatibility, system time, DNS, and the provider’s current service status.

Common beginner mistakes and misleading downloads

The most expensive mistake is downloading the first executable returned by a search engine. “Clash” is a popular name, and pages may use it to promote repackaged applications, browser extensions, unrelated VPN products, or installers bundled with aggressive advertising. A page that promises unlimited premium nodes, asks for unusual browser permissions, or forces several redirects deserves extra scrutiny. Verify the publisher, release history, checksum information when available, and the client’s documented repository or distribution channel.

Another mistake is confusing a client download with a subscription purchase. A free application may be perfectly legitimate while a subscription operator is unreliable, and a paid service may provide a profile that is incompatible with the client you selected. Treat these decisions independently. First choose a maintained client for your platform. Then evaluate a service according to transparency, support, privacy practices, refund terms, traffic limits, and compatibility with the core you intend to use.

Beginners also enable every advanced switch at once: TUN mode, fake-IP DNS, remote rule providers, automatic groups, multiple profiles, and system-wide proxying. When something fails, there is no longer a clear baseline. Add one feature at a time and keep a known-good profile copy. Export or back up only the configuration data you understand, and remove exposed subscription tokens from shared logs before sending diagnostics to anyone.

Finally, do not judge success by a single speed-test result. A fast test may select a nearby endpoint while your actual destination follows a different rule. A browser may work while a terminal does not because the terminal ignores system proxy settings. A game may bypass ordinary HTTP proxy settings entirely and require TUN or native support. Ask a precise question—“Which application, hostname, mode, rule, DNS path, and node failed?”—and the answer becomes much easier to find.

A sensible long-term workflow

Once the first setup works, keep the configuration understandable. Use descriptive names for profiles and groups, remove expired nodes, and avoid collecting rule providers merely because they are popular. Update the client and core through trustworthy channels, but do not update immediately before an important presentation or trip without a rollback plan. Record changes that affect TUN, DNS, proxy mode, or rule-provider order so you can correlate them with new failures.

Read the connection log as an explanation of decisions, not just an error console. For each troublesome request, identify the hostname, matched rule, selected group, outbound node, and final error. If the log shows DIRECT when you expected a proxy, inspect rule order. If it shows the correct group but a failed handshake, compare nodes and core support. If no request appears, the application may not be using the system proxy, may be using its own DNS stack, or may need TUN to reach the client.

Keep privacy boundaries in mind. A proxy client can reveal destination metadata to the service operator, while remote rule providers can influence routing decisions. Use encrypted subscription URLs, protect account tokens, and avoid assuming that “encrypted transport” means every participant can see nothing. For work or school devices, use the approved network solution rather than installing a personal client without permission. Good configuration includes governance as well as YAML syntax.

Compared with one-click VPN applications, Clash can require more decisions about profiles, groups, rules, DNS, and operating-system permissions, but that extra structure makes behavior visible and adjustable. Compared with abandoned legacy clients, maintained Mihomo-based options such as Clash V.CORE can provide a clearer path for current cores, profile management, logs, and platform-aware controls instead of leaving beginners with outdated menus or unsupported binaries. If you want to learn these concepts through a stable, beginner-friendly starting point, visit the Clash V.CORE download page and choose the build that matches your platform.

// Editor's Pick

Start with a clearer Clash workflow

Clash V.CORE brings profiles, policy groups, logs, and everyday routing controls into one practical interface for learning without unnecessary guesswork.

  • Clear profile and subscription management
  • Readable policy groups and routing controls
  • Connection logs for faster diagnosis
  • Platform-aware proxy and TUN options
  • Flexible workflows for beginners and advanced users
Get Clash V.CORE →