CLASH SETUP GUIDE · ALL PLATFORMS

Clash Setup GuideDownloads and setup for every platform.

Set up your client and verify the connection, from importing a subscription to configuring routing rules.

  • Open-source core
  • YAML configuration
  • Step-by-step instructions
  • Core mihomo
  • Core license GPL-3.0
  • Platforms 5
  • Config format YAML

CONFIG.YAML / CONFIG NOTES

Common Clash settings.

Start by understanding what each setting does, then decide whether to enable it. These snippets explain individual fields; they are not complete, ready-to-use configurations. Add proxies, groups, and resolvers to suit your subscription and network.

mixed-port: 7890allow-lan: falsemode: rulelog-level: info

Use rule mode for everyday routing

Rule mode uses the conditions in your configuration to decide whether traffic connects directly or goes through a proxy. It works well when you need access to both local resources and remote services. Select “Rule” in the client's mode menu and make sure your subscription includes rules and proxy groups. Global mode sends intercepted traffic through the global policy; it can help with temporary comparisons, but it does not replace the system proxy or TUN. If a site takes the wrong route, check the matching rule in the connection log before changing anything. Switching modes repeatedly can hide the real cause. Menu labels vary by client, but the core routing logic is the same.

CLIENTS / CHOOSE BY DEVICE

Clash downloads for every platform.

Choose your operating system, then check your device's processor architecture and client requirements. Desktop and mobile clients can use a subscription from the same provider, but their interfaces, supported settings, and traffic-routing methods may differ. Avoid copying your entire desktop setup to a phone.

Windows

Start with Clash Plus, or compare clients such as Clash Verge Rev and FlClash. Check your device architecture under System Information, then choose an installer as directed on the download page. Clash for Windows is discontinued; migrating your configuration is a better long-term option than relying on archived builds.

The system proxy works well for browsers and other common apps. Before enabling TUN, make sure its service component is installed. If you use another traffic-routing tool, turn one of them off first, then check routes and connection logs.

Go to downloads Windows client

macOS

Before downloading, check About This Mac to see whether your device has Apple silicon or an Intel processor. Clash Plus, Clash Verge Rev, and FlClash each handle things differently. If you have an older configuration, check overrides, proxy ports, and launch-at-login settings rather than judging by the menu bar alone.

On first launch, follow the system prompts to grant app permissions. System proxy access and network extension approval are separate steps; installing the app does not mean traffic is already being routed. See the platform section of the full documentation for setup instructions.

Go to downloads macOS client

Android

Choose from Clash Plus, Clash Meta for Android, FlClash, and other options based on your preferences. Match the installer architecture to your device. Many newer devices use ARM64, but check your system information to be sure. After importing, select the configuration and approve the system VPN prompt.

If the connection drops when the app is in the background, check battery optimization and background restrictions. Don't enable every always-on feature just to keep it running; frequent speed tests and very short update intervals also use more battery.

Go to downloads Android client

iOS

Install Clash Plus from the App Store. Its official website is clashplus.io. Import your subscription in the app, select a configuration, and allow it to add a VPN configuration. Don't copy desktop settings related to system services directly to a phone.

Connections are managed by the system network extension, so background behavior differs from desktop. If the connection fails, first check that the configuration is valid, then review the app logs. Whether to use on-demand connections depends on how you switch between networks.

Go to downloads iOS client

Linux

Desktop users can compare Clash Verge Rev and FlClash, choosing a package for their distribution. For servers and routers, the mihomo core documentation is a better starting point. Configure the service, file paths, and permissions separately; there's no need to install a graphical interface.

A desktop system proxy may not apply to terminal programs. First check whether the app uses environment variables, explicit proxy arguments, or TUN, then confirm that its requests reach the core. Take extra care to preserve your existing management connection when working remotely.

Go to downloads Linux client

QUICK START / THREE STEPS

Import a subscription and connect.

A client manages configuration and network requests; it does not provide proxies. Before you begin, get a valid subscription URL from your service provider, make sure your device clock is correct, and confirm your current network can reach the URL. Subscription links may contain credentials, so never post them in public forums or include them in screenshots.

  1. Import a subscription and activate the configuration

    Look for “Config,” “Subscription,” or “Profiles” in the client, choose the option to import from a URL, paste the full address, and update. After a successful import, select the configuration and check that its proxy groups appear. If you see a subscription name but no proxies, check the update log to distinguish an expired URL, an invalid response format, or a network request failure. Don't switch to Global mode and keep retrying.

    If your provider offers multiple formats, choose a Clash or mihomo configuration supported by your core. Back up the original file before editing it manually, and take care with YAML indentation and the space after each colon. Don't share sensitive fields such as proxy passwords when asking for help. See the subscription import steps →

  2. Select rule mode and enable one traffic-routing method

    For your first setup, select Rule mode, choose an available proxy in the policy group, then enable the system proxy. On mobile, approve the system VPN prompt. Test TUN only if an app doesn't respect the system proxy, and make sure you've granted the required permissions. Existing VPNs, accelerators, and other proxy tools can compete for routes. During troubleshooting, get one routing method working at a time to limit variables.

    Global mode controls how traffic is routed after it reaches the client; it does not automatically send every request from every device through a proxy. Direct connections in Rule mode don't mean the client is broken. Check the destination and connection log to see what happened. Learn how to choose a mode →

  3. Test the connection and save a working setup

    Open a site you want to test and check the client's connection log. Confirm that a new request appears, matches the expected rule, and uses the right policy. Then test local websites, devices on your LAN, and everyday apps to make sure normal access still works. A latency test measures one probe; it doesn't show actual download speeds or prove that every site is reachable.

    If only your browser works but terminal apps don't, check the terminal's proxy settings. If nothing connects, check the subscription, proxy, and routing method one at a time. Once everything is stable, enable launch at startup and automatic updates, and note any changes you make to simplify future troubleshooting.

Read the full guide → Follow the setup steps to get started, then see the full documentation for platform permissions and advanced settings.

OPEN SOURCE / PROJECTS & MAINTENANCE

The Clash ecosystem and mihomo core.

When choosing a client, consider the graphical interface, proxy core, and subscription service separately. They handle the controls, traffic processing, and proxy sources, respectively. A problem at any one layer shouldn't automatically be blamed on “Clash not working.”

Project history and what came next

Clash became widely used for rule-based routing and YAML configuration, followed by a range of desktop and mobile clients. After the original project and some older clients were discontinued, the ecosystem continued along several paths. Clash.Meta carried on related development and later adopted the name mihomo. Older guides may use these names interchangeably or side by side.

Similar names don't guarantee full configuration compatibility. Newer protocols, rule syntax, or DNS settings may be supported only by specific cores. When migrating, check the fields rather than simply renaming the file with a .yaml extension. A configuration that imports successfully may still contain settings the new core doesn't recognize.

How the core and graphical client work together

mihomo parses configuration, establishes connections, and applies rules. The graphical client manages subscriptions, proxy selection, system proxy settings, and logs. Clients may also add their own overrides, merges, or configuration templates, so the options shown in the interface may not map directly to the file sent to the core.

When troubleshooting, prioritize the active configuration and runtime logs. A setting may be disabled in the interface but enabled in the subscription, or a local change may have been overwritten during an update. Either can make it seem like a change had no effect. When switching clients, save your subscription URL and custom rules separately.

Open-source license and project resources

mihomo is licensed under GPL-3.0. Its source code, commit history, and issue discussions are available in the project repository. Open source lets you inspect the implementation and license terms; it says nothing about the quality of third-party proxy services and doesn't replace testing on your own network. This site provides configuration guides and download links; it is not the official operator of the core project or every client.

If you suspect a software bug, reproduce it with the smallest configuration possible and note your system, client, core, and error details. Before filing an issue, remove subscription URLs, proxy credentials, and personal network information. Sharing a sanitized report is more useful than uploading your entire configuration.

Client updates and configuration updates are different

Client updates, core updates, subscription refreshes, and rule-data updates solve different problems. Updating the interface doesn't guarantee the core has changed, and refreshing a subscription won't fix system permissions. Keep a working copy of your configuration before upgrading and read the project's release notes. If an update introduces an incompatible change, check your configuration before switching your everyday setup.

If a GeoIP or rule-set download fails, check the resource path, access requirements, and exact error in the logs. If only one proxy is slow, try another for comparison. Troubleshooting one layer at a time usually preserves more useful clues than upgrading, reinstalling, and changing DNS all at once. See the glossary for definitions of these terms.

Browse the mihomo source code

Repository: MetaCubeX/mihomo. The commands below download source code; they don't install a graphical client. For everyday use, choose a client from the download page.

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

FIELD NOTES / CONFIGURATION

Recent guides and troubleshooting.

Once your basic connection works, explore guides for the issues you actually encounter. Before migrating clients, keep your current configuration. Before changing DNS, confirm where requests are going. Before comparing cores, identify the features you need. Change one thing at a time so you can tell what made a difference.

If a subscription update fails, start with Clash subscription update errors. If test results fluctuate, see Clash proxy latency for an explanation. Platform setup and configuration questions are covered in the FAQ in the full documentation; there's no need to read every setting from the start.