Check your platform and processor architecture before choosing a client. The graphical interface manages subscriptions and controls, while supported protocols, rules, and network modes depend on the core it uses.
For desktop browsers, developer tools, and everyday apps. Check your device type in system settings before installing, then choose the package for your architecture. After opening the client, enable a profile before turning on the system proxy.
Clash Plus, Clash Verge Rev, and FlClash put menus in different places, but subscriptions, proxy groups, and logs are common starting points for troubleshooting. Before migrating from an older client, back up your configuration source—copying only the application folder is not enough.
Check About This Mac to see whether your device has Apple silicon or an Intel processor. After installing and opening the client, grant the permissions it requests, then check its status and active profile in the menu bar.
System proxy and TUN are two different ways to route traffic. For your first setup, test with a browser and confirm the rules work before configuring other apps. Changing several controls at once makes problems harder to trace.
Mobile clients typically route traffic through the system VPN interface. Import a subscription and select a profile, then approve the authorization prompt when you connect. If another VPN app is running, check that the two apps are not competing for the same interface.
A background connection dropping does not necessarily mean there is a subscription issue. Check battery management, background app permissions, and logs after switching networks. Settings vary by manufacturer, so use the menus on your device as a guide.
The download page links to Clash Plus in the App Store and lists its official website, clashplus.io. After installing, check that the client supports your subscription format, save the profile, and follow the system prompts to add a VPN configuration.
A full YAML file that works on desktop may not transfer to mobile unchanged. If import fails, check the format and supported fields. Do not use an account page URL as a subscription URL, and avoid exposing subscription parameters in public screenshots.
Desktop users can start with Clash Verge Rev or FlClash and choose a package for their Linux distribution. Server and router users should distinguish graphical clients from the standalone mihomo core. Installing the software is only the first step: configure the file path, permissions, and service startup separately.
Command-line tools may not use the desktop environment's system proxy. If a browser works but the terminal does not, check the proxy protocol and local port used by the application, then inspect its environment variables. Do not expose a listening address to your entire local network to fix one app's connection.
A subscription provides the configuration source, proxy groups provide the selection points, and rules determine where connections go. Understand these layers before changing individual fields; it is easier than toggling settings at random.
These examples illustrate mihomo configuration fields and settings; they are not complete subscriptions that can connect on their own. Click or focus a tab to pause automatic switching.
Importing subscriptions and updating profiles
A subscription link is an address for retrieving configuration, not a connection service built into the client. Paste an existing link on the Configuration or Subscription page. After it downloads, select and enable the profile. A full remote configuration usually includes proxy groups and rules; a proxy provider loads proxy entries only, which must be referenced by proxy groups in the main configuration. Updates fetch the remote content again, so direct edits may be overwritten. Use the client's override feature for settings you need to keep. Treat access parameters in the link like account credentials.
# Local subscription file as a proxy providerproxy-providers:
my-sub:
type: filepath: ./providers/my-sub.yamlproxy-groups:
- name: PROXYtype: selectuse: [my-sub]
Rule order and where connections go
Rules are matched in list order, and the first match usually determines where a connection goes. The final MATCH rule catches everything else. Switch the client to Rule mode and check the matched rule on the Connections page instead of guessing based on whether a website loads. Domain rules are useful for routing by service; IP rules suit specific network ranges. Unlike Global mode, Rule mode can send some traffic direct and other traffic through a proxy, but every rule must reference a valid proxy group. Save the original configuration before making changes, change one thing at a time, and test again.
mode: rulerules:
- DOMAIN-SUFFIX,example.com,PROXY
- IP-CIDR,192.168.0.0/16,DIRECT,no-resolve
- MATCH,PROXY# PROXY must be defined in the main configuration
Proxy groups and manual selection
A proxy group combines proxy entries into an option that rules can reference. Expand the relevant group on the Proxies page; manual selection usually uses the select type, while automatic testing and failover use other group types. Changing a group selection does not require rewriting each rule, and it does not mean every app immediately switches to the same route—existing connections may persist. To troubleshoot, first check which group a rule points to, then check the group's current selection. Group names are not protocol names; protocol support depends on the proxy entry and core.
proxy-groups:
- name: PROXYtype: selectproxies:
- DIRECTuse:
- my-sub# my-sub must be defined in a proxy provider
TUN access and permissions
TUN routes traffic through a virtual network interface and can handle apps that do not use the system proxy. Before enabling it in the client, check core support, service permissions, and system authorization; mobile clients may use a different name for this setting. TUN works differently from apps that read a proxy address in the browser, and it also affects routing and DNS—it is not simply a more powerful Global mode. If your local network stops working after enabling TUN, turn it off to restore a baseline, then check automatic routing, subnet conflicts, and other VPN software. Refer to the documentation for your client and core for exact fields.
# Illustrates traffic routing; configure DNS separatelytun:
enable: truestack: mixedauto-route: trueauto-detect-interface: true# Check permissions and routing conflicts before enabling
Remote profiles and local overrides
Overrides apply local preferences to a remote configuration, reducing the need to redo changes after subscription updates. Common menu labels include Override, Merge, and Extended configuration, but merge order and array handling vary between clients. Check the scope of an override first, then test one setting at a time, such as the port or log level. Unlike editing the subscription itself, an override can be saved separately—but that does not mean every field can be safely combined. Check the final generated configuration carefully, especially rule insertion order, duplicate proxy group names, and DNS settings.
# Common merge fields; menus and precedence vary by clientmixed-port: 7890allow-lan: falselog-level: info# Check the final configuration after saving, then reload
Getting started
From subscription import to connection testing
Work through the steps in this order: configuration source → routing destination → app traffic access. Establish a baseline you can test repeatedly before adding TUN, custom DNS, or complex overrides.
01
Import an existing subscription and enable the profile
After installation, open the client's profile manager, choose the option to import from a link, and paste the subscription URL from your service provider. A successful download does not mean the profile is active: select it in the list and confirm the core has loaded it. If parsing fails, check whether the URL returns content supported by the client—not a web login page or an error message.
You can import a local YAML file from disk. Remote subscriptions update from their source, while local files are maintained by you, so they require different update workflows. When moving to another device, note the profile name, source, and local overrides. Redact subscription parameters before sharing logs. Follow the step-by-step guide to distinguish a successful import from a working connection.
02
Choose Rule mode and the active proxy
For your first setup, start with the Rule mode preset in your profile. Find a proxy group referenced by the rules on the Proxies page, then choose an available entry. Rule mode decides how requests are routed; the proxy group decides which route requests assigned to that group use. These are separate controls. If you switch a group that no rule references, your traffic may not change.
Global mode can be useful for a quick comparison, but it is not a universal fix. Note the original mode and group selection before testing, then restore them afterward. Existing connections may keep their previous route, so make a new request to see the effect. Understand how the configuration groups proxies before changing automatic or manual selection, and avoid deleting names referenced by other groups.
03
Enable traffic access and check connection logs
On desktop, enable the system proxy, visit a familiar website in your browser, and check the client's Connections page for the domain, matched rule, and proxy route. On mobile, start the VPN connection when prompted. If requests appear in the log, traffic is reaching the client. If there are no entries at all, check how the app is connected before repeatedly updating subscriptions or switching proxies.
If a browser works but the terminal fails, check the terminal's environment variables. If all apps fail, check in order that the profile is enabled, the right proxy group is selected, and the error logs show no problems. Change only one thing at a time and record the result. This helps separate subscription retrieval, DNS resolution, and connection issues—and avoids adding variables by reinstalling the client unnecessarily.
Clash Subscription Guide covers installation links and configuration methods, but does not provide subscription services. Whether a client suits your device depends on its maintenance status, protocol support, and your system environment.
Project history: a shared name does not mean ongoing maintenance
Clash is a widely used name in the proxy tools ecosystem, but the original core, later forks, and graphical clients are separate projects. The original Clash and some early clients are no longer maintained. Community projects with similar names may have different maintainers, configuration capabilities, and update processes. Check the full project name when choosing software rather than relying on its icon or the word Clash alone.
An older client may still launch, but that does not make it a good choice to keep long term. OS upgrades, protocol changes, and new configuration fields can all affect compatibility. Before migrating, back up your subscription source and local settings. Re-import them into the new client and verify everything before removing the old app's startup items, system proxy settings, and background services. See the protocol and core reference for details; there is no need to run multiple proxy apps at once to compare them.
Open-source projects: check the interface and connection capabilities separately
Graphical clients provide tray menus, subscription management, configuration editing, and system integration. The core parses configuration, matches rules, and establishes connections. Different interfaces may use the same core or different implementations, so check separately whether a setting is shown in the interface and whether the active core fully supports it. Documentation, release notes, and issue discussions in open-source repositories can clarify feature boundaries and known limitations.
This site organizes guidance around real-world tasks rather than treating repository popularity as proof of compatibility. When evaluating a client, first check platform support, whether your configuration loads, whether logs are readable, and whether its update channel is clear. For useful bug reports, include the OS, client name, stage where the error occurs, and redacted logs—not just “the internet doesn't work.”
Core lineage: Clash Meta and mihomo
Clash Meta is a later fork in the Clash ecosystem; the project subsequently continued under the name mihomo. Older articles, client menus, and configuration guides may still use the Meta name. The name change does not mean builds from different eras have identical features. Check the documentation for the core actually running, especially for protocol support, DNS behavior, rule fields, and TUN implementation.
When migrating an existing configuration to mihomo, start with the parsing logs, then verify references between proxy providers, proxy groups, and rules. A YAML file being read only means it passed the current syntax or structure check; it does not prove that every request will be handled as expected. When choosing a protocol, also consider server support, network quality, and device power consumption. The protocol name alone cannot predict connection speed.
Updates: manage the app, core, and subscription separately
Client updates change the interface or system integration; core updates change connection and configuration capabilities; subscription updates fetch remote content again. These operations may have separate screens or be managed together by the client. Reinstalling the app repeatedly will not usually fix an expired subscription link. Likewise, updating a subscription cannot add support for fields the core does not recognize.
Save a working configuration before updating, review the release notes, and check how local overrides are merged. Afterward, test a familiar route before checking traffic rules and your local network. If a problem started after an update, compare the changes to narrow down the cause. If an update source returns unexpected content, check its status and expiration date. Find more examples in the Help Center, organized into fundamentals, installation and setup, usage tips, and Troubleshooting.
Recent configuration guides
Choosing a core and troubleshooting
Go beyond the setup steps with guides for specific issues. First identify which layer is causing the problem, then choose the right fix. Avoid treating the system proxy, subscription source, and protocol support as the same issue.
Troubleshoot system proxy failures separately in browsers and terminals. Check for conflicting proxy extensions, PAC settings, and exclusion lists, then learn how to set environment variables in each OS terminal.
Answers to ten common beginner questions about importing subscriptions, choosing a mode, switching proxies, ports, and launching at startup, with links to further reading.
Trace the lineage of three generations of cores and compare protocol support, rule types, and TUN capabilities. Learn which fields may need changes when migrating an older configuration to mihomo.