FAQ · Troubleshooting
Clash FAQs
and Troubleshooting
Organized around subscriptions, configurations, system proxy settings, TUN, DNS, and node connectivity. Each answer starts with the evidence to check, followed by an actionable troubleshooting sequence.
01 · Fundamentals
Fundamentals
First distinguish between the client interface, proxy core, configuration file, and system network settings to avoid repeatedly changing the wrong layer.
How are Clash, the Mihomo core, and Clash clients related?
Mihomo is the core responsible for proxy protocols, rule matching, DNS, and connection forwarding. Clients such as Clash Plus, Clash Verge Rev, and FlClash provide interfaces for importing configurations, switching policies, and controlling the system proxy. When troubleshooting, distinguish interface issues, configuration errors, and core connection errors; only the latter two usually appear in runtime logs.
What is the difference between a Clash configuration file and a subscription URL?
A configuration file is the YAML content the client actually loads, typically containing proxy nodes, policy groups, rules, DNS, and port fields. A subscription URL is the address used to fetch that file; updating a subscription downloads and replaces the associated Profile. Before editing a local copy generated from a subscription, check whether updates will overwrite your changes. Rules that must persist are better kept in an override or merged configuration.
When should you use Rule, Global, or Direct mode?
Rule mode matches traffic from top to bottom against the rules in the configuration and is best for everyday use. Global mode sends traffic through one proxy policy and is useful for quickly checking whether a node works. Direct mode bypasses the proxy and helps determine whether Clash is causing the problem. During troubleshooting, switch between Global and Direct mode to identify whether the issue is with the node, rules, or local network.
What is the difference between the system proxy and TUN mode?
The system proxy only handles apps that follow the operating system’s proxy settings. Browsers and most desktop apps usually work, but some games, command-line tools, and store apps may bypass it. TUN mode uses a virtual network interface to capture a broader range of traffic and requires additional system permissions. Start with the system proxy; enable TUN only after confirming that an app is bypassing it, then check routing and DNS settings.
How should you choose between Fake-IP and Redir-Host mode?
Fake-IP returns reserved addresses for domains while Clash maintains the domain mapping, offering efficient rule matching for most standard configurations. Redir-Host returns real DNS results and is more compatible with apps that rely on LAN discovery, special domain validation, or fixed resolutions. If printers, casting, corporate intranets, or some games behave unexpectedly, first add the relevant domains to fake-ip-filter instead of changing the entire DNS mode.
02 · Setup
Setup
Setup issues usually come from system architecture, configuration content, permission state, or remnants of an older client.
What should you do when macOS says the app cannot be opened or the developer cannot be verified?
First confirm the package source and supported architecture. In Finder’s Applications folder, Control-click the client and choose Open. If macOS still blocks it, open System Settings, go to Privacy & Security, and choose Open Anyway under the relevant warning. On Apple Silicon, prefer an arm64 or Apple Silicon build; on Intel, choose an x64 build to avoid immediate exits caused by an architecture mismatch.
What should you do if importing a subscription fails or it is reported as invalid?
Open the subscription URL in a browser and confirm that the server returns a YAML configuration rather than a sign-in page, error page, or empty response. Then check whether the URL was truncated, the account has expired, the traffic quota is exhausted, or the subscription service restricts access from your network. If the browser works but the client fails, check whether the client is incorrectly routing subscription updates through the current proxy, and try fetching it again with the system proxy temporarily disabled.
What should you do if macOS repeatedly requests permission or fails to create the interface when enabling TUN?
TUN requires a network extension or helper service to be installed and enabled. Quit the client, then open System Settings and check Privacy & Security and Login Items & Extensions to ensure the relevant components are allowed. Restart the client afterward. If it still fails after upgrading macOS or moving the client, remove the old service inside the client and reinstall it. Do not run two proxy clients that create TUN interfaces at the same time, as their routes and extension states may overwrite each other.
How do you fix Windows Store apps that cannot use the proxy because of UWP loopback restrictions?
Some UWP apps cannot access a local loopback proxy by default, so browsers work while Microsoft Store and similar apps fail to connect. Use the client’s UWP Loopback tool to select the target apps, or run the CheckNetIsolation LoopbackExempt command in an elevated terminal with the app package family name. Restart the target app afterward. If TUN mode is enabled, first check whether TUN has already resolved the issue.
How can you keep your configuration when upgrading or switching Clash clients?
Before upgrading, record the subscription URL, current Profile, policy group selections, override rules, and custom DNS settings, then export a backup supported by the client. Data directories and field compatibility differ between clients, so replacing the entire old data directory is not recommended. A safer process is to install the new client, import the subscription again, migrate overrides item by item, verify connectivity, and then remove the old client.
03 · Operation
Usage Tips
Use connection records, configuration fields, and repeatable tests to determine the actual traffic path.
How can you tell which Clash rule matched a website?
Open the client’s connection records or log page, revisit the target website, and check the domain, destination address, rule type, and final policy group. Rules are matched from top to bottom in configuration order, so broad DOMAIN-SUFFIX or GEO rules may intercept a request first. If the result is unexpected, move the more specific DOMAIN rule above the broad rule and verify the override order again after updating the subscription.
Why is browsing still slow even when the latency test shows a low value?
A client latency test usually measures the time for one HTTP request to a specified test URL. It does not fully reflect packet loss, peak-hour congestion, line bandwidth, the target website’s location, or connection reuse. Evaluate node quality using repeated-test stability, actual download speed, and the target site’s response as well. A node with consistently higher latency may feel faster than one with a lower number but frequent timeouts.
How should mixed-port, port, and socks-port be configured?
mixed-port accepts both HTTP and SOCKS5 connections and is useful when you want to maintain only one local port. port provides HTTP proxy access only, while socks-port provides SOCKS5 access only. When an app uses a manually configured proxy, its protocol and port must match. If the client is already using mixed-port 7890, no other program can listen on the same address and port. After changing it, update the system proxy or the app’s proxy settings as well.
How can you check Clash for DNS leaks or an incorrect resolution path?
First confirm that dns.enable is enabled, then check whether fields such as nameserver, proxy-server-nameserver, and fallback match the syntax supported by the current core. Query the same domain in both Direct and proxied states, comparing the system result, DNS requests in the Clash logs, and the actual connection target. An app’s own encrypted DNS may bypass both the system and Clash DNS; disable it in the app or explicitly capture it with TUN and rules.
How should multiple subscriptions and local configurations be managed?
Give each Profile a name that identifies its source and purpose, and keep its update schedule and override configuration separate. Subscription content is best updated by the server, while local rules belong in a separate file or the client’s Merge or Override feature. After switching Profiles, review the policy groups again because different configurations may use the same policy names with different nodes. Before deleting an old configuration, confirm that no automation script or system service still references it.
04 · Troubleshooting
Troubleshooting
Start from the smallest recoverable state and isolate the issue in this order: network, ports, nodes, rules, DNS, and routing.
What should you do if the system proxy is enabled but browsers and apps still connect directly?
First confirm in the system network settings that the proxy address is 127.0.0.1 and that its port matches Clash’s current listening port. Then check whether the browser uses a separate proxy extension, whether the app ignores the system proxy, and whether an automatic proxy script overrides the manual settings. On macOS, switch the current network service once; on Windows, turn the proxy setting off and on again. If traffic still goes direct, use the connection records to confirm whether requests are reaching Clash.
How do you troubleshoot Clash showing Connected while every webpage fails to open?
Check local networking, port listening, node availability, rule matching, and DNS in that order. Disable the proxy first to confirm that the network itself works, then switch to Global mode and select a node that passed testing. If Global mode also fails, inspect the logs for timeout, connection refused, or DNS errors. If Global works but Rule mode fails, focus on MATCH, GEOIP, and the selected policy group.
What should you check when every node test shows a timeout?
When every node times out at once, the problem is usually not a single failed node. Confirm that the subscription has updated and that node fields are complete, then check the local clock, network firewall, proxy-chain settings, and whether the current network restricts these connections. Disable TUN and the system proxy, then test again to rule out a routing loop. If only one protocol fails across all nodes, check whether the core version supports that protocol and its fields instead of repeatedly switching among the same nodes.
What should you do if the network disconnects or LAN devices become unreachable after enabling TUN?
Disable TUN first and confirm that connectivity returns. Then check auto-route, strict-route, DNS hijacking, and LAN bypass rules. Home network ranges usually need to remain direct, such as 192.168.0.0/16, 10.0.0.0/8, and 172.16.0.0/12. If virtual machines, VPNs, or container tools are also running, inspect the network adapters they created and their route priorities. Enabling features one at a time makes conflicts easier to isolate than changing several fields at once.
How do you fix a port-in-use error when starting Clash?
Fully quit other proxy clients and confirm that no old Clash core process remains. On macOS and Linux, use lsof -i to find port usage; on Windows, use netstat -ano to identify listening ports and process IDs. Once you know what owns the port, terminate the old process or change mixed-port, socks-port, redir-port, and similar fields to unused ports. After changing a port, update the system proxy and any apps with manual proxy settings.