MIHOMO CORE · RULE ROUTING

Clash Meta
Clients

Built around the mihomo core, this collection covers Windows, macOS, Android, iOS, and Linux clients, with practical configuration paths for subscription imports, rule-based routing, and network diagnostics.

  • Free forever
  • Open source
  • Chinese documentation

TEST BENCH / ROUTING

mihomo core capabilities

The sections below follow one connection from entry through the local port to its selected exit. Switch between test cases to see what rules, DNS, TUN, and subscription settings handle, and which results to check during configuration.

RULE-SET / GEOIP / MATCH

Rules determine the connection exit

Rule mode checks domains, IPs, processes, and dedicated rule sets from top to bottom; the first match determines whether a connection is direct, proxied, or rejected. Put narrow, explicit rules first, and keep MATCH at the end alongside other broad rules. Unlike clients that offer only a global switch, mihomo can handle LAN traffic, work systems, media services, and ordinary web pages separately. Connection logs also show the exact matching rule during troubleshooting, rather than relying only on whether a page opens.

PLATFORM ACCESS

Choose a client by operating system

The download page lists available graphical clients, system requirements, and installation links by platform. It does not distribute installers directly; platform links open the relevant category so you can compare clients on the same system.

P-01 / DESKTOP

Windows

Suitable for desktop environments that need a persistent tray client, system proxy switching, and TUN takeover. The download page also lists Clash Plus, Clash Verge Rev, FlClash, Clash Nyanpasu, and archived clients, making it easier to choose by maintenance status and interface preferences. After installation, import a subscription and confirm the system proxy switch and listening port.

Go to downloads

P-02 / DESKTOP

macOS

Suitable for Apple Silicon and Intel Macs. Check the processor architecture before installation, then follow the system prompts to authorize the network extension or helper service on first launch. For browser traffic alone, start with the system proxy; enable TUN only when needed for terminal tools and other applications that ignore proxy settings.

Go to downloads

P-03 / MOBILE

Android

Android clients take over app connections through the system VPN interface and require explicit connection permission after configuration import. Background restrictions vary by device. If the connection drops after the screen locks, check battery policy, background activity permission, and VPN status before changing nodes or rules.

Go to downloads

P-04 / MOBILE

iOS

iPhone and iPad use a system network extension to establish the proxy connection. Configuration focuses on importing a subscription, choosing proxy groups, and authorizing the system VPN. After connecting, check the client log to verify domain matches. The download page links to Clash Plus in the App Store and its official site at clashplus.io for product details.

Go to downloads

P-05 / DESKTOP

Linux

Desktop users can choose a graphical client, while servers, software routers, and container environments are better suited to running the mihomo core directly. Before configuring, define the service user, configuration directory, and startup method, then hand logs to the system service manager. Graphical clients and core packages serve different purposes; for ordinary desktops, choose the former.

Go to downloads

THREE-STAGE SETUP

From subscription import to connection verification

A first setup does not require changing every advanced option at once. Establish a repeatable baseline: confirm that the client parses the subscription, choose rule mode and proxy groups, then verify matches in the connection log. Once the basic path is stable, move on to TUN, DNS, or custom rules.

This order limits each problem to one stage. If import already fails, there is no need to inspect the system proxy; if configuration loads but an application has no traffic, check permissions, ports, and the takeover method instead. The full guide covers interface entry points and common status messages.

View the complete guide →
  1. 01

    Import a subscription or configuration file

    Add the service provider's link on the client's configuration or subscription page, update it, and check for proxy groups, nodes, and rules. If the configuration is blank or parsing fails, first confirm that the link returns content supported by the client; do not enable the system proxy yet.

  2. 02

    Choose rule mode and policies

    Rule mode is usually best for daily use, followed by selecting an available policy in the main proxy group. Global mode sends most connections through the current policy, while direct mode bypasses the proxy; both are better suited to temporary tests. Reconnect active sessions after switching.

  3. 03

    Enable takeover and check the logs

    Enable the system proxy first and open a test page. Check whether a new entry appears in the client connection list and whether its rule matches expectations. If the target program ignores the system proxy, evaluate TUN next. Verify web access, LAN devices, and frequently used applications together rather than judging from one page.

OPEN SOURCE RECORD

The open-source mihomo ecosystem and maintenance boundaries

Project relationship.Clash Meta commonly refers to the feature ecosystem formed around the Meta branch, while the core project is now developed under the mihomo name. Graphical clients handle configuration management, system services, tray interaction, and log display; the mihomo core handles protocols, rule matching, DNS, and inbound and outbound connections. Understanding this relationship helps identify whether an issue occurs in the interface, system permissions, configuration file, or core runtime.

Open collaboration.mihomo source code, commit history, issue discussions, and release notes are maintained in public repositories. Users can track implementation changes to configuration fields, and client maintainers can build frontends for different platforms on the same core. This site bases its Chinese documentation on public materials and observed configuration behavior; it does not treat a UI label as a core capability or merge differences between third-party clients into one conclusion.

Update paths.The core, graphical client, subscription content, and rule sets follow four separate update paths. Client updates may change the interface and system services; core updates may alter configuration fields or network behavior; subscription updates mainly affect nodes and policies; rule-set updates change the range of matching connections. During troubleshooting, record which layer changed most recently and restore a single variable first instead of updating everything at once.

Documentation principles.Configuration notes prioritize observable results: whether the file loads, whether the port is listening, whether the system proxy points to the correct address, which rule matched, and which resolver handled the DNS request. Permissions and network stacks differ across operating systems, so the same switch may have different prerequisites. Where platforms differ, the guide lists separate steps rather than summarizing every environment with one screenshot.

SOURCE COMMAND

View the mihomo source code

The command below clones the public repository for users who want to inspect configuration behavior, follow issues, or contribute. Ordinary client installation does not require it.

git clone https://github.com/MetaCubeX/mihomo.git

OBS-01

Configuration loading

Confirm that YAML parses, external rule sets are readable, and referenced policy-group names match. Before traffic takeover begins, parsing failures should be addressed through indentation, field compatibility, or remote-content reachability.

OBS-02

System takeover

The system proxy works for programs that follow proxy settings, while TUN covers a broader range of network traffic. Both involve system permissions and routing; reconnect after switching and check LAN access.

OBS-03

Rule matching

A successful connection does not prove that routing is correct. Check the target domain, final IP, matching rule, and selected policy to distinguish an unavailable proxy, incorrect rule order, and abnormal DNS results.

OBS-04

Change history

Change one category at a time and keep the last working configuration. If something breaks, you can roll back quickly and identify whether the change came from rules, DNS, subscriptions, or client settings.

SHORT ANSWERS

Featured FAQs

These questions help define a troubleshooting direction. For configuration-field meanings, continue to the glossary; for complete procedures, open the user guide.

What is the relationship between Clash Meta and mihomo?

Clash Meta is a widely used name for this branch and its ecosystem, while the core project is currently maintained under the mihomo name. Different graphical clients can call the mihomo core, but each project controls its own interface, system services, and release schedule. See the glossary's core and architecture section for more details.

How should you choose between rule, global, and direct modes?

Rule mode is generally best for daily configuration, sending connections to different policies based on domains, IPs, and rule sets. Global mode helps temporarily confirm whether a proxy policy works, while direct mode helps rule out proxy-related factors. Existing connections may keep their previous route after a switch, so close the target app's connections and test again.

Why do some apps have no traffic even when the system proxy is enabled?

Some apps do not read system proxy settings and may implement their own network stack. First confirm that browser traffic reaches the client, then check whether the target app supports proxy settings. If broader coverage is required, enable TUN and verify administrator permission, the virtual adapter, routes, and DNS takeover status.

What should you check first when a subscription update fails?

First check whether the subscription URL is reachable and still returns valid configuration, then review the client's HTTP status, parsing messages, and field errors. If manual access works but the client update fails, check whether the current proxy rules create a loop for the update request. See the subscription update troubleshooting notes for detailed steps.

FIELD NOTES

Recent configuration notes

Articles are organized around specific problems, recording trigger conditions, check order, and post-change verification. Dates mark when the content was compiled; before configuring, compare fields with the current client interface and core documentation.

Clash subscription update failed: troubleshooting causes and setting automatic update intervals

Check link expiration, blocked requests, proxy loops, and format changes in that order. The article also explains where to set the automatic update interval and which status to watch after forcing a manual update.

Read the full article

Which Clash proxy mode should you choose? A detailed guide to rule, global, and direct modes

Explains how the three modes differ by connection flow, with guidance for daily browsing, temporary testing, and intranet troubleshooting, plus why connections must be re-established after switching.

Read the full article

How to import a Clash subscription link: client-specific steps and common subscription formats

Covers subscription entry points in different clients, explains the differences between standard YAML, Base64, and universal share links, and shows how to confirm that nodes, proxy groups, and rules loaded after import.

Read the full article