How to Use Clash for Android: Add Subscriptions and Switch Nodes

Learn the essential Clash for Android workflow after installation. Follow clear steps to import a subscription, update your profile, select a proxy node, change modes, and verify that traffic is going through the selected server.

Understand the Clash for Android workflow

Clash for Android does not connect to a proxy server simply because the application has been installed. A complete setup has several separate steps: import a subscription or local configuration, download and parse the profile, activate that profile, select a policy or node, choose a traffic mode, and finally start the Android VPN service or system proxy integration. Missing any one of these steps can make the interface look ready while applications still use the normal network.

The exact labels depend on the client build. Older Clash for Android releases may use pages such as Profiles, Proxy, and Settings. A newer client based on the mihomo core may use Profiles, Proxies, General, or localized equivalents. The underlying concepts are the same: a profile contains nodes and rules, a policy group decides which outbound to use, and the Android VPN service captures traffic from applications that do not understand HTTP or SOCKS proxy settings.

Stage What to do What success looks like
Profile import Add the provider’s subscription URL or import a local YAML file A profile appears in the configuration list
Profile update Download the newest configuration from the provider The profile shows a recent update time and node count
Profile activation Tap the profile or choose “Use” / “Set as active” The proxy page displays the groups from that profile
Node selection Choose a node inside the main policy group The selected node is marked, highlighted, or shown as active
Traffic start Enable the VPN, service, or connection switch Android shows a VPN key or shield indicator

Add a subscription profile

Before opening the client, obtain the complete subscription URL from your service provider. It normally begins with https://, although some providers also offer a converted or redirected URL. Use the provider’s original Clash or mihomo-compatible link whenever possible. A web dashboard URL, login page URL, or single-node share link is not necessarily a complete Clash subscription.

Open the profile page

  1. Open Clash for Android and enter the Profiles or Configuration page.
  2. Tap the add button, usually shown as a plus icon or an option such as New, Add from URL, or Import.
  3. Select the URL method instead of the local-file method.
  4. Paste the complete subscription address without spaces or line breaks.
  5. Give the profile a short name, such as Daily Rules or Home Subscription.
  6. Confirm the import and wait for the client to download and parse the response.

Some Android builds provide an optional update interval when a URL profile is created. A daily interval, represented by 1440 minutes in some clients, is a reasonable starting point. Do not set a very short interval such as every five or ten minutes. Providers may impose request limits, and frequent updates do not make the nodes faster or more stable.

After importing, check whether the profile contains recognizable sections such as proxies, proxy-groups, and rules. You do not need to inspect the entire YAML immediately, but a profile with zero nodes, an empty group list, or an HTML error page is not ready for use. If the client reports a parsing error, the server may have returned an expired subscription message rather than YAML.

Import a local YAML file when necessary

A local configuration can be useful for testing or for a hand-written setup. Download the YAML file to the Android device, then choose the local-file or storage option from the profile page. Android may ask for permission to access files; grant access only to the file or folder required by the client. A local file does not update automatically, so it is less suitable as the primary profile when the provider changes nodes regularly.

Do not combine a browser-saved login page with a YAML filename and assume that the result is a valid configuration. Open the file with a text viewer if the client rejects it. The beginning should look like YAML fields rather than HTML, for example:

mixed-port: 7890
mode: rule
proxies:
  - name: Example Node
    type: trojan
    server: example.invalid
    port: 443
proxy-groups:
  - name: Proxy
    type: select
    proxies:
      - Example Node
rules:
  - MATCH,Proxy

The sample is only a structure demonstration; the server address, credentials, and node parameters must come from a legitimate provider. A configuration can parse successfully and still fail to connect if its credentials have expired, its server is unavailable, or its protocol requires a core feature that the installed client does not provide.

Update and activate the profile

Adding a URL creates a profile entry, but the first download may still be pending. On the profile page, tap the refresh icon or open the profile menu and choose Update, Refresh, or Fetch. Keep the screen open until the operation finishes. A successful update should display a new timestamp, a file size, or a changed node count.

When the update fails, check the error message before changing other settings. A 401 or 403 response usually points to an expired token, an account restriction, or a provider-side access policy. A timeout can be caused by DNS, the current mobile network, or a temporarily unreachable subscription server. An error mentioning yaml, unmarshal, or an unexpected character means content was received but could not be parsed as the expected configuration.

  1. Copy the subscription URL again from the provider’s account page.
  2. Confirm that the link is complete and has not been wrapped across two lines.
  3. Test the URL in a browser without publishing the result or token.
  4. Check whether the response is YAML, Base64 text, or an HTML error page.
  5. Try a different network, such as Wi-Fi instead of mobile data, only for diagnosis.
  6. Update the profile again and compare the result.

After a successful download, the client may still require you to tap the profile name or a three-dot menu and choose Use, Apply, or Set active. This step matters when several profiles are stored locally. The active profile supplies the current proxy groups and rules; refreshing an inactive profile does not change the configuration currently used by the running core.

Switch proxy nodes and traffic modes

Open the Proxy or Proxies page after activating the profile. You will usually see policy groups rather than a flat list of servers. Common group names include Proxy, Proxy Select, Auto, Streaming, or a provider-specific name. Tap the group that is referenced by the final matching rules, then choose a node from the list.

A check mark beside a node normally means that the policy group has selected it. It does not necessarily mean that the node has already carried application traffic. If the group type is select, you choose the node manually. If it is url-test, fallback, or load-balance, the group may select or change nodes automatically according to latency, availability, or balancing rules.

Mode Routing behavior Recommended use
Rule Matches domains, IP ranges, ports, and other rules from top to bottom Everyday use when the subscription includes maintained rules
Global Sends matched traffic through the selected global proxy policy Short diagnostic tests or networks where rule behavior is uncertain
Direct Attempts to connect without a proxy Confirming that the underlying network works normally

Start with Rule mode if the profile was designed for rule-based routing. In this mode, changing a node inside the main proxy group affects only traffic that the rules send to that group. Local services, private IP ranges, or domains assigned to a direct policy may continue to bypass the proxy. That is expected and should not be mistaken for a failed node.

For a controlled test, temporarily use Global mode and select a known working node. Open a test website or application, observe the connection log, and then return to Rule mode. Global mode is useful for separating node problems from rule problems, but it is not always the best permanent setting because local services, banking applications, or region-specific websites may work better through a direct route.

Choose a node by more than latency

A low ping value is only one indicator. The latency test may measure a small HTTP request to a test URL rather than the complete route to the service you want to use. A node can respond quickly to the test endpoint but fail during TLS negotiation, block a particular destination, or perform poorly under sustained traffic. Compare several nodes, then verify the actual websites or applications you use.

When a group offers an automatic test option, run it after the profile update. Remove obviously unavailable nodes from consideration, but do not treat a single timeout as a permanent failure. Mobile networks can briefly change routes, and a provider’s test endpoint may be rate-limited. Select a stable node manually when diagnosing a problem so that automatic switching does not hide the cause.

Start the Android VPN and verify traffic

Node selection alone does not capture traffic. Return to the main screen and enable the client’s connection switch, service switch, or Start button. Android should display a VPN permission dialog the first time. Approve the request only if the application and profile are trusted, then confirm that the connection status changes to running. A key or shield icon in the Android status bar usually indicates that a VPN interface is active.

Depending on the client, this service may use Android’s VPN API to implement TUN-like traffic interception. It is not the same as manually entering an HTTP proxy in Android Wi-Fi settings. The VPN service can route traffic from applications that ignore system proxy fields, but Android still applies battery, background, per-app, and always-on VPN policies. If another VPN application is active, Android generally allows only one VPN service at a time.

Verify with status, logs, and an IP check

  1. Confirm that the service switch remains enabled for at least a few seconds.
  2. Open the connection or log page and look for DNS requests, matched rules, selected policies, and outbound connections.
  3. Visit an IP-check page and compare the displayed public address and region with the selected server.
  4. Open the real application or website you intend to use, not only a latency test.
  5. Switch to another node and repeat the check to confirm that the result changes.

Logs are especially useful when the public IP does not change. A request marked DIRECT indicates that the current rule sent it outside the proxy. A request assigned to a proxy group but ending with a connection error suggests a node, DNS, certificate, or protocol issue. No log entry at all may mean the application is excluded from the VPN, the service stopped in the background, or the test traffic never reached the client.

Android battery optimization can stop a proxy service after the screen is turned off. If the connection repeatedly disappears, open the client’s Android app information page and review battery settings. Choose an unrestricted or allowed background mode where appropriate, and check whether the device manufacturer has an additional auto-start or background-management control. Also review the client’s per-app routing list: an excluded browser or application will not appear to use the selected node.

Troubleshoot common Android problems

If the profile is visible but no nodes appear, update it again and inspect the profile’s downloaded size. A zero-byte or unusually small response often indicates an expired link, a provider error, or an HTML login page. If nodes appear but the proxy page is empty, the profile may not be active or the client may be using a core that does not support one of the configuration fields.

If the service fails to start, first stop other VPN applications and disable Android’s existing always-on VPN setting temporarily. Check whether the client is allowed to create a VPN connection, then restart the client. On devices with private DNS enabled, try the system default or automatic setting as a diagnostic step. Do not permanently change DNS without understanding whether the provider’s rules depend on a particular resolver.

If one node connects but websites do not load, test another node and inspect the selected policy group. In Rule mode, a missing or incorrectly ordered rule can send the destination to DIRECT. In Global mode, the same destination may work, which indicates a routing issue rather than a completely dead node. Restore Rule mode after the test and review the relevant domain, IP-CIDR, or final MATCH rule.

Symptom Likely cause First check
Profile update returns an error Expired URL, network restriction, or invalid response Status code, response content, and subscription expiry
Nodes are listed but the connection will not start VPN conflict, permission problem, or unsupported configuration Other VPN apps, Android permission, and core logs
VPN icon exists but IP remains unchanged Traffic bypass, excluded app, or direct rule Connection log and per-app routing settings
Websites work briefly, then stop Battery management, unstable node, or automatic group switching Background restrictions, logs, and current policy selection
Only one application fails App-specific bypass, QUIC behavior, or application networking Per-app route, rule match, and the application’s own proxy settings

Frequently asked questions

Why does adding a subscription not connect automatically?

Importing a subscription only downloads or registers a profile. You still need to update the profile, set it as active, select a policy or node, and start the Android VPN service. Check all four states separately.

Should I use Rule mode or Global mode?

Use Rule mode for normal daily routing when the subscription provides reliable rules. Use Global mode for a short diagnostic test or when you need to confirm that a selected node can reach a destination. Global mode sends much more traffic through the proxy and is not always suitable for local services.

Why is the selected node not shown in every application?

The application may be excluded from the VPN, the current rule may select DIRECT, or Android may have stopped the background service. Review per-app routing, the connection log, the final matching rule, and battery restrictions before replacing the node.

How often should I update the subscription?

Daily updates are a practical default unless the provider recommends another interval. Manual refreshes should be limited when troubleshooting, because repeated requests can trigger a 429 Too Many Requests response or consume a provider’s update quota.

FlClash Downloads View clients for every platform