Open-source mihomo core Configure first, then connect

Clash Beginner GuideDownload & Setup

Start by importing a subscription, then connect in four steps. If settings differ, check rule-based routing and configuration fields.

Open sourceEnglish documentation
Clash · Configuration screen illustration
Overview Proxies Rules Connections Configuration Logs Settings

Configuration

Example workflow
Import from URL
https://example.com/sub?token=xxxx Download
No configuration files yet. Imported subscriptions will appear here.
config.yamlBasic fields
1mixed-port: 78902allow-lan: false3mode: rule4log-level: info5dns:6  enable: true
Current settingsRule examplesDetails
Mixed port
7890
Operating mode
Rule
System proxy
Off
TUN mode
Off
Allow LAN
Off
IPv6
Off
External controller
127.0.0.1:9090
Save and enable

Find settings by issue

Beginner questions
Configuration answers

Import from the Configuration page, then select it to enable

Open the client’s Configuration or Subscription page and find the option to import from a URL. Paste the full subscription URL from your provider and click Download. Once the configuration appears, select it as the active configuration; downloading it locally does not enable it. Next, open the Proxies page and confirm that you can expand a policy group and select a proxy. Subscription URLs often contain access credentials, so don’t post them in public forums. If the import fails, first check that the URL is complete, the subscription is valid, and your network can reach the subscription server. Don’t start by changing DNS or repeatedly reinstalling the client.

Workflow · Labels vary by client
Configuration → Import from URL → Download → Select configuration
Proxies → Expand policy group → Select proxy
Explore more configuration features
  • Rule-based routing
  • TUN mode
  • Subscription updates
  • DNS overrides
  • LAN sharing

Choose a package for your operating system

Clash client downloads

Browse all clients →

Check your device’s operating system and processor architecture before choosing a client. Clash Plus, Clash Verge Rev, FlClash, and other names refer to separate GUI projects; a filename containing “Clash” alone doesn’t tell you whether it supports your platform. The download page lists clients by operating system, along with maintenance status and installation notes. The links here take you to the relevant platform section; they don’t start a download automatically.

If this is your first time, import a subscription and verify the connection on one device before repeating the process elsewhere. Installing a client and getting a subscription are separate steps: the installer provides the app, while the subscription provides connection settings. Once you have a valid subscription, follow the tutorial; you don’t need to write a complete YAML file before installing. If your old client still works, export its configuration and custom rules before deciding whether to migrate.

Windows

For desktop use, start by comparing Clash Plus, Clash Verge Rev, and FlClash. Check your processor architecture in system settings before downloading. After installation, import a subscription before enabling the system proxy. Configure service permissions for TUN only if needed; a successful installation doesn’t mean the connection is working.

If you’re migrating from Clash for Windows, back up your subscription URL, rules, and port settings first. An archived client may still launch, but its maintenance status differs from that of newer clients. If configuration fields aren’t compatible, address them individually using the new core’s documentation rather than replacing the entire configuration.

Go to downloads Windows client

macOS

Check About This Mac to see whether your device has Apple silicon or an Intel processor, then choose the matching package. Common options include Clash Plus, Clash Verge Rev, and FlClash. If macOS asks for authorization on first launch, verify the app’s source, then follow the standard system prompts.

The menu bar proxy toggle and the active configuration are two separate things to check. After importing, make sure the configuration is selected, then confirm that your network settings point to the client’s local listening port. Turn off the current proxy before switching to another network tool to avoid conflicting settings.

Go to downloads macOS client

Android

On Android, start by checking out Clash Plus, then compare Clash Meta for Android, FlClash, and Surfboard. Most recent devices use ARM64, but check your device details before choosing a package. Clients may support different configuration formats, so don’t assume every subscription URL is compatible with every app.

On the first connection, Android will usually ask you to authorize a VPN connection. Confirm the app and allow it. If the connection drops when the app goes into the background, check battery optimization and background activity restrictions. If another VPN is already running, check which app is handling traffic rather than relying on the status bar icon alone.

Go to downloads Android client

iOS

iPhone and iPad users can find the Clash Plus App Store page from the downloads page and visit clashplus.io for details about the app. Install it first, import a subscription in a supported format, then follow the system prompts to add a VPN configuration.

Even after turning on the connection, you still need to select an appropriate policy and verify access by visiting a page. If a subscription imports but sites won’t load, check that it’s still valid and selected. Don’t repeatedly delete your system network settings. If results differ between mobile data and Wi-Fi, record and troubleshoot them separately.

Go to downloads iOS client

Linux

For desktop Linux, compare Clash Verge Rev and FlClash, then choose a package for your distribution. After installing a GUI client, test your browser with the system proxy before considering service mode or TUN. A GUI opening successfully doesn’t mean the core service has started correctly.

Server and router users can also look into the mihomo core, but will need to manage configuration paths, permissions, and the service themselves. Command-line apps may not use desktop proxy settings, so check each app’s proxy options. Don’t change global routing just to fix one app’s connection.

Go to downloads Linux client

After installation, keep the default settings

You don’t need to change ports, DNS, TUN, and LAN sharing all at once to get connected. Start with the subscription’s default configuration and run a repeatable test in Rule mode. Change only the settings related to a specific problem. This preserves a baseline for troubleshooting and helps you see which change affected the result.

Not sure about a term? Start with the quick glossary. If you already know which field to change, go to the configuration reference. Tutorials walk you through the steps; reference docs explain the settings. You don’t need to read both all the way through.


Project relationships and configuration sources

The Clash ecosystem and the mihomo core

About this site →

The client is the interface; the core handles connections

The Clash ecosystem isn’t a single product with one installer for every device. GUI clients manage configurations, proxy selection, connection details, and system integration. The core reads configuration files, matches rules, and establishes outbound connections. mihomo is an actively developed open-source core in this ecosystem. Understanding the distinction helps you tell interface toggles apart from configuration fields and decide whether to look for a problem in the client settings or the core configuration.

Clients may bundle different core builds, defaults, and configuration merge behavior, so menus and tutorial screenshots won’t always match exactly. Focus on the goal: find the configuration, enable a valid one, select a policy, and confirm that traffic is being handled. A button moving doesn’t mean the workflow has changed. On the other hand, similar interface labels don’t mean every advanced field can be copied across clients.

Check the maintenance status of older projects and newer forks separately

Searches for the Clash official site, Clash Verge Rev downloads, or the end of Clash for Windows support can surface old tutorials, archived projects, and successor forks side by side. They may share some configuration syntax, but their maintainers and release channels differ. Before downloading, confirm the exact project name, read its current release notes, and choose the package for your operating system. Don’t assume a client is still recommended just because an older article mentions it.

An archived project doesn’t mean existing files stop working immediately, but future compatibility and bug fixes need separate consideration. Before migrating, save your working configuration and note custom rules, policy group names, and local ports. Verify everything in the new client before removing the old installation. Keeping a baseline makes differences easier to investigate without having to recreate the setup from memory.

Check the repository for open-source details; test your configuration for connectivity

An open-source repository provides source code, licenses, commit history, and issue discussions, making it a useful place to review how a project works and what has changed. The public mihomo repository is under the MetaCubeX organization. The command below fetches the source code, for anyone who wants to review the implementation or explore the build process. Most users don’t need to run commands to install a GUI client, and setting up a build environment isn’t part of the four-step setup.

Open-source code and whether a particular connection works are separate questions. The result depends on whether the subscription is valid, the proxy server is reachable, the network allows access, and the rules match as intended. Rather than relying on unverified download counts or ratings, this site focuses on checks you can observe: the configuration loads, a policy can be selected, requests appear in the logs, and the final outbound is as expected.

Handle client updates and subscription updates separately

Updating a client can change its interface, system integration, or bundled core. Updating a subscription fetches configuration content again from its URL. A client update doesn’t renew your service, and a subscription update doesn’t upgrade the app. If a subscription update fails, first check that the URL is reachable, the response uses a supported format, and the service is still active. Don’t assume every failure means the client is outdated.

Before upgrading, read the release notes and export your current configuration. Afterward, check that your proxy groups, overrides, and DNS settings are still as expected, then retest the apps you use most. If you edited a subscription-generated file directly, the next subscription update may overwrite your changes. For rules you need to keep, use an override or merge option explicitly supported by the client and keep a recoverable backup.

Before reporting an issue, collect steps others can reproduce

When asking the community for help, start with your operating system, client name, proxy handling method, and the step where the problem begins. Say whether every site fails or only a particular domain or app, and describe what changes when you switch between Rule and Global mode. This detail gives maintainers a clearer starting point than “it won’t connect” and can save several rounds of questions.

Logs and configuration files may contain subscription credentials, server addresses, or personal network information. Remove sensitive details before sharing, and include only the relevant field structure, error, and reproduction steps. Don’t post a full subscription URL or overwrite a working setup with a large edited file. Start with a small, controlled comparison before changing DNS, routing, or TUN settings.


Explore further after setup

Recent configuration and troubleshooting guides

View all articles →

Once you’re connected, choose an article based on the problem you’re actually facing. LAN sharing covers how other devices access a computer’s port; certificate errors involve browser security checks; DNS tests focus on domain lookup paths. Each issue has different things to check, so don’t apply every setting from several articles at once. Keep your current configuration and test one change at a time.

DNS Config

How to test for DNS leaks in Clash and configure fake-ip protection

Use a DNS leak test to check whether lookup requests are exposed, then follow a line-by-line guide to the dns section’s enhanced-mode, nameserver, and fallback settings, with a ready-to-use example.

When reading the results, distinguish the path of DNS queries from the path of web traffic. The resolver shown by a test site is only a clue; interpret it based on how traffic is being handled. Don’t replace the entire DNS configuration just because you see an unfamiliar provider.

Troubleshooting

HTTPS certificate errors after enabling a proxy: causes and fixes

Learn how to tell apart incorrect system time, public Wi-Fi interception, proxy server issues, and misconfigured rules, with an explanation of how certificate errors relate to proxies and what to do in each case.

If you see a security warning, stop entering account or payment details. Check your system clock and the domain you’re visiting, then compare the result on another network. A proxy being enabled at the same time as a certificate error doesn’t prove one caused the other.

Advanced Setup

Mixed port 7890 and Allow LAN: share your computer’s proxy with a phone

Learn how mixed-port handles HTTP and SOCKS5, then follow steps to enable allow-lan, find your computer’s LAN IP, and enter the proxy details in your phone’s Wi-Fi settings.

Before sharing, make sure the computer itself can connect and both devices are on a network that allows them to communicate. Enabling Allow LAN is only one step; also check the listening address, firewall, and proxy port entered on the phone.

Download clients