After launching Clash for the first time, seeing the interface open does not mean the proxy is already handling your traffic. A complete connection has at least four separate stages: the configuration loads successfully, a node is selected in the proxy group, the operating system or application sends traffic to Clash, and the target connection follows the rules through the selected exit. If any stage is incomplete, you may see a node that appears available while websites still connect directly, or a system proxy that is enabled while every request times out.

Menu names may vary slightly between clients. Clients based on the Clash Meta (mihomo) core usually separate configuration, proxies, connections, logs, the system proxy, and TUN into different pages; older Clash clients follow similar logic. During first-time setup, work through the data flow in order rather than changing DNS, rule mode, ports, and TUN settings at the same time. Establish one verifiable basic connection first, then troubleshoot compatibility with specific applications.

1. Check the client state before connecting

After starting the client, first check that the core is running normally. Common status labels include Running, Started, Core Running, and “Service running.” If the interface loads but the core shows Stopped, Error, or keeps restarting, subscription imports and node tests may not produce valid results. Open the logs first and check for configuration parsing failures, ports already in use, or insufficient permissions.

Also verify that the system date, time, and time zone are correct. HTTPS connections rely on certificate validity periods, so a significant clock error can cause subscription updates and node handshakes to fail. The underlying network must also reach the subscription service: temporarily disable the system proxy and use a browser to confirm that ordinary websites open. If the basic network connection is unavailable, Clash cannot replace the local Wi-Fi, Ethernet, or mobile network needed for connectivity.

Check Expected result First action when abnormal
Core status Keeps running without repeatedly exiting Review startup logs and configuration errors
Local network Ordinary websites open with the proxy disabled Check the gateway, captive portal, and DNS
System time Date, time, and time zone are accurate Enable automatic time synchronization
Listening ports The HTTP, SOCKS, or mixed port is listening successfully Stop the old process occupying the port

2. Import and enable the subscription profile

Clash uses YAML configuration to describe proxy nodes, proxy groups, rules, DNS, and runtime settings. A subscription link is usually an update URL provided by a configuration service. The client requests that URL and saves the returned content as a local configuration. When copying the link, keep all query parameters intact. Do not manually remove the token, device parameters, or encoded content after the question mark, and do not mistake the subscription management page URL for the subscription URL.

  1. Open the “Configuration,” “Profiles,” or “Subscriptions” page.
  2. Choose import from URL and paste the complete subscription URL into the input field.
  3. Start the download or import and wait for the client to report that the update is complete.
  4. In the configuration list, select the newly imported item so it becomes the active profile.
  5. Return to the proxy page and confirm that the proxy groups and their nodes are visible.

“Download successful” and “configuration enabled” are two separate states. Some clients add the updated subscription to the list without switching to it automatically. If the proxy page still shows the old nodes, return to the configuration page and check the selection mark, active status, or last-updated time. If the client reports a YAML parsing error after the profile is enabled, record the exact line number and field. Repeatedly clicking Update will not fix the same invalid content.

If the subscription returns empty content, an HTML page, or an unsupported format, the client may report invalid config, unexpected token, proxy group not found, or a missing proxies field. These issues occur while loading the configuration and are unrelated to node speed. You can open the subscription URL in a browser to inspect the service response, but a subscription URL containing access credentials should never be shared in chat groups, screenshots, or public logs.

3. Choose a proxy group and node

Once the configuration loads correctly, open the “Proxies” page. This is usually not a simple list of nodes, but a collection of proxy groups. Common group types include select for manual choice, url-test for automatic latency testing, fallback for failover, and load-balance for distributing traffic. Rules refer to proxy group names, and the group then determines which node is used. Selecting a node in an unrelated group may therefore have no effect on the actual exit.

First find the group handling the main traffic. It may be called “Node Select,” “Proxy,” “PROXY,” or a custom name chosen by the configuration provider. Open that group and choose a node with a clear region and a testable status. If the selected entry in the main group is another proxy group, open the next level to find the final node. Chained groups are valid, but during first-time troubleshooting you must know which proxy entry the chain ultimately selects.

The selected mode also affects the result:

  • Rule mode (Rule): Matches rules from top to bottom. Different domains may use the proxy, connect directly, or be rejected, making it suitable as the everyday default.
  • Global mode (Global): Most intercepted connections are sent to the global group. It is useful for temporarily confirming the node’s exit, but it does not mean every system connection is necessarily intercepted.
  • Direct mode (Direct): Traffic received by Clash connects directly to its destination without using a proxy node, so it cannot verify a remote proxy exit.

For the first verification, start with Rule mode. If you cannot tell which rule a test website matched, switch briefly to Global mode and compare the result, then return to Rule mode. The mode determines how Clash handles a connection after receiving it; the system proxy or TUN determines whether the connection reaches Clash at all. These settings are not interchangeable.

4. Understand latency tests correctly

The “Test” button beside a node usually performs an HTTP probe: the core accesses a configured test URL through that node and records the time needed to establish the connection and receive a response. A result of 80 ms, 200 ms, or Timeout describes only that probe. It is not the same as download bandwidth and cannot fully represent video stability, peak-hour congestion, packet loss, or a target website’s restrictions on the exit address.

When testing, run a full latency test for a proxy group first, then choose a lower-latency node with consistently stable results from the available nodes in the same region. Do not decide based on a single minimum value. A node fluctuating around 90, 95, and 100 ms is usually more stable for interactive use than one swinging sharply between 40 and 700 ms. Greater physical distance between regions naturally increases baseline latency.

Timeout means that the expected response was not received within the test period. Possible causes include an offline node, a blocked route, an unreachable test URL, a failed TLS handshake, or local network instability. If every node times out at once, first suspect the local network, subscription configuration, core status, or test URL rather than declaring each node broken. If only one node consistently times out, switching to another node in the same group is more effective.

5. Enable the system proxy or TUN

After choosing a node, application traffic must be sent into Clash. The most common method is to enable the “system proxy.” The client points the operating system’s HTTP and HTTPS proxy settings to a local listening address, commonly 127.0.0.1 plus a local port. Browsers and desktop applications that follow system proxy settings send requests to Clash, which then uses the rules to decide whether to connect directly or through a proxy.

The system proxy does not cover every program. Some games, command-line tools, background services, and applications with their own network stacks ignore the operating system proxy; UDP traffic may also bypass a standard HTTP proxy. For these cases, consider TUN mode. TUN creates a virtual network interface through which the core receives a broader range of IP traffic. It usually requires administrator privileges and may be affected by firewalls, antivirus software, other VPNs, or virtual network adapters.

For the first connection, test the system proxy before enabling TUN because the path is simpler and has fewer failure points. Once the browser works through the proxy, enable TUN only if needed. Do not run multiple clients that modify the system proxy or routing table at the same time, as one program may overwrite another’s settings. Before switching clients, disable the old client’s system proxy and TUN, then exit its background process.

When using the system proxy, check that the operating system’s proxy address and port match the client’s current listening port. mixed-port, port, and socks-port serve different purposes; when entering a port manually, do not use a SOCKS port as an HTTP port. Letting the client manage the system proxy is usually more reliable and keeps the setting synchronized when the port changes.

6. Verify that the proxy is actually working

Do not rely on the switch color alone. Check the exit result, connection records, and matched rule together. Keep a known node selected, enable the system proxy, and open a private browser window to visit a service that displays public exit information. Record the exit region or address, then disable the system proxy, refresh, and compare. If the results change as expected, the browser traffic has entered the proxy path.

Next, open the client’s “Connections” page and visit a new website. Normally you will see a new domain, destination address, connection type, traffic totals, matched rule, and proxy chain. The chain may show “target policy group → selected node” or DIRECT. DIRECT is not necessarily an error: in Rule mode, local networks, certain regional websites, or domains specified by the configuration may intentionally connect directly.

Logs provide additional evidence, but read them in chronological order. A browser request typically passes through DNS lookup, rule matching, TCP or UDP connection setup, node connection, and target access. When the log shows match, proxy, DIRECT, or a specific group name, check that it corresponds to the domain you just visited. A timeout in an old log does not prove that the current request is still failing; clear the log before testing or note the exact test start time.

Also test domains and direct IP connections separately. If a website fails to open and no new connection entry appears, the traffic may not have reached Clash. If an entry appears but DNS fails, check the DNS module, network reachability, and mode settings. If the connection reaches the correct node but still times out, the issue is more likely with the node route or target service. Identifying the failing stage is faster than switching through a dozen nodes.

A repeatable verification workflow

  1. Choose a node that responds to latency tests.
  2. Confirm that the current mode is Rule or Global, not Direct.
  3. Enable the system proxy and temporarily keep TUN disabled.
  4. Clear the connection records and logs, or note the current time.
  5. Use a new browser window to visit an exit-check page and an ordinary HTTPS website.
  6. Check the domain, rule, policy group, and final node in the connection records.
  7. Disable the system proxy and test again, confirming that the exit and connection records change.

7. Recognize status messages and common issues

Connected or Running: Usually indicates only that the core, service, or a particular connection is running. It does not guarantee that the target website is reachable or that the current exit uses a proxy. Verify it with the connection records.

Timeout: The probe or connection did not complete within the time limit. First determine whether all nodes or only one node is affected, then distinguish between the DNS, node-handshake, and target-response stages. If all nodes time out together, check the local network and core first.

Connection refused: The destination actively rejected the connection. If the rejected address is a local port on 127.0.0.1, the usual causes are that the core is not listening or the system proxy port is incorrect. If it occurs at a remote node, the node service may not be running on the specified port.

DNS lookup failed: Domain resolution did not return a usable result. Check for other DNS tools on the device, whether TUN DNS interception is working, and whether the configured nameserver is reachable. Do not layer multiple encrypted DNS services and custom hosts rules onto a connection that has not yet been established.

TLS handshake failed: Possible causes include the device clock, certificate validation, SNI, an interrupted route, or the remote service status. Correct the time first, then compare another node in the same group. If all nodes fail only for one destination, consider restrictions imposed by that service instead of changing the entire configuration.

Websites open but an application cannot connect: Browsers generally follow the system proxy, while the application may ignore it or use UDP. Check the Connections page to see whether requests from the application appear. If there are no records at all, then consider TUN, an in-app proxy, or per-process routing.

8. First-connection checklist

  • The client core keeps running, with no configuration parsing errors in the logs.
  • The subscription has been downloaded and set as the active profile.
  • The proxy page shows the policy groups and nodes.
  • The main policy group has a real node selected, not an invalid entry.
  • The node responds to latency tests, with no unusual swings in consecutive results.
  • The current mode is not Direct, and Rule mode shows the matched policy.
  • The system proxy is enabled, and its port matches the client’s listening port.
  • A corresponding new record appears on the Connections page when browsing.
  • The record shows the expected rule, policy group, and final node.
  • The exit-check result differs as expected from the result with the system proxy disabled.

Once these checks are complete, the basic first-connection path is established. If only a specific program cannot connect, narrow the investigation to whether the application follows the system proxy, uses UDP, requires TUN, or matches a particular rule for its domain. If every application fails at once, return to the four fundamentals: configuration, core, listening ports, and the local network.

Reliable use is not about constantly chasing the lowest latency. It depends on a valid configuration, reachable nodes, a clear traffic entry point, and observable rule results. If the connection records can answer “Did the request enter Clash, which rule did it match, and which node did it ultimately use?”, most first-connection issues can be located at a specific stage.