From choosing a client to rule-based routing, find downloads by platform and verify your setup with connection logs.
mihomo core
GPL-3.0 open source
YAML configuration
Rule-based routing
Configuration / config.yamlModes / rule · global · directDiagnostics / connections and logs
Client comparison desk
Five criteria for choosing a Clash client
Check how features work before judging the interface. Being able to import the same subscription doesn't mean clients handle permissions, configuration merges or traffic routing in the same way.
Rule order matters more than the number of toggles
Rule mode evaluates connections in order, routing domains, IPs or processes to designated proxy groups. When comparing clients, check whether the connections view shows matched rules, proxy chains and destination addresses. If a site uses the wrong route, check the connection log first, then adjust rule order instead of switching everything to global mode. Unlike proxy tools that send all traffic through a single exit, the Clash ecosystem supports configurations that combine direct and proxied connections—provided rule sets stay updated, proxy group names are valid and the final catch-all rule behaves as expected.
TUN routes traffic through a virtual network interface, making it useful for apps that ignore system proxy settings. It's not a speed boost, nor does it guarantee compatibility with every app. Check service installation, permissions, route recovery and behavior after sleep or wake. Verify your connection with the system proxy first, then enable TUN separately to isolate issues in the core or traffic-capture layer. TUN affects more of the system than a standard system proxy. If other VPNs or network filters are running, check for routing and DNS conflicts.
Manage subscription updates separately from local changes
A subscription is a configuration source; the client fetches and loads it but doesn't provide working proxy nodes. When comparing clients, check whether update logs are clear, the existing configuration is retained if a fetch fails, and local overrides survive future updates. If an update fails, first check the URL and network access, then verify the format and core compatibility. Client-supported override or merge features are easier to maintain than editing a downloaded configuration directly. Merge order varies by client, so recheck the effective configuration when migrating.
Check the DNS resolution path before changing settings
DNS determines how domain names resolve and affects rule matching and connection setup. fake-ip maps addresses to domains and connections; redir-host preserves real DNS results. Choose based on app compatibility. When comparing clients, look beyond a DNS toggle: check whether interface changes reach the effective configuration, TUN interception works, and apps aren't using their own encrypted DNS. Core-level DNS adds a policy layer beyond system DNS. When troubleshooting leaks or sites that won't load, check system, browser and core DNS settings separately.
The client name doesn't define the core's capabilities
The GUI client manages subscriptions, permissions and the interface; the core handles protocols, rule matching and connection forwarding. When migrating a configuration, confirm which core the client actually includes, then check supported protocols, rule sets and fields. Clients using mihomo may still differ in update cadence and defaults, so appearance alone doesn't prove compatibility. Compared with the discontinued original core, mihomo continues the configuration ecosystem and extends its capabilities. Check the relevant core documentation and startup logs for field support; if parsing fails, locate the problematic field instead of repeatedly reinstalling.
This configuration sample shows selected fields, not a complete connection setup. You still need valid proxy nodes, proxy groups and permissions suited to your system.
Use cases and clients
Start with the device you'll use, then compare the settings you'll need to maintain. Picks aren't ranked by star ratings; recommendations are based on workflows and deployment requirements.
Everyday desktop use
Start with Clash Plus. It suits workflows that use a GUI to import subscriptions and switch proxy groups. Before installing, check OS and architecture support. Use the system proxy for your first connection; only investigate TUN and its permissions if you need app-level traffic capture.
Starting point: Clash Plus
Switching between mobile networks
Start by comparing Clash Plus's mobile options. When switching from Wi-Fi to cellular, check that the connection recovers and the intended proxy group remains selected. Background operation depends on battery settings and VPN permissions, so one successful foreground connection doesn't guarantee ongoing reliability.
Starting point: Clash Plus
Linux desktop
Compare Clash Verge Rev first, and consider FlClash as well. A GUI helps manage configurations and connection logs; make sure the package matches your distribution. System proxy settings, service permissions and terminal proxy settings are separate—verify each one.
Starting point: Clash Verge Rev
Headless deployment
For servers and routers, consider deploying mihomo directly. This suits users comfortable managing configuration files, service logs and startup tasks. Before deployment, check CPU architecture, configuration paths and the service account. Restrict access to the control interface; don't expose it directly to the public internet.
Starting point: mihomo core
Clash client downloads
Browse clients by platform, with installation requirements and maintenance status. Choose your OS first, then check your CPU architecture. A downloadable installer doesn't mean you can skip compatibility checks.
Start by comparing Clash Plus, then look at Clash Verge Rev, FlClash and Clash Nyanpasu. Check your system architecture before downloading, and locate the system proxy settings after installation. If you need service mode or TUN, read the permission prompts first; don't confuse security software blocking an app with a failed proxy connection.
Check whether your Mac uses Apple Silicon or Intel before choosing an installer. For everyday use, compare Clash Plus, Clash Verge Rev and FlClash. System proxy settings and network extension permissions have different approval flows. When macOS shows a launch warning, verify the app's source and system requirements rather than disabling system security features.
Start with Clash Plus, or compare Clash Meta for Android, FlClash and Surfboard. Check the installer architecture and configuration format before granting VPN permission. If the connection drops when the screen locks, check battery optimization, background restrictions and other VPN apps before changing the subscription URL.
The download center links to Clash Plus on the App Store. Its official website is clashplus.io. After installation, grant VPN permission when prompted and import a valid configuration. Desktop settings and fields may not carry over as-is; use a configuration format supported by the mobile app.
For desktops, compare Clash Verge Rev and FlClash; for servers, consider deploying the core directly. Check your distribution, CPU architecture and package format first. A GUI's system proxy setting usually won't cover every terminal app, so check proxy environment variables separately for command-line tools.
First establish a connection you can verify, then add more complex settings. Keep a clear way to validate each step so you know where to look if something goes wrong.
01
Install the client and confirm it starts
Choose a package for your OS and architecture. After installation, open the settings and logs pages first. Make sure the client can start its core before adding a subscription. Leave the system proxy, TUN and launch-at-startup options off for now. If startup already fails, check permissions, port conflicts and configuration parsing errors first.
02
Import a subscription and choose a proxy
Import a valid subscription on the configuration page. After it updates successfully, select it and choose a node in the proxy group settings. Subscription URLs often contain access credentials, so don't share screenshots that expose them. A failed update and an unavailable node are different problems: check fetch logs for the former and connection logs for the latter. A red warning alone doesn't tell you which one it is.
03
Enable the proxy and verify traffic
Start in rule mode with the system proxy enabled. Visit your target site and check the connections page for the domain, matched rule and proxy route. A latency test measures only its specific test destination; it doesn't represent speeds for every site. Once your browser works, test other apps one at a time. Only investigate TUN or app-level proxy settings for traffic the system proxy doesn't capture.
Clash Review Hub is an independent resource for choosing and configuring clients, not their developer. Recommendations state the conditions they apply to, and open-source references link to project sources you can inspect.
Project history: the original and later ecosystem
Multiple clients use Clash's rule configuration and proxy group concepts. The original project and later forks aren't the same continuously maintained product. A familiar name or similar interface doesn't mean a project is still updated. When choosing a client, check its maintenance status, core source and current platform support.
mihomo evolved from Clash Meta and continues to develop related core capabilities. When migrating an older configuration, preserve the overall structure of rules and proxy groups, then check parsing logs for field compatibility. The download center marks discontinued clients as archived so you can distinguish historical references from current daily-use options.
Core relationships: similar interfaces can behave differently
The client provides configuration management, tray menus, system proxy settings and permission controls; the core handles connections. They have separate release schedules. A new button in one client doesn't mean every platform handles traffic the same way. Even the same core behaves differently across systems due to routing, permissions and network conditions.
For side-by-side comparisons, focus on reproducible checks: can the configuration load, can you select a proxy group, can you trace connections, and are proxy settings restored on exit? Screenshots are useful context, but they don't replace checking the effective configuration and connection logs. For definitions, start with the quick glossary, then return to the setup steps.
Open-source foundations: inspect the implementation and its requirements
mihomo is open source under the GPL-3.0 license. Its public repository includes source code, commit history and issue discussions. Open-source access helps explain how it works, but doesn't mean every subscription, network environment or third-party build behaves the same. The core's license doesn't automatically apply to every GUI client; check each project's license and release notes separately.
The command below fetches mihomo source code for users who want to read the implementation or explore the build process. Most users can install a GUI client without cloning the repository. Recommendations here aren't based on unverified star counts, user numbers or speed rankings; connection performance should be tested on your own network.
Updates: preserve your setup before migrating
App updates, core updates, subscription updates and rule-set updates are four separate things. Before upgrading a client, save your current configuration and local overrides. After upgrading, verify the original basic connection workflow before testing new features. Changes made directly to a downloaded configuration may be overwritten when the subscription is fetched again; keep long-term changes in a supported override mechanism.
Change one variable at a time and record errors before and after. If something breaks after an update, compare startup logs and the effective configuration instead of repeatedly clearing data. See the download center for specific client versions. For routine checks, rollback preparation and log-reading steps, see the maintenance section of the user guide.
Copy the command to fetch the source code. This won't download or install a client.
Clash technical notes
Explore a topic when you have a specific question. These three notes are listed newest first and cover first-connection checks, core migration and deployment.
After importing a subscription, learn what latency test results mean and choose a proxy for your needs. Then use the connections panel, logs and an IP lookup page to verify that browser and app traffic is actually routed through the proxy.
Compare mihomo (formerly Clash Meta) with the original Clash core, including newer protocols, rule-providers and GEOSITE rules, TUN implementation and configuration field compatibility. Find out whether your existing setup can migrate as-is.
Desktop distributions can use a GUI client; servers and headless systems can run the mihomo binary under systemd. This guide covers both approaches, including installation, configuration paths, startup services and terminal environment variables.