config.yamlRule syntax example · PROXY must match a defined proxy group
PLATFORMS
Downloads for five platforms
CONFIGURATION
YAML configuration
CORE
mihomo core reference
LEARNING PATH
Complete nine-chapter handbook
Clash client downloads
Choose your operating system first, then check your processor architecture. The download page lists installation methods, client options, and system requirements by platform. Subscription import and connection setup are covered in the usage guides, keeping app installation separate from network configuration.
Start with Clash Plus, or choose Clash Verge Rev, FlClash, or Clash Nyanpasu based on your interface preferences. Before downloading, check your device architecture under System Information in your system settings—don't rely on the computer brand alone.
After installation, import a configuration before enabling the system proxy. This is a good way to test access in a regular browser. For apps that don't follow system proxy settings, read the TUN chapter. Clash for Windows is listed only as an archived, discontinued option.
Open Apple menu → About This Mac to identify whether your Mac has Apple silicon or an Intel processor, then choose the matching installer. Permissions and settings may differ across Clash Plus, Clash Verge Rev, and FlClash.
Follow the system prompts to grant any required permissions on first launch. System proxy and TUN are two different ways to route traffic; you don't need to enable every option at once. The ClashX Meta download link is kept for reference—check its maintenance status before choosing it.
Compare Clash Plus, Clash Meta for Android, FlClash, and Surfboard. Most recent devices use ARM64, but check your device information to be sure. If installation fails, verify the architecture and system requirements first.
After importing a subscription and starting the client, Android will usually ask to create a VPN connection. Verify the app's source before granting permission, then check the connection log. If the connection drops in the background, check battery optimization and background activity restrictions rather than reinstalling repeatedly.
The download page links to Clash Plus on the App Store and lists its official site, clashplus.io. Check the system requirements in the store before installing. Then import the subscription link from your service provider on the client's configuration page.
On the first connection, allow the client to add a VPN configuration when prompted by iOS. Back in the app, confirm the intended configuration is selected, then try opening a website. The VPN indicator means a tunnel is active; you still need to verify that traffic is actually getting through.
For desktop Linux, choose between Clash Verge Rev and FlClash. Check your distribution's package format and processor architecture first. After installation, launch the client from your desktop and review any first-run prompts about services and permissions.
Server and router users can find mihomo in the core section of the download page. A command-line core requires you to set up the configuration, working directory, and service management yourself. It isn't a desktop installer with a graphical interface.
When getting started, run just one client at a time. Multiple clients changing system proxy settings or creating virtual network interfaces can make it harder to trace the connection path.
Jump from a common setting to its guide. Understand which layer a setting controls before changing it. Select a topic on the left to see what it does, a syntax example, and a link to the full handbook. Examples show only the relevant fields and must be merged into your existing configuration.
Rule order and the final route
Rule-based routing sends different destinations through different routes instead of handling every connection the same way. In Rule mode, clients usually check rules from top to bottom, and the first match determines where traffic goes. After adding a domain rule, open the connection log to see which rule matched and confirm the final proxy group. Unlike tools with only a global on/off switch, this approach makes routing decisions easier to trace—but rule order needs maintenance. PROXY below is a proxy group name and must exist in your configuration; put MATCH last as the fallback.
TUN routes traffic through a virtual network interface and can cover apps that ignore system proxy settings. It changes how traffic reaches the core; it won't fix a dead node or incorrect rules. First verify that your subscription and outbound route work with the system proxy. Then follow your client's instructions to install its service or grant permissions, and enable TUN last. Unlike configuring a browser proxy alone, this path involves routing and system permissions, so check both the logs and network interface status when troubleshooting. The example below shows common mihomo fields; available options depend on your core and operating system.
A configuration in the list isn't necessarily active
Managing multiple configurations lets you keep separate subscriptions, work setups, or local test configurations. After importing multiple Profiles, you usually still need to select one as the active configuration. Seeing its name in the list doesn't mean it's in use. After switching, check the proxy groups, operating mode, and connection log to confirm the client loaded the right settings. Naming configurations by purpose makes it easier to roll back than repeatedly editing the same file. Subscription files may be replaced during updates, so keep lasting changes in an override mechanism supported by your client. The YAML below shows local proxy groups; it doesn't represent the configuration list in the app.
proxy-groups:
- name: PROXY
type: select
proxies:
- DIRECT
- example-node
# example-node must be defined separately as a valid node
The client handles configuration management, menus, and system integration; the mihomo core parses the configuration and runs proxy, DNS, and rule logic. They work together, but updating the client doesn't guarantee support for every field. If configuration parsing fails, check the core version on the About page or in the runtime log, then look up the field's requirements. Verifying the configuration actually in use is more reliable than judging by button labels. mixed-port below provides both HTTP and SOCKS proxy access; make sure the port isn't in use by another app. Keep it bound to localhost and don't expose it to your local network without a reason.
mixed-port: 7890
allow-lan: false
mode: rule
log-level: info
Automatic updates fetch subscription content again; they don't guarantee the subscription itself will remain valid. Run a manual update first and confirm that the nodes and proxy groups work, then choose a suitable interval. If an update fails, check the link, network access, and format compatibility in that order. Updating a full Profile in a graphical client is usually configured in the interface; it isn't the same mechanism as proxy-providers in YAML. Keeping these separate makes it easier to understand why rules changed. The example below shows scheduled updates for a proxy provider. Replace the example URL with your own, and make sure a proxy group references the provider.
These three steps cover the essentials for first-time use. If you already have a client installed, start by importing a subscription. Otherwise, choose your operating system on the downloads page first. Button labels vary by client, but configurations, proxy groups, and connection logs serve the same purpose.
Step 1 · Configure
Import a subscription and activate it
Open the client's Configuration, Subscription, or Profile page, choose the option to import from a link, and paste the full URL from your service provider. Save it and wait for the download to finish. You should see the configuration name and its contents. Select it to make it the active configuration.
If parsing fails, check that you didn't copy a webpage URL, instructions, or extra spaces by mistake. Subscription links may contain access credentials, so don't post them in public forums. Clients don't include working proxy nodes; installing the app and having a valid subscription are separate requirements.
Step 2 · Connect
Choose a rule mode and proxy group
Open the Proxy page and set the operating mode to Rule. Expand the main proxy group and choose an available route, then enable the system proxy or establish a VPN connection for your platform. On desktop, leave TUN off during initial setup to limit the number of settings changing at once.
If a proxy group is set to DIRECT, matching traffic may connect directly. If your configuration has multiple groups for different purposes, check each one. Don't stop when the main switch is on: the group selection determines which route is used after a rule matches.
Step 3 · Verify
Check the route in the connection log
Visit a website you want to test, then open the client's Connections or Logs page and find its domain. First confirm that a connection appears, then check the matching rule and final route. If there's a log entry but the site won't load, check the node, DNS, and the destination service itself.
If no connections appear, first check whether the app uses the system proxy or whether the VPN is actually connected. Change one setting at a time, revisit the site, and compare the results. Once the connection is verified, consider enabling startup, automatic updates, and TUN. This keeps your initial troubleshooting focused on one layer at a time.
Open-source projects, cores, and configuration maintenance
Understanding how the projects fit together is more useful than memorizing where a button sits in one interface. This site organizes client download links and configuration guides; it doesn't replace project release notes. Check the selected client's own documentation for feature support, installation requirements, and maintenance status.
Clash configuration and its community successors
Clash established a configuration approach built around YAML, proxy groups, and rules. After the original project was discontinued, the community continued developing compatible clients and cores. Clash download results today may lead to apps with very different interfaces; a similar name doesn't guarantee the same features or maintenance status. Before following a guide, check the product's full name, identify its core, and confirm that the settings apply.
mihomo is one actively developed open-source core in this ecosystem. It's a separate project from graphical clients: the core handles network traffic, while the client provides tools to import subscriptions, switch proxy groups, view logs, and integrate with the operating system. A client using mihomo won't necessarily share the same override interface, update strategy, or permission prompts as other clients. This handbook separates general concepts from platform-specific steps, so you can apply what you've learned even if you switch clients.
Check features against source code and release notes
Open-source repositories can help you check configuration fields, issue discussions, and project activity, but an active repository doesn't prove that any proxy service is available. Below are the mihomo upstream repository and clone command for users who want to read the source or compare it with the documentation. Desktop users don't need to clone or compile anything: choose a graphical client on the downloads page and follow the usage guide to configure it.
If an online guide doesn't match your client, check which product, operating system, and core it covers. Button locations may have changed since an older guide was published, and archived clients may no longer suit current systems. Don't downgrade a working setup just to match a screenshot. Look for the current control that provides the same function, and save a recoverable copy of your configuration before making changes.
Manage updates at three separate levels
App, core, and subscription updates solve different problems. App updates mainly affect the interface and system integration; core updates affect protocol and configuration field support; subscription updates fetch the provider's latest nodes or rules. If something suddenly stops working, note which type of update happened most recently before deciding what to check. Don't run every update one after another.
Once everything is working, keep a backup of a known-good configuration and give it a clear, descriptive name. Before making lasting changes to subscription content, check whether your client supports merging or overrides. Direct edits to a downloaded file may be lost on the next update. For a detailed backup, logging, and recovery workflow, see the Maintenance chapter.
Troubleshoot connections using evidence
A subscription can import successfully while websites still fail to load—and the problem may not be the client installation. First check whether traffic reaches the core, then whether the expected route matches, and finally the node and destination site. If only one app fails, check whether it follows the system proxy. If every destination fails, inspect the active configuration, network access, and DNS logs. Troubleshooting one layer at a time preserves useful clues better than repeatedly switching software.
A client handles connections but can't guarantee that a subscription service will remain available. Follow the laws, service terms, and network policies that apply where you are. When asking for help, include your operating system, client name, error message, and steps to reproduce the problem—but remove credentials from subscription URLs, node passwords, and personal information. To learn more, work through the Advanced topics chapter.
Clash technical notes
Here are three recent guides on speed troubleshooting, managing multiple configurations, and macOS permissions. Complete the quick start to establish a basic connection first, then open the relevant guide when a specific issue comes up. This avoids changing too many settings before you need to.
Break down slow speeds across three layers: node quality, network routes and ISP, then local DNS and rules. Learn how to assess each layer and which settings to adjust.
Learn how Profiles relate to subscriptions and local YAML, how to name and switch between configurations, set automatic update intervals, and keep overrides from being overwritten by subscription updates.
A step-by-step guide to macOS “can't be opened” alerts, allowing network extensions, and handling the Keychain authorization and administrator password prompts required for system proxy and TUN.