· Client Choice · 12 min read
What to Do After Clash for Windows Was Discontinued: Switch to Clash Verge Rev or FlClash
Move from a discontinued Clash client: back up and import subscriptions and configs in Clash Verge Rev or FlClash, then match system proxy settings to the correct ports.
Move your subscription first, then restore local settings
Clash for Windows, usually called CFW, is a graphical client. A subscription provides nodes and rules, the core establishes connections, and the client imports configs, switches proxy groups, and configures the system proxy. These are three separate components. CFW being discontinued does not necessarily mean your subscription is invalid, and switching clients alone is no reason to buy a new service.
A safe migration order is: keep a copy of the old config, install the new client, import the subscription, verify the connection, then restore custom rules and TUN. TUN routes traffic through a virtual network interface and involves more network settings than the system proxy. Leave it off during your first migration to narrow troubleshooting down to the config and ports.
Choosing Between Clash Verge Rev and FlClash
Clash Verge Rev and FlClash are graphical clients that use the mihomo core. mihomo is the core name carried forward by the Clash Meta project. It supports Clash-style YAML configs and has its own extensions. Here, “compatible” means the config formats are similar; it does not mean you can copy the old client's data folder over the new one.
| Comparison | Clash Verge Rev | FlClash |
|---|---|---|
| Best for | Managing configs on Windows, macOS, and Linux desktops | A similar workflow across desktop and Android devices |
| Migrating from CFW | A good choice for restoring subscriptions, rules, and proxy settings on a computer | A good choice for managing subscriptions on both a computer and a phone |
| Settings to configure again | System proxy, service mode, TUN, overrides, and local ports | System proxy or VPN permissions, TUN, overrides, and local ports |
| What you can't carry over as-is | CFW's interface database and client-specific preprocessing scripts | CFW's interface database and client-specific preprocessing scripts |
If you're migrating only a Windows PC, start with Clash Verge Rev. If you also want to use the same subscription on an Android phone, consider FlClash. Choose an installer that matches your device architecture—for example, don't confuse Windows x64 with ARM64. Check the download page and each project's release notes for current platform support and installation requirements.
Don't judge clients by node latency numbers alone. Results for the same node can vary over time. To verify a migration, check that the subscription updates, rules match as expected, the sites you need are reachable, and your apps use the intended proxy endpoint.
Back Up Before You Migrate: Subscriptions, YAML, and Local Changes
Record where your subscription came from, not just the node names
- In CFW, open Profiles, check the name of the active config, and note whether it's a remote subscription or a local file.
- Retrieve a Clash- or mihomo-format subscription link from your provider's account page. You can also copy it from the old client if it offers that option, but make sure you copy the original subscription URL.
- In CFW, open the config directory from Settings → General → Home Directory. The label may vary slightly by version. Quit CFW, then copy the entire directory to a local backup location.
- Also note the current mixed, HTTP, and SOCKS ports; proxy mode; selected proxy group; and whether TUN is enabled.
A common user directory is %USERPROFILE%\.config\clash, but portable versions and custom installations may use a different location. Check the actual path shown by the old client. Back up the entire directory for reference; when importing into the new client, select only the subscription or config files you need rather than overwriting its entire data folder.
List your custom changes separately
Changes outside the remote subscription are the easiest to lose during migration. Check whether you edited rules, dns, hosts, proxy-groups, or tun, or used CFW Parsers to preprocess a config or run a script. Write down the purpose of each change, such as “bypass the proxy for company domains” or “route the download app through a specific proxy group.”
CFW preprocessing is a client-side feature, so don't assume another client will run it the same way. Recreate it using the new client's override or merge features where possible. For scripts, first check the input and output formats the new client supports. Don't paste in an old script and enable everything without checking it.
Import Your Subscription into Clash Verge Rev
The steps below refer to the Chinese-language interface; buttons may change between versions. The core workflow is always “add subscription, update, enable”—saving the URL to a list isn't enough.
- Quit CFW, open Clash Verge Rev, then paste your remote subscription URL under “Subscriptions” → “Import”. Some versions have a URL field directly on the subscriptions page.
- Wait for the download to finish and check that a config card appears. Select or enable it, then open the “Proxies” page to confirm that proxy groups and nodes are listed.
- Start with Rule mode. It uses the config's rules to decide whether traffic goes direct or through a proxy. Global mode sends connections that would normally be routed by rules to the global proxy group.
- Check the actual listening ports under “Settings”, then enable the system proxy. If you see a port-in-use error, first check whether the old client is still running in the background.
- Visit one site that should connect directly and another that requires a proxy. Check the connection list to confirm which rule and policy matched each one.
If you only have a local YAML file, use the local file import option on the subscriptions page. YAML is a config format where indentation defines structure; don't edit it in a rich-text editor. A standalone config typically needs proxies or proxy providers, proxy groups, and rules. A file containing only a few rules is not a complete subscription.
If the import succeeds but no nodes appear, check whether the downloaded content is an account sign-in page, an error page, or a format intended for another client. A subscription URL opening in a browser doesn't mean it returns a Clash config. Don't submit a private subscription to an untrusted online converter.
Import Your Subscription into FlClash
- Open the “Profiles” page, tap the add option, and choose URL import. If you only have a backup file, choose file import instead.
- Enter a recognizable config name, save it, update the config, and set it as the active profile.
- Open the “Proxies” page, select a node for any proxy groups that require manual selection, then start the proxy connection.
- On desktop, check the system proxy and listening ports. The first time you start FlClash on Android, it will usually request permission to create a system VPN connection. Approve it to route traffic through the virtual interface.
- Return to the profiles page and run an update manually to confirm the subscription can refresh—not just work from the local cache.
Android's VPN routing and Windows' system proxy are different settings, so don't look for a button that exactly matches CFW on your phone. Android usually allows only one app to use the system VPN at a time. Existing VPNs, packet capture apps, and local filtering tools may conflict.
Using the same subscription URL on a computer and phone doesn't mean they share the selected node, custom rules, or local ports. Those settings may be stored separately on each device. If your provider limits the number of devices connected at once, check your plan before connecting both.
Ports and System Proxy: Match Each Setting, Don't Guess
The system proxy tells apps that honor system proxy settings to send requests to an address and port on your device. It doesn't automatically route traffic from every app, and it won't fix an old port hardcoded in a browser extension, terminal, or download tool.
| Setting | What it does | What to do during migration |
|---|---|---|
| HTTP port | Accepts HTTP proxy requests and CONNECT tunnels | Change the app's HTTP proxy address to the port the new client actually listens on |
| SOCKS port | Accepts SOCKS proxy connections | Check apps that use SOCKS5 separately; changing the system proxy alone isn't enough |
| Mixed port | Accepts both HTTP and SOCKS proxy connections on the same port | Once enabled, let each app connect to this port using its supported protocol |
| Controller API | Lets the client or dashboard manage the core | Not a proxy port for web traffic; don't enter it in browser proxy settings |
For example, an old app might be set to 127.0.0.1:7890 while the new client listens on 127.0.0.1:7897. The app will keep sending requests to the old endpoint. Change the app's address, or—after confirming there are no conflicts—set the new client to use 7890. These numbers are examples for troubleshooting, not default values for every version.
The following are examples of settings, not a complete config you can use to connect. If the graphical client generates its own runtime config, make changes in its settings to avoid having them overwritten on the next launch.
mixed-port: 7890
allow-lan: false
mode: rule
log-level: info
allow-lan: false means devices on your local network can't use this proxy endpoint, which is suitable for migration tests on your own machine. Don't enable LAN access just to connect your local browser. First, troubleshoot using the loopback address 127.0.0.1.
Verify the endpoint with a direct request
In Windows PowerShell, call curl.exe explicitly to avoid confusion with an alias of the same name in older environments. Replace the port below with your actual mixed or HTTP port. This test doesn't depend on whether your browser reads the system proxy settings.
curl.exe --proxy http://127.0.0.1:7890 --head --max-time 15 https://example.com/
If the connection is refused immediately, first check whether the core is running and whether the port is correct. If the proxy connection succeeds but the request times out, check the node, DNS, and rules. Getting an HTTP response only confirms that this request worked; it doesn't mean every app has been migrated.
Restore Rules and TUN One Change at a Time
Make sure the original subscription config works before adding custom rules. Clash-style rules are generally matched from top to bottom, and the first match determines the policy. To bypass the proxy for company domains, place those rules above any broad rules that could match first; don't simply append them after the fallback MATCH.
rules:
- DOMAIN-SUFFIX,example.org,DIRECT
- MATCH,PROXY
This example only illustrates rule order: example.org and its subdomains connect directly, while everything else uses the policy named PROXY. Your config must define that policy; if the subscription uses a different proxy group name, use the exact name. Don't replace the subscription's entire rule list with these two lines, or you'll remove its existing routing rules.
Enable TUN only after confirming the system proxy works
- Establish a baseline: With the system proxy on and TUN off, check whether your browser and target apps work.
- Grant permissions as prompted: TUN on Windows may require administrator access or a client service. Install and start only the services required by the current client's instructions.
- Check for conflicts: Existing VPNs, virtual network adapters, company security software, or other proxy apps may affect routing and DNS.
- Test each item separately: After enabling TUN, test websites, terminal apps, local network resources, and company intranet access. If one fails, turn TUN off and compare. Don't change DNS, rules, and routes all at once.
Don't copy the old CFW TUN settings over wholesale. Core versions, network adapter implementations, and how clients generate configs may differ. For DNS hijacking, automatic routes, and excluded subnets in particular, use the settings currently supported by the new client.
Common Migration Problems and What to Check
Subscription update fails, but the old config still works
First check whether the link has expired, your account requires a new subscription URL, or the address contains extra spaces. Then check whether the update request uses a direct connection or goes through the proxy. If the current proxy is broken, relying on it to update the subscription can create a loop. Keep the working cache, check the HTTP status and connection details in the error, and don't delete all your configs in a panic.
Nodes appear, but websites won't load in the browser
Check in this order: core status → local listening port → system proxy → selected proxy group → connection logs. If an explicit proxy request succeeds but the browser fails, check the browser's proxy extension and system proxy settings. If only one domain fails, check the matched rule, policy, and DNS result.
Network problems after quitting the client
Open Windows “Settings” → “Network & Internet” → “Proxy” and check whether “Use a proxy server” still points to a local port that is no longer listening. If you've quit all proxy clients, turn off this manual proxy and test again. Company devices may use an organization-managed proxy; don't remove its address or automatic configuration script without permission.
Config errors after restoring rules
First undo the last override and confirm that the original subscription still starts. Then check YAML indentation, policy names, and duplicate keys. Don't mix spaces and tabs. The line number in an error may refer to the runtime config merged by the client rather than the original subscription file, so check both the runtime config and merge logs.
Migration Checklist
- The new client can update the subscription manually, and the active config is clearly identified.
- You've tested both direct and proxied sites, and the policies shown in the connection list match your expectations.
- Your browser, terminal, and download tools no longer point to the old port.
- You've tested custom rules separately, and they remain in place after a subscription update.
- If you need TUN, you've tested access to your intranet; otherwise, leave it off.
- After restarting your computer, only one client takes over traffic, and the system proxy matches the active listening port.
Once everything checks out, remove the old client's startup entry and program files you no longer need. Store backups containing subscription tokens somewhere secure, and delete them when they're no longer needed. The goal is to reconnect the subscription, rules, and network endpoints one by one—not to copy the old data folder wholesale into another app.