Why migrate away from Clash Premium?
For years, Clash Premium was one of the most popular Clash cores. It layered TUN mode, Fake-IP DNS, rule providers, and other advanced features on top of the open-source base, making complex setups much easier to manage. In late 2023, however, original author Dreamacro announced end-of-life maintenance; the upstream repository was archived and no longer accepts pull requests or issues.
Staying on an unmaintained core has real consequences: security flaws may never be patched; OS and protocol changes steadily increase breakage; newer transports such as VLESS, TUIC, and Hysteria2 simply will not run on Clash Premium. In practice, many subscription providers are also phasing out legacy formats—Premium users increasingly see import or parse failures when adding modern feeds.
If you still run stock Clash for Windows (CFW) with a Premium core, note that the original CFW repository was also removed or archived around the same period. Continuing without migration carries avoidable risk—this guide is written to help you move to a supported stack.
What mihomo (Clash Meta) brings to the table
mihomo is the actively maintained, community-driven Clash-compatible core formerly known as Clash.Meta (Clash Meta). It has been renamed to mihomo and ships frequent releases on GitHub. Compared with frozen Clash Premium builds, you gain:
- Broad protocol coverage—Native support for VLESS, TUIC v5, Hysteria2, Reality, ShadowTLS, and other widely used stacks your subscriptions may rely on.
- Stronger DNS—DoH, DoT, DoQ, and policy-based DNS routing help reduce leaks and odd resolver behavior.
- YAML compatibility—Standard Clash YAML largely works as-is, so most configs copy over with minimal edits.
- Improved TUN—More stable virtual interfaces and clearer integration with system-wide routing—no extra vendor driver in typical setups.
- Richer rule tooling—Inline
rule-setsupport and flexible combinations of IPCIDR, domain, and process rules. - Ongoing fixes—Regular security and feature updates from an active maintainer community.
Before you start
A few minutes of preparation prevents lost configs or unexpected downtime during the switch. Note which CFW profile was active and any per-app overrides, so you can compare behavior before and after the import.
Back up your existing profiles
Locate Clash for Windows’s profile folder (commonly %APPDATA%\Clash for Windows\profiles on Windows or ~/.config/clash on macOS) and copy every .yaml and .yml file to a safe backup directory. Even when migration goes smoothly, keeping snapshots is good hygiene.
Save subscription URLs and manual nodes
From CFW’s subscription screen, copy each subscription URL you rely on. If you added servers manually, record host, port, credentials or UUID, and any transport options so you can recreate them if needed.
Capture your proxy group layout
Take screenshots or notes of custom proxy groups—especially rules that send specific sites or apps through dedicated chains. After migration, verify the same logic still behaves as intended in the new YAML.
If your provider gives you a managed subscription URL, you usually only need to paste that URL into the new client—the remote side handles format updates, and you avoid hand-editing YAML for day-to-day changes.
Step 1: Install Clash Verge Rev
Clash Verge Rev is one of the most actively maintained desktop GUIs: it bundles the mihomo core, targets Windows, macOS, and Linux, and offers a modern panel for profiles, proxies, and logs—an excellent landing spot for former Premium users.
Grab the installer for your OS from our download page. Platform notes below cover the usual friction points.
Windows
Run the downloaded .exe and follow the wizard. If Windows SmartScreen appears, choose “More info” then “Run anyway.” After install you should see the tray icon; right-click it to switch modes or open the dashboard.
On first launch, install Service mode when prompted—it elevates privileges in a controlled way, stabilizes TUN, and reduces repeated UAC prompts compared with ad-hoc admin runs.
macOS
Open the .dmg, drag the app into Applications. If Gatekeeper warns about an unidentified developer, open System Settings > Privacy & Security and approve the app. Grant Full Disk Access if TUN or certain apps fail to route; that matches how modern macOS sandboxes network tools.
Verify the bundled core
In Settings, locate Kernel version and confirm it references mihomo with a sane version string. Use the in-app update action if you need to refresh the binary— the client downloads and swaps the core for you.
Step 2: Import subscriptions and move configs
Subscription handling in Clash Verge Rev is straightforward: open the Profiles (Subscriptions) view, tap +, paste the URL, and import. The client fetches and parses the feed automatically.
Sanity-check after import
Activate the profile, switch to the Proxies tab, and confirm node counts match expectations. Matching counts usually mean the feed is already compatible; odd gaps point to format or parsing issues.
Moving hand-written YAML
If you maintain a local file instead of a remote URL, copy the backed-up .yaml into Clash Verge Rev’s profile directory (Windows: %APPDATA%\io.github.clash-verge-rev.clash-verge-rev\profiles; macOS: ~/.config/clash-verge-rev/profiles), then use Import local file from the client.
mihomo remains backward compatible with classic Clash keys—proxies, proxy-groups, and rules usually lift over intact. A few Premium-only knobs (for example certain ebpf or legacy script modes) may need syntax tweaks; consult the current mihomo docs when YAML validation complains.
Subscription converters
Legacy feeds shipped as plain node lists or third-party formats may fail direct import. Use a converter (built into Verge Rev or a trusted community tool) to emit standard Clash YAML. Pick a Clash Meta or mihomo template so generated files expose Meta-specific features where appropriate.
For deeper field-by-field notes, see our documentation hub alongside upstream mihomo references.
Step 3: Rules, providers, and proxy groups
Most routing logic ports cleanly from Premium to mihomo. Pay extra attention if you relied on custom rule providers or experimental scripting.
Rule provider compatibility
The rule-providers block remains supported; existing remote URLs often work unchanged. Double-check each provider’s behavior (domain, ipcidr, classical) matches the file contents—mislabeled behaviors silently drop matches.
Tuning proxy groups
mihomo extends url-test with knobs like tolerance and lazy, and lets you tune health-check intervals on fallback groups. Add them when you want smarter auto-selection after migration.
Advanced users who depended on legacy script-based routing should plan a rewrite: upstream removed several script paths. Prefer RULE-SET, supported script hooks where available, or Sub-Rule features to express the same policy without unmaintained Lua glue.
Curated rule sets
After you switch cores, consider community-maintained mihomo-oriented rule bundles for direct (DIRECT) and block (REJECT) lists—they track faster than hand-rolled snippets and reduce long-term maintenance.
Common issues and fixes
Most migration pain falls into a handful of patterns. When something still looks off, copy the relevant lines from Clash Verge Rev’s log view—timestamped errors make it much easier to confirm whether the issue is DNS, rules, or outbound TLS.
| Symptom | Likely cause | What to do |
|---|---|---|
| No proxies after import | Feed is not native Clash YAML (for example a bare Base64 node list) | Convert to Clash YAML with a Meta/mihomo profile, then re-import |
| TUN fails to start | Missing admin/service installation | Run elevated once or enable service mode from settings |
| DNS looks wrong or leaks | Resolver chain fights the OS defaults | Pin dns.nameserver entries and enable fake-ip where appropriate |
| Specific apps bypass the proxy | Non-standard ports, UDP-heavy stacks, or split tunneling | Use TUN and/or add PROCESS-NAME rules for those binaries |
| Rule downloads fail | Remote URL dead or unreachable from your network | Mirror the file, or switch the provider to a file: local path |
| YAML parse errors | Premium-only keys remain in the file | Review ebpf, script, and similar blocks against current mihomo syntax |
After migration: optional tuning
Once baseline connectivity works, you can adopt mihomo features that improve privacy and ergonomics.
Fake-IP DNS hardening
Fake-IP returns synthetic addresses (often in 198.18.0.0/16) for queried names, keeps the real mapping internally, and hands domain information to outbound proxies—reducing DNS leakage and coarse IP-only blocking surprises.
Example dns stanza:
dns:
enable: true
enhanced-mode: fake-ip
fake-ip-range: 198.18.0.1/16
fake-ip-filter:
- '*.lan'
- 'localhost.ptlogin2.qq.com'
nameserver:
- https://doh.pub/dns-query
- https://dns.alidns.com/dns-query
fallback:
- https://1.1.1.1/dns-query
- https://8.8.8.8/dns-query
fallback-filter:
geoip: true
geoip-code: CN
System-wide TUN
TUN captures egress without per-app SOCKS hooks. Enable a tun section such as:
tun:
enable: true
stack: system
auto-route: true
auto-detect-interface: true
dns-hijack:
- any:53
TUN still requires the service or administrator privileges described earlier. stack: system is the default sweet spot; if you hit throughput limits on exotic NICs, experiment with gvisor per upstream guidance.
Sub-rules for cleaner configs
Sub-Rule sections let you attach bespoke routing to specific proxy groups—handy for corporate subnets or gaming VLANs—without turning the global rules array into an unreadable wall.
Why move now
Clash Premium has been unmaintained for multiple release cycles while mihomo matured: broader rules, richer clients, and better docs. Staying on frozen bits trades convenience for avoidable risk; upgrading buys you modern protocols and timely fixes.
The process is usually faster than it sounds: subscription users often finish in about five minutes by re-adding URLs; power users editing raw YAML typically land under half an hour once incompatible keys are trimmed.
When you want a guided install with up-to-date mihomo, visual subscription management, and less manual YAML, start from our download page—it is the supported path for fetching builds tuned to this documentation set. → Download Clash for free and experience the difference.