Choose a client for your system, import a subscription, set up rule-based routing, and check the proxy connection.
Open-Source Core
Clients for Multiple Platforms
Configuration Guides in Chinese
Profiles
General
Proxies
Configuration
Connections
Rules
Logs
Import Remote Configuration
Paste subscription URL
Import
System Proxy
TUN Mode
Allow LAN
Routing Mode
RuleGlobalDirect
Configuration updated · Switched to rule mode
Core mihomo
Core License GPL-3.0
Client Downloads Five platforms
Platforms and Installers
Clash Client Downloads
Check your operating system and processor architecture first, then choose a graphical client. The downloads page lists installers, system requirements, and maintenance status; core binaries are listed separately.
Windows
For desktop use, start with Clash Plus, then compare Clash Verge Rev, FlClash, and Clash Nyanpasu based on your interface preferences. System proxy works with apps that follow your system settings. For broader traffic capture, check the permissions and services TUN requires. Confirm your processor architecture before installing, and don’t overwrite a new project’s installation directory with files from an older client.
First distinguish Apple Silicon from Intel, then choose the matching installer. Clash Plus, Clash Verge Rev, and FlClash are good starting points for comparing interfaces. Follow the system prompts to grant permissions on first launch. Before switching clients, turn off proxy capture in the previous one. Check compatibility against the core and configuration fields you actually use, not just the app’s name.
Choose an installer for your device architecture, and approve the VPN permission when connecting for the first time. Clash Plus, Clash Meta for Android, and FlClash have different settings. Import your subscription first, then check app routing and background restrictions. Surfboard uses a different configuration format from Clash YAML, so changing a file extension won’t make the formats interchangeable.
The downloads page links to Clash Plus in the App Store and to the official site at clashplus.io. After installing, allow the app to add a VPN configuration, then import a supported link or file. Local paths, scripts, and system-specific options from desktop configurations may not work on mobile. If import fails, check the configuration format and app support before editing the content.
For desktop environments, start with Clash Verge Rev or FlClash and choose a package format for your distribution. Server and router users can download the standalone mihomo core, but must manage the configuration directory, process, and network permissions themselves. Don’t run a graphical desktop client and a background service that compete for the same listening ports or virtual network interface.
A successful installation only means the program runs; it doesn’t confirm that your subscription, nodes, or routing rules are working. For your first setup, run just one client, keep a copy of the original configuration, and work through the checks in order: import, select, verify.
The graphical client handles user interaction; the core handles connections and rule processing. Find the feature that addresses your needs, understand what it affects, and then decide whether to enable it.
Route Traffic by Destination
Rule-based routing sends connections to different outbound strategies based on their destination, so you don’t have to switch modes manually for every visit. mihomo checks rules from top to bottom; the first match determines the route. Rules can match domains, IP ranges, or rule sets. Proxy groups organize the available outbound options—they serve a different purpose. If an app takes the wrong route, check the matched rule in the connection log and adjust the rule order instead of switching all traffic to global mode.
After importing a configuration, choose an outbound option in a proxy group on the Proxies page, then make a new connection in rule mode. Manual groups keep your selection; automatic test groups run checks and switch according to the configuration. Compared with the original Clash, mihomo extends some rule and proxy-group capabilities, but check the core documentation for supported fields. Put custom rules where they need to take priority, and use the client’s override or merge feature so subscription updates don’t erase your changes.
A protocol describes how a client and server establish a connection; it doesn’t indicate node quality. mihomo supports outbound protocols including Shadowsocks, VMess, Trojan, VLESS, Hysteria2, and TUIC, depending on the parameters provided by the server. UDP- and TCP-based transports have different network requirements. Choose based on UDP availability, server configuration, and device resources. A protocol name alone can’t predict connection speed or battery usage.
When using a subscription, confirm that its export format is compatible with mihomo before loading it in the client. Compared with the original Clash, the Meta branch and its successor, mihomo, support a wider range of protocols, so older cores may not recognize newer fields. Graphical clients may also bundle cores from different release stages; a similar interface doesn’t guarantee compatibility. If import fails, read the error to distinguish an unknown protocol, missing parameters, or invalid syntax. Renaming a protocol won’t convert one server type into another.
System proxy affects apps that follow the system’s proxy settings. TUN uses a virtual network interface to handle a broader range of connections. DNS settings control name resolution and determine which domain and address information is available for rule matching. These features work together, but enabling TUN won’t automatically fix every DNS issue. First verify a basic proxy connection, then enable TUN if needed and check routing, permissions, and DNS settings one at a time. Avoid letting multiple network tools modify the system network stack simultaneously.
fake-ip assigns virtual addresses to domains, allowing the core to retain the domain association for subsequent connections. redir-host uses the resolved IP address instead; each mode has different compatibility requirements. mihomo’s DNS and TUN implementations continue to evolve, so check current field documentation when using older configurations. If a LAN device or specific app has issues, check the DNS resolution path and filter lists before expanding traffic capture. Test the same destination before and after the change, and start a new connection to avoid cache-related results.
A profile is a configuration that a client saves and loads. It can come from a remote URL or a local YAML file. Remote subscriptions make it easy to refresh outbound information; local configurations give you direct control over the contents. Both must follow a structure the core can parse. Updating a subscription doesn’t update the client or switch the active configuration. When managing multiple profiles, use names that make their purpose clear, confirm which one is active, and keep personal rules in a separate override to make updates easier to maintain.
First import a configuration that loads successfully, then set a suitable update interval. mihomo reads the configuration, while subscription downloads, scheduled refreshes, and profile switching are usually handled by the graphical client. So using the same core doesn’t mean clients have identical management interfaces. When migrating from an older client, keep the original file and overrides, then check how the new client merges them. If an update fails, determine whether the download failed, the content format is invalid, or the core couldn’t load it. Keep the error message; repeatedly deleting the configuration makes troubleshooting harder.
Desktop and mobile clients share concepts such as rules, proxy groups, and subscriptions, but handle traffic differently. Desktops commonly use system proxy or TUN; phones typically connect through the system VPN interface. Supported fields, background updates, and app routing depend on the platform and client implementation. When migrating, reuse the basic configuration first, then address local file paths and system permissions. A configuration that works on one platform isn’t guaranteed to work unchanged on every device.
When choosing a client, check the target operating system, maintenance status, and configuration compatibility before comparing its interface. The names Clash, Clash Meta, and mihomo don’t tell you everything about client features, and clients may follow different release schedules. Most desktop users should choose a graphical client that’s still maintained; server users need to manage the core process and permissions themselves. The comparison page lists clients using the same criteria, and the downloads page provides platform-specific links. Don’t replace an existing tool based on a similar name alone.
Maintenance Status / Core Features / System Requirements
First-Run Setup
Import a Subscription and Check the Connection
Follow a repeatable checklist: load the configuration, choose an outbound strategy, then check the connection. Change one type of setting at a time.
Step 01 / Configuration
Import and Activate a Profile
Open the client’s configuration page, paste a subscription URL from a trusted source, or select a local YAML file. Wait for it to download and parse, then explicitly select the profile. Seeing a file in the list doesn’t mean the core has loaded it; also check which profile is active and whether any errors are shown.
If import fails, check whether the URL returns a web page or configuration content, then confirm the format is compatible with your core. Subscription URLs may contain access credentials. Hide the full URL in screenshots, and never post it in a public forum. Keep a restorable copy of your configuration before trying overrides or merges.
Step 02 / Outbound
Choose a Mode and Proxy Group
For your first connection, use rule mode and select an outbound option from a proxy group in the configuration. Then enable system proxy or allow the VPN connection as required by your system. A latency test only reflects the connection to its specific test destination; it doesn’t represent every site’s speed or replace a complete request.
Get the basic proxy route working before deciding whether you need TUN. Global mode changes how a routing strategy is selected; it doesn’t make apps that ignore the system proxy start using one. After changing modes, make a new connection and check the result. Existing long-lived connections may continue using their original outbound route.
Step 03 / Verification
Check the Connection and Matched Rule
Visit a specific test destination and check its domain, matched rule, proxy group, and final outbound in the client’s connection list. If you need to confirm your public IP, use a trusted IP lookup site as well. A page loading only confirms that request succeeded; check the connection log to verify it took the expected route.
If your browser works but an app doesn’t, first check whether the app follows the system proxy, then look at traffic capture and DNS. Windows Store apps may also be subject to loopback restrictions. Note the affected app, destination, and a summary of the logs; troubleshoot the configuration, proxy route, and DNS separately. Changing several settings at once makes it harder to identify the cause.
Know the difference between core projects, graphical clients, and subscription providers. You can check source code, licenses, and release history, but a client’s name alone doesn’t guarantee configuration compatibility.
Clash, Meta, and mihomo
Clash was an important starting point for rule-based proxy tools. Clash Meta extended the related configuration ecosystem with additional protocols and networking capabilities, and its successor core continues under the name mihomo. In everyday searches, “Clash Meta” may refer to the core or to a graphical client that uses it. To identify a specific project, check its app name, core details, and maintenance history. These names don’t refer to interchangeable installers.
The core parses configurations, matches rules, and handles connections. Graphical clients typically provide subscription lists, tray controls, system proxy toggles, and log views. Different interfaces can use the same core, while clients with similar interfaces may preprocess configurations differently. Before migrating, check whether an export is a standard core configuration or client-specific management data, then choose how to import it.
Source Code and License
You can find mihomo’s source code and project documentation in the public MetaCubeX repositories. The core is licensed under GPL-3.0. This license sets the terms for using, modifying, and distributing the code; it doesn’t mean every graphical client uses the same license, or that the core project provides subscription services. If you plan to distribute or modify software, read the relevant license and dependency notices for each project you use.
Source code is useful for checking implementation details against the documentation—not for treating star counts as a promise of connection quality. This guide doesn’t publish changing popularity figures. To determine whether a feature is suitable, check the public documentation, changelog, and core version currently integrated into your client. Community discussions can help identify known issues, but remove access credentials and personal information from configurations before reporting a problem.
Client updates, core updates, subscription updates, and rule-set updates are four different things. Client updates may change the interface or permissions; core updates may change protocols or configuration fields; subscription updates mainly refresh remote configuration content; rule-set updates change the data used by some rule references. When investigating a change, first identify which layer was updated so you can find the relevant release notes instead of blaming every issue on the subscription.
Keep a copy of your configuration and local overrides before updating. Afterward, use the same test destination to check the basic connection, then verify your custom rules. A configuration that parses successfully may not behave exactly as it did in the previous environment; conversely, extended fields in a new configuration may prevent an older core from loading it. Archived clients can help you reproduce an older setup, but for everyday use choose a project with recent maintenance and clearly documented system support.
Subscription Sources and Documentation Scope
This site collects client download links, setup instructions, and explanations of key concepts. Which outbound options a subscription provides, which parameters a server uses, and whether a remote URL is accessible depend on the configuration provider. Installing a client doesn’t provide a working configuration, and an installer isn’t a subscription service. To verify connection parameters, ask the configuration provider about the protocol, format, and requirements rather than guessing from the client’s name.
Button labels and settings locations vary by client, so these guides follow the same workflow: import a configuration, choose an outbound, capture traffic, and verify the connection. If the interface differs, look for the relevant feature rather than copying every toggle. For proxy groups, rule sets, or DNS enhanced modes, start with the concept reference. For protocol and core capability comparisons, see the protocol guide.
If Git is installed, run the command below. Cloning downloads the source repository; it doesn’t install a graphical client or enable the system proxy. See the repository documentation for build and runtime requirements.
git clone https://github.com/MetaCubeX/mihomo.git
Copy this into a local terminal; review the command before running it.
Configuration and Troubleshooting
Recent Technical Articles
Guides to configuration management, DNS behavior, and app compatibility. Identify which layer is causing the issue, then verify it step by step.
Learn why Windows Store apps are blocked from accessing localhost by default, and how to exempt UWP apps using a client’s built-in tool or the CheckNetIsolation command.
Follow the DNS resolution process to see how Fake-IP assigns virtual addresses, why it can reduce DNS lookup latency, how fake-ip-filter works, and which apps may not be suitable for it.
Learn how profiles relate to subscriptions, how remote configurations differ from local YAML files, how to set update intervals, and how to manage and switch between multiple profiles in a client.