Identify the Link and Configuration Type First
In Clash clients, a “subscription” usually means a remote configuration URL that can be downloaded over HTTP or HTTPS. After requesting the URL, the server may return a YAML configuration, an encoded node list, or a format converted for a specific client. A link opening in a browser does not mean its contents can be read by the Mihomo core; check the response body, configuration fields, and client compatibility together.
Subscription URLs often contain a user identifier, access token, or short-lived authentication parameter. Preserve the complete query string when copying, including everything after the question mark, and do not manually remove trailing characters. Treat the URL as a configuration credential: in screenshots, logs, or support requests, keep only the domain visible and redact the path and parameters.
Standard Clash YAML Configuration
A standard configuration is the most direct input for Clash and Mihomo clients. The fields do not need to appear in a fixed order, but you will typically find keys such as mixed-port, proxies, proxy-groups, rules, and dns. A minimal structure might look like this:
mixed-port: 7890
mode: rule
proxies:
- name: example-node
type: socks5
server: 192.0.2.10
port: 1080
proxy-groups:
- name: PROXY
type: select
proxies:
- example-node
rules:
- MATCH,PROXY
A real subscription usually also includes protocol authentication, TLS, UDP, rule sets, and DNS settings. Mihomo extensions such as rule-providers, sniffer, tun, and certain protocol parameters must be parsed by a core that supports those fields. Older Clash clients may fail outright when they encounter extension fields, or ignore the parts they do not recognize.
Base64 Node Subscription
After decoding, a Base64 subscription usually becomes a line-separated list of share links, such as ss://, trojan://, vmess://, or vless://. This response is not a complete Clash YAML file: it generally has no proxy groups, rules, DNS, or TUN settings. Some clients parse the node list and generate a basic configuration; others accept YAML only and show errors such as “invalid configuration format” or “missing proxies field.”
Single Share Links and Universal Subscriptions
A single URI beginning with a protocol name describes one node. It belongs in an “Import Node” workflow and may not work in a “Remote Configuration URL” field. A universal subscription may identify the client from the request headers and return different formats. The same URL can show Base64 in a browser but return Clash YAML in a client because the server adapts its response to the User-Agent.
Desktop Client Import Steps
Menu names vary slightly between desktop clients, but the workflow is usually the same: create a remote profile, enter the URL, download the configuration, activate it, and choose a proxy group. The paths below reflect common interfaces; if the layout has changed, look for a URL import option under “Subscriptions,” “Configurations,” or “Profiles.”
Clash Verge Rev
- Open the client and go to the “Subscriptions” page.
- Paste the complete subscription URL into the URL field at the top, and confirm that it starts with
https://orhttp://. - Select “Import.” The client will make a remote request and display the downloaded configuration as a subscription card when successful.
- Click the new configuration card to make it the active profile.
- Open the “Proxies” page and choose a node from the usual
PROXY,Node Selection, or similarly named policy group. - Go to “Settings” → “System Settings” and enable the system proxy if needed. If more application traffic must be captured, then consider enabling TUN mode.
If the card exists but the proxy page is empty, do not repeatedly enable the system proxy. Open the configuration details to check the download time and file size, then inspect the logs for YAML parsing errors. A common local mixed-port is 7890, but the configuration may override it; when setting a manual browser proxy, use the port shown by the currently running configuration.
Mihomo Party
- Open the “Subscriptions” page and select “Add.”
- Choose the remote subscription type, then enter a name and subscription URL.
- After saving, run one update and wait for the status to change from downloading to available.
- Select the subscription you just added and set it as the active configuration.
- Open “Proxies” to choose a proxy group and node, then enable the system proxy or TUN under “Settings.”
Mihomo Party uses the Mihomo core and is suitable for configurations containing Mihomo extension fields. If the subscription references remote rule sets, the client will also download the files targeted by rule-providers during the initial load. If the main configuration downloads successfully but rule-set downloads fail, the logs will record the two requests separately; distinguish the subscription domain from the rule-set domain when troubleshooting.
FlClash
- Open “Configurations” and select the add button in the upper-right corner.
- Choose “URL,” paste the subscription link, and enter a recognizable name.
- Confirm the import and wait for the configuration card to appear.
- Select the configuration, return to “Proxies,” expand the proxy groups, and choose a node.
- Enable the system proxy under “Tools” or “Settings.” On desktop, enable TUN only when full traffic capture is needed.
FlClash supports multiple desktop and mobile platforms, and its interface adapts to the window width. In a narrow window, configuration controls may move into bottom navigation or a more menu, but URL, file, and clipboard imports are usually still separate. Choose URL for a remote subscription and File for a YAML file already downloaded locally.
How to Import on Android and iOS
Clash Meta for Android
- Open “Configurations” and tap the plus button in the upper-right corner.
- Choose “Import from URL.”
- Enter a configuration name, subscription URL, and automatic update interval.
- Save it, wait for the download to finish, then select the configuration to activate it.
- Return to the main screen, tap “Start,” and approve the VPN connection permission shown by the system.
- Open “Proxies” and inspect the proxy groups to ensure an unreachable old node is not still selected.
On Android, Clash Meta clients usually capture traffic through the system VPN interface, so you do not need to enter 127.0.0.1:7890 for every app. A VPN permission dialog on first launch is part of the system flow. Only one app can occupy the Android VPN interface at a time; if another VPN, filter, or proxy tool is running, stop it before starting the current configuration.
Avoid setting the automatic update interval too low. When node information changes infrequently, start with 1440 minutes, or once a day; configurations with frequent rule changes can use 360 minutes. A 15-minute interval creates many repeated requests and may trigger rate limits from the subscription service.
FlClash on Mobile
FlClash follows nearly the same import flow on Android as on desktop: open “Configurations” → “Add” → “URL,” paste the link, download it, and activate it. System VPN permission is also required before starting the service. After a successful import, open the proxy groups to inspect the nodes instead of judging configuration completeness only by the start status on the home screen.
Compatibility Limits on iOS
Each iOS client implements its own configuration parser. In a client such as Stash that supports Clash rule structures, choose URL download from the remote configuration or configuration management page, then set the returned configuration as active. The exact entry point varies by client version, so confirm before importing that the provider lists a format supported by the client.
Some iOS tools mainly accept node subscriptions and individual share links, and do not fully use the proxy groups, scripts, rule sets, or DNS fields in Clash YAML. If importing the same URL produces nodes but not the original rule groups, the client has usually converted the format; this does not mean the remote file lacks rules.
Verify That Nodes, Proxy Groups, and Rules Loaded
“Import successful” only means that the client saved a configuration record. A complete verification should cover four layers: configuration contents, core operation, proxy-group selection, and an actual connection. The following order helps prevent a rule problem from being mistaken for a subscription download problem.
Step 1: Check the Update Time and Configuration Size
- The configuration card should show a recent update time, not a cached timestamp from several days ago.
- The remote file size should not be 0; if it is only a few dozen bytes, the response may be an error message or login page.
- The configuration details should show the number of nodes. If you expected 20 nodes but see only 1, check whether you accidentally imported a single share link.
- If the configuration declares rules, you should see
rulesor remote rule sets, not justproxies.
Step 2: Confirm That the Core Started
After switching configurations, check the running status and logs. Normally, you should see entries for configuration loading, the listening port starting, and the control interface becoming available. If the log stops during parsing, locate the field named in the first error; the many follow-up errors are usually caused by earlier indentation, field-type, or unsupported-parameter issues.
YAML uses spaces to express hierarchy. Tabs, missing colons, and incorrect indentation can all cause parsing failures. For example, rules must be a list, not one undivided string containing all rules. When a remote subscription is generated by a server, ask the provider to fix the source configuration rather than manually editing the cached file after every update.
Step 3: Check the Proxy-Group Selection
Open “Proxies” and expand the proxy groups layer by layer. If the final outbound group is set to DIRECT, connections matching that group will bypass the proxy even when the client is running. If you selected an automatic group such as url-test or fallback, confirm that at least one node has completed a latency test.
An 80 ms latency result only means that the test URL was reachable through that node; it does not mean every website will connect. Make another real request and inspect the domain, matched rule, proxy group, and final node in the connection log. For example, a record showing DOMAIN-SUFFIX matched, passed to PROXY, and then routed to a specific node by that group indicates that the rule chain is working.
Step 4: Check the Proxy Mode
| Mode | Traffic Behavior | What to Verify |
|---|---|---|
| Rule | Match rules from top to bottom and use the policy selected by the first match | Check the rule and proxy group in the connection log |
| Global | Sends all connections to the global proxy group | Confirm that the global group has a usable node selected |
| Direct | Connections bypass proxy nodes | Use for baseline testing, not for verifying the node's egress |
When troubleshooting an import, start with Rule mode to preserve the subscription's intended routing logic. Temporarily switching to Global mode can show whether a node has basic connectivity, but switch back to Rule mode after testing. Mode changes affect new connections only; existing long-lived browser connections may keep the old route, so close the relevant tabs or restart the app before testing again.
Common Subscription Import Errors and Fixes
HTTP 401, 403, or 404
401 and 403 usually indicate missing authentication parameters, an expired token, a restricted source, or a disabled subscription. 404 means the path does not exist, although a server may also use it to hide an invalid token. Copy the complete URL again from the subscription management page; do not copy only the management-page URL from the browser address bar. If the link contains & parameters, make sure a chat app or notes tool did not truncate the latter half.
Request Timed Out or Connection Refused
When a subscription updates before the proxy starts, the client usually connects directly to the subscription domain over the local network; after the proxy is running, some clients may send update requests through the active proxy. If the subscription domain is reachable only through the proxy, this can create a loop: the configuration cannot download because the proxy is not running, and the proxy cannot start because the configuration has not downloaded. Complete the initial import over a reachable network, or adjust the subscription update route if the client supports it.
A common local HTTP proxy address is 127.0.0.1:7890, while the SOCKS port is often 127.0.0.1:7891; these are only common defaults. If another program already occupies the port, the core may fail to start and the log may show bind or address already in use. Check the current configuration's mixed-port, port, and socks-port to avoid duplicate listeners.
YAML Parsing Error
First check the configuration details to confirm that the response is not HTML. If the file begins with <!doctype html>, a login prompt, or an error page, the client did not receive YAML. If it is valid YAML, record the line number and field name from the log, then check indentation, Boolean types, list formatting, and whether the core supports the relevant protocol fields.
Nodes Are Present, but Rules and Proxy Groups Are Missing
This commonly happens when a Base64 node subscription was imported or the client converted a universal subscription into a basic configuration. A node list provides connection parameters only; it does not include the full routing design. For rule-based routing, obtain a Clash or Mihomo YAML subscription, or use the client's local override feature to add proxy groups, DNS, and rules. Save the original configuration before overriding it to avoid duplicate fields after a subscription update.
The Configuration Did Not Change After an Update
Compare the update time shown by the client first, then run a manual update. If the time changed but the nodes did not, the server may simply have returned unchanged content. If the time did not change, check whether the request hit a cache, automatic updates are enabled, and the client is still using another configuration card with the same name. Deleting the configuration also clears the local selection state and usually should not be the first step.
Configuration Order for Automatic Updates, Overrides, and TUN
After the subscription imports reliably, adjust automatic updates and local overrides. The recommended order is: verify that the remote YAML loads independently, set an update interval of 360 to 1440 minutes, add a small number of overrides, and test the system proxy or TUN last. Changing several layers at once makes the failure point difficult to identify.
Automatic Update Interval
- Few node changes: 1440 minutes, checking once a day.
- Frequent rule or node changes: 360 minutes, checking every 6 hours.
- Waiting for a configuration fix: use manual updates instead of polling every 5 or 10 minutes.
Client sleep, system background-activity limits, and mobile battery-saving policies can all delay updates. An automatic update interval is therefore a schedule, not a guarantee that the update runs at the exact minute. To get the latest content immediately, open the configuration page, run a manual update, and confirm that the update time changes.
Limits of Local Overrides
Overrides are useful for device-specific changes, such as changing a listening port, adding a direct LAN rule, adjusting DNS servers, or adding TUN parameters. Do not copy large numbers of nodes into an override file, as subscription updates can leave stale entries behind. Rule order matters too: Clash matches from top to bottom, so a new LAN rule placed after MATCH will never run.
TUN Mode Does Not Determine Whether a Subscription Can Be Parsed
TUN captures operating-system traffic, while subscription import retrieves and parses the configuration; they are separate stages. Enabling TUN will not fix a YAML parsing failure. TUN is the traffic-capture method to test when nodes and rules have loaded correctly but some apps do not follow the system proxy. After enabling it, establish a new connection and check whether requests from the target app appear in the connection list.
A Repeatable Subscription Import Checklist
- Confirm that you copied a Clash or Mihomo subscription URL, not a management page or QR-code URL.
- Preserve the URL's complete path, query parameters, and protocol prefix.
- On the client's “Subscriptions” or “Configurations” page, choose URL import rather than a local file.
- After downloading, check that the update time, node count, proxy groups, and rules match expectations.
- Activate the new configuration, confirm that the core starts, and make sure the local listening ports are not conflicting.
- Choose a node in the proxy group, then enable the system proxy or the mobile VPN service.
- Use Rule mode to make a new connection, then check the rule, proxy group, and final node in the connection log.
- Only configure automatic updates, overrides, and TUN after the setup is stable; avoid changing multiple variables at once.
Successful subscription import is not about clicking “Add” once. It depends on confirming that the remote content is a configuration the client supports and verifying the complete path from download and parsing to activation and traffic matching. When something fails, check HTTP requests, response format, core parsing, proxy selection, and system traffic capture in that order; the issue can usually be isolated to one stage.