Choose your operating system, then check the processor architecture. Use a GUI client on desktops and phones; use the Mihomo core on servers and routers.
Clients are listed in a consistent order for each platform. The recommended option is a good starting point; other options may suit users who prefer a familiar workflow. Switch platforms and share the current page URL.
Windows clients
Go to Settings → System → About to check your system type. This section offers x64 installers; on ARM devices, first confirm that Windows can run x64 apps. After installation, import your configuration and enable the system proxy. Check TUN services and permissions only if you need to route traffic from more apps.
Clash Plus
Recommended
A good choice for first-time setup, with guided subscription import, proxy mode selection, and connection settings. Start in Rule mode and check the connection log to confirm where traffic is routed. Avoid changing both the system proxy and DNS at once, which can make issues harder to diagnose.
For desktop users who want to manage configuration files, rule overrides, and core settings. Before migrating, export your old client configuration and check the subscription and local overrides separately. Don’t assume fields specific to the old client are valid in generic YAML.
For users who want a similar interface across desktop and mobile devices. You can import the same subscription on each, but configure the system proxy, background permissions, and TUN separately on each device. Subscription sync does not configure these settings for you.
Another Windows GUI client, suited to users familiar with its interface. After switching, check the active configuration name, listening port, and proxy mode. The tray icon alone doesn’t confirm that traffic is being routed.
Archived downloads are provided for comparing older setups, viewing existing configurations, and preparing a migration. For a new installation, choose a maintained client listed above. Save your configuration and rule overrides before migrating, then disable the old client’s system proxy to avoid port conflicts.
Use a supported 64-bit Windows system where possible. Check the selected client’s release notes and installer for the minimum Windows version.
Services and permissions
The system proxy and TUN are different ways to route traffic. Follow the client’s prompts to grant the permissions needed to install a helper service or enable TUN.
Port conflicts
Quit other proxy apps before launching the new client. If the log reports a listener error, check whether another process is using the mixed port.
macOS clients
Open Apple menu → About This Mac to check your chip. Apple Silicon uses ARM64; Intel uses x64. After downloading the disk image, move the app to Applications, then complete first-launch steps and authorize any helper service. Don’t run the app from the disk image long-term.
Clash Plus
Recommended
Separate installers are available for Apple Silicon and Intel. Choose based on the chip shown in About This Mac, not the size of your computer. After first launch, import your configuration, then check the system proxy and relevant network permissions.
For desktop use cases that need configuration management and rule overrides. If the helper service isn’t running after installation, check its status in the client and review system permissions. Re-downloading installers won’t fix a permissions issue.
For users who want a similar configuration workflow across devices. After syncing a subscription, check the local proxy port, launch-at-startup option, and traffic-routing settings. These are device settings, separate from the subscription’s nodes and rules.
An archived option for older macOS workflows. Before migrating, note your current configuration path and system proxy settings. For a new setup, consider a client listed above rather than assuming an old version will continue to support future macOS releases.
Minimum macOS versions vary by app build. Check the installer and release notes; don’t assume an older system’s requirements are the same across clients.
Processor
ARM64 is for Apple Silicon. x64, x86_64, and AMD64 refer to Intel-type architectures. Check the actual filename, not just the link label.
First launch
Check app launch, helper service, and network permissions in System Settings. If a permission prompt appears, confirm it was triggered by the app you just installed.
Android clients
Most recent phones use ARM64, but older devices may still use 32-bit ARM. Don’t infer the processor ABI from the Android version alone. Check it before installing. The first connection prompts for Android VPN permission; afterward, check battery optimization and background restrictions.
Clash Plus
Recommended
This link provides an ARM64 installer. Import your subscription, choose an available proxy, then connect and approve the Android VPN prompt. If the connection stops when the screen locks, check background permissions instead of repeatedly changing rules or reinstalling the app.
Choose an installer by architecture, or use the universal build. Back up your configuration before installing over an existing app. If the installer reports a signature mismatch, check the original app source and your backup before uninstalling, or you may lose local data.
Available for ARM64 and ARMv7. You can use the same subscription on a phone and computer, but configure background operation, per-app routing, and VPN permission separately on Android.
For users who already have a compatible configuration source. Surfboard uses a different configuration format from Clash YAML; changing a Clash configuration’s file extension won’t make it importable. Check with your configuration provider for supported formats and protocols before downloading.
Check the minimum Android version specified by the installer. ARM64 corresponds to arm64-v8a, and ARMv7 to armeabi-v7a; universal builds also have their own compatibility requirements.
Installation permission
Android may ask you to allow your browser or file manager to install apps. After installation, you can revoke permission for that source if you no longer need it.
VPN and background operation
Typically, only one VPN app can route traffic at a time. Disconnect other VPNs before connecting, and follow your device’s instructions for allowing background activity.
iOS clients
Check the App Store for device compatibility, app details, and current release information. After installation, import a configuration and allow the app to add a VPN configuration when prompted. Installing the app doesn’t start a connection; confirm the connection status in the client.
Clash Plus
Recommended · App Store
Check the compatible iOS or iPadOS versions on the App Store listing before installing. When adding a subscription, make sure the link is complete. Don’t post subscription URLs containing personal access parameters in public forums. Before connecting, confirm that a policy group has an available proxy.
Follow the device and system requirements listed under Compatibility on the App Store page. Don’t apply installer requirements from other platforms to iPhone or iPad.
Network permission
Allow the app to add a VPN configuration when connecting for the first time. If your device is managed by an organization, check whether its policies allow these network settings.
Prepare your configuration
Have a valid subscription or supported configuration file ready. After updating a subscription, check that the policy group options and current selection are still available.
Linux clients
Run uname -m to check your system architecture, then choose a package compatible with your distribution. The GUI clients here offer AMD64 builds. For ARM routers or headless servers, see the Mihomo core below; don’t use an AMD64 desktop installer on an ARM device.
Clash Verge Rev
Recommended
AMD64 packages are available for Debian-based and RPM-based distributions. Use your distribution’s package manager to install the app and resolve dependencies. Whether desktop proxy settings are honored depends on the app; a system proxy toggle alone doesn’t mean all traffic is routed.
This page offers an AMD64 DEB installer for desktop environments that use compatible package management. If the app won’t start, launch it from a terminal to check for missing dependencies or graphical environment errors, then determine whether the issue is with the GUI or core startup.
DEB packages are for compatible Debian-based systems; RPM packages are for compatible RPM-based systems. The same package format doesn’t guarantee that every distribution release meets the dependencies.
Desktop dependencies
GUI clients need a compatible desktop environment. Let your package manager handle dependencies. If a library is missing, check the installation log instead of copying shared libraries from another system.
TUN and services
Check permissions and routing before enabling TUN or installing a service. On a remotely managed machine, keep a recovery connection available before changing the default route.
CORE / MIHOMO
Download the Mihomo core
For server, router, and self-managed service setups. Desktop and mobile users should usually choose a GUI client above. The core reads configuration and handles connections; it doesn’t include a subscription management interface.
GZ is a compressed archive, not an installable package. After extracting it, set executable permissions and configure the config directory and service manager. Before starting, use the core’s configuration test command to check syntax. A successful test does not guarantee that remote services in the subscription are reachable.
mihomo -t -f config.yaml
Configuration steps after installation
The download only installs the client. Subscription setup, proxy mode, and system traffic routing come next; checking each separately makes it easier to identify problems.
Keep your original configuration
Before switching clients, save your subscription source, original YAML, and local overrides. Automatic subscription updates may overwrite direct edits; put rules you need to keep in an override or merge mechanism supported by the new client.
Migrate only the settings you need; don’t copy the old client’s entire cache directory into the new app. Rule group names, proxy group names, and rule references must match. Mismatched names can cause configuration loading to fail.
Import your configuration and choose a mode
Import your configuration, check that policy groups have an available proxy, then test in Rule mode. Global mode helps compare traffic paths; Direct mode helps check your basic network connection. Switching modes won’t fix an expired subscription or unavailable remote service.
On desktop, check the system proxy first; on mobile, check VPN permission. Don’t run multiple proxy apps at once or change DNS, TUN, and rule order all during your first connection.
Check connections and logs
Visit a target site, then check the connection log for its domain, matched rule, and actual proxy. A working webpage doesn’t mean every app uses the proxy; some apps ignore system proxy settings, so choose a routing method based on how each app behaves.
When something goes wrong, first determine whether it’s a configuration, DNS, remote connection, or permissions issue. Note the error message and remove personal parameters from subscription URLs before sharing. Then consult the troubleshooting guide for the relevant symptoms.
First check that the installer matches your device, then troubleshoot configuration and connectivity. These answers cover client selection, architecture, and migration.
Which Clash client should I install first?
For Windows, macOS, Android, and iOS, start with Clash Plus; for Linux, consider Clash Verge Rev. Check the installer architecture first, then compare configuration import and system proxy options. If you already have a configuration, keep the original file and overrides until you confirm the new client can read them.
What’s the difference between ARM64, x64, and universal builds?
These labels describe the processor architectures supported by an installer. x64 and AMD64 usually refer to the same 64-bit architecture. ARM64 is common on phones and Apple Silicon devices, while ARMv7 is an older 32-bit ARM architecture. Universal builds may include libraries for multiple architectures and be larger; always check the client’s stated system requirements.
Why might the Apple Silicon download for macOS be an x64 file?
In the current listing, both macOS architecture links for Clash Verge Rev, FlClash, and ClashX Meta point to the same x64 file. The file itself does not change based on the link label. On Apple Silicon, check app compatibility and follow macOS prompts to use Rosetta. For a dedicated ARM64 build, see Clash Plus.
Why can’t I connect after downloading the app?
The installer provides a client, not a proxy service. Import a valid subscription or YAML configuration, select an available policy group, and enable the system proxy or another traffic-routing option. Start in Rule mode, then enable TUN if needed. See Getting Started for setup instructions.
Are discontinued clients still suitable for everyday use?
Clash for Windows and ClashX Meta are listed here as archived downloads for reference and migration. Discontinued clients may no longer receive compatibility updates or bug fixes, so choose a maintained client for a new installation. When migrating, check core-specific fields, DNS settings, and rule overrides.
Should I download a GUI client or the Mihomo core?
Desktop and mobile users generally want a GUI client, which provides configuration import, mode selection, and logs. The Mihomo core is for server and router users who manage configuration files, startup arguments, and service processes themselves. Installing the core does not provide a graphical settings interface.