Getting Started 12-minute read

How to Import Clash Subscription URLs: Address Formats, Configuration Updates, and Import Troubleshooting

Learn the difference between subscription URLs and YAML configuration files, with step-by-step guidance for importing, manually updating, and troubleshooting unrecognized links.

PROFILE INPUT

Subscription URLs, Node Links, and YAML Configurations Are Different Inputs

A Clash client needs a configuration to read. It typically contains proxy nodes, proxy groups, routing rules, DNS settings, and runtime options. What users call a “subscription” may be a remote URL or a YAML file already downloaded locally. Both serve the same purpose, but their import and update workflows—and the errors they produce—are not exactly the same.

A subscription URL generally starts with https://. After the client requests the address, the server returns configuration content the client can recognize. The URL is only an entry point; a browser may not display neatly formatted text. Some endpoints trigger a download, some return an encoded node list, and others generate YAML tailored to the Clash or mihomo core based on the request.

A single-node link usually starts with a specific protocol name and describes one node. Pasting it into a “subscription URL” field does not guarantee that the client can read it as a complete configuration. A full configuration also needs structures such as proxy groups and rules. Some clients support single-node imports, but that entry point should be treated separately from configuration subscriptions.

A local YAML file is an already generated configuration snapshot. It is useful for offline inspection and manual editing, but it will not sync automatically when the remote subscription changes. If a client stores both a remote subscription and a local copy, updating usually affects only the remote configuration entry and does not overwrite a locally imported file.

URL FORMAT

Subscription URL Format and Copy Checks

A subscription URL that a client can request directly should include the complete protocol, domain, path, and any query parameters required by the server. A common structure can be represented as follows:

https://config.example.net/api/profile?token=example-token&format=clash

The protocol determines how the connection is made; the domain and path identify the subscription endpoint; and parameters after the question mark carry access credentials or specify the output format. Parameter names are defined by the subscription provider and should not be rewritten. Some URLs are very long because credentials, device information, or output options are URL-encoded. Length alone does not indicate whether a URL is valid.

Common copy errors include dropping the final character, including a line break, copying an ellipsis shown by a chat app, or copying only the part before the question mark. Use “Copy link address” to obtain the original URL instead of retyping text truncated by the interface. After pasting, check that it starts with http:// or https://, contains no spaces, and does not end with a period, closing parenthesis, or other punctuation from the surrounding text.

In URL query parameters, & separates multiple parameters. Web page source may show &, but the actual copied URL should contain a regular &. When copying from rich text, email, or a code snippet, make sure HTML escaping has not been saved as part of the URL.

Subscription URLs usually contain access credentials and should be treated like account passwords. Do not post the full URL in public logs, screenshots, or public support threads. For troubleshooting, keep the domain and path structure visible while masking most of the token parameters.

Input Type Typical Appearance Recommended Import Entry
Remote subscription A complete URL starting with HTTP or HTTPS Import from URL, Remote Configuration
Local configuration A filename ending in .yaml or .yml Import from File, Local Configuration
Single-node information Starts with a specific proxy protocol name Import as a node or convert it to a complete configuration first
Web management URL Opens to a login page or control panel Obtain the actual subscription URL from the page first

IMPORT SEQUENCE

Importing a Remote Subscription in a Clash Client

Menu labels vary between graphical clients and may appear as “Configuration,” “Subscription,” “Profiles,” or “Config Files,” but the workflow is broadly the same. The steps below apply to common desktop clients based on compatible cores such as Clash Meta (mihomo). Refer to the current client interface for the exact button locations.

  1. Open the configuration manager. Make sure you are in the configuration or subscription section, not the proxy-node selection page. The node page switches between existing proxy groups; it does not create a new remote configuration.
  2. Choose Import from URL. If the interface offers local file, clipboard, and remote URL options, select the remote URL option. Paste the complete subscription URL and give the configuration a recognizable name.
  3. Download or add the configuration. The client requests the remote URL and parses the response. After a successful import, you will usually see a new configuration card, an update time, or a node count. The presence of an entry does not mean it is active—you must select it next.
  4. Set it as the active configuration. Click the configuration entry or use the “Enable” action to make the core reload it. If switching reports a parse error, keep the existing working configuration and inspect the new configuration first.
  5. Check the proxy groups. Open the proxy page and confirm that the groups defined by the configuration are present, then select a node or an auto-test group as needed. If no proxy groups appear, you may have imported a node list rather than a complete Clash configuration.
  6. Enable the system proxy or TUN. The system proxy works well for regular browsers and applications that follow system proxy settings. TUN captures more network traffic and usually requires additional permissions. For the first test, use the system proxy; handle TUN only after confirming that the configuration works.

Importing on mobile clients follows a similar workflow: add a remote configuration, select it, and start the connection. The operating system may ask you to create a VPN configuration; this is the standard authorization step for granting network interception capabilities. If authorization is denied, the client may have imported the subscription but still cannot create the required network interface.

PROFILE UPDATE

Manual Updates, Automatic Updates, and Local Changes

After saving a remote subscription, the client usually records its original URL and provides an update button. A manual update requests the URL again, downloads the latest configuration, and replaces the cached content for the remote entry. Changes to node counts, names, proxy groups, and rules typically appear only after the update finishes and the configuration is reloaded.

The automatic update interval may be set by the client or suggested by metadata in the configuration. An interval that is too short creates unnecessary network requests; one that is too long may leave you using outdated node information. For everyday use, keep the client’s reasonable default and run a manual update when the node list no longer matches the subscription management page.

Keep “Update Subscription” separate from “Test Latency.” Updating a subscription retrieves configuration content; a latency test probes nodes that are already loaded and does not download new nodes. Repeated latency tests cannot repair an expired subscription or refresh access credentials.

When directly editing the YAML generated from a remote configuration, consider how updates overwrite local changes. Some clients completely replace local content during the next update, so manually added rules, DNS settings, or nodes may disappear. For custom content that must persist, use the client’s override, merge, script, or extension-configuration mechanism. If none is supported, copy the configuration into a separate local file and maintain updates yourself.

The node selected before an update may no longer exist afterward. If a proxy group keeps the same name, the client may preserve its selection; if a node is removed, renamed, or moved to another group, the core will select one according to the group’s default behavior. After updating, check the main proxy groups and current mode instead of assuming that “configuration updated” means “the previous node is still selected.”

FAULT ISOLATION

Troubleshooting Order for Unrecognized Subscription URLs

Handle import failures in this order: URL, network response, content format, then core compatibility. First determine whether the client received any content; only then check whether that content can be parsed as a configuration. This avoids repeatedly editing YAML when the request itself failed and changing networks when the real issue is an invalid format.

1. Confirm That the URL Is Complete and Still Valid

Copy the URL again from the subscription management page instead of reusing text forwarded through a chat app or broken across manual line breaks. If the server allows browser access, check whether the response is configuration text, a file download, a login page, or an error page. A login page usually means you copied the management-page URL; an authorization error may indicate expired credentials, an expired subscription, or an access-policy restriction.

2. Confirm That the Client Can Reach the Subscription Server

The first import occurs before a usable proxy has been established, so the subscription server must be reachable over the current network. DNS resolution failures, TLS errors, timeouts, or network-policy blocks prevent the client from retrieving the configuration. Check that the system clock is accurate, the same domain opens in a browser, and the hostname and error time in the client log match this attempt.

3. Check Whether the Response Is Actually a Configuration

A successful server status does not mean that the body is YAML. The endpoint may return a JSON error, HTML login page, CAPTCHA page, or plain-text notice. The client will then report a YAML parse failure, missing fields, or an unrecognized format. Address the subscription permission or output format instead of changing the proxy port.

4. Confirm That the Output Targets the Current Core

Different subscription outputs may target Clash, mihomo, or other clients. mihomo extends Clash configuration syntax with support for additional proxy protocols, rules, and DNS features; older cores may not recognize newer fields or node parameters. If the log reports an unknown proxy type, an unsupported field, or configuration validation failure, choose a subscription format compatible with the client’s core or update to a maintained compatible client.

5. Rule Out Duplicate Names and Invalid Content

Proxy names and proxy-group references in the configuration must match. A proxy group that references a nonexistent node, unexpected duplicate names at the same level, or an unavailable rule-set path can all prevent loading. Some issues do not stop the file from downloading but appear when the core starts or the configuration is switched.

YAML PARSE

What to Check When a Local YAML Import Fails

YAML uses indentation to represent hierarchy. Use spaces and keep indentation consistent at the same level. Tabs, missing colons, omitted hyphens before list items, and unclosed quotes can all make the parser stop near the wrong location. The line number in the log is a starting point; the actual problem may be on the preceding line.

A simplified configuration skeleton usually includes port settings, proxy nodes, proxy groups, and rules. The example below illustrates hierarchy only and is not a complete configuration that can establish a connection:

mixed-port: 7890
mode: rule

proxies:
  - name: example-node
    type: socks5
    server: 127.0.0.1
    port: 1080

proxy-groups:
  - name: PROXY
    type: select
    proxies:
      - example-node
      - DIRECT

rules:
  - MATCH,PROXY

proxies is the node list, proxy-groups defines how nodes are selected, and rules determines which proxy group or direct policy handles each connection. Policy names referenced by rules must match a proxy-group name or a built-in policy. If a node name is placed where a proxy-group name is expected, verify that the current core and rule type support that usage.

Names containing colons, hash signs, special characters, or leading or trailing spaces should be enclosed in quotes. An unquoted hash sign may be interpreted as the start of a comment. Use a text encoding the client can read reliably, and avoid saving the file as a heavily formatted document through office software.

If a remote subscription downloads successfully but will not load, look for the first parse error in the client log. The many errors that follow are often cascading results of the first structural problem. Fixing and rechecking that first issue is more effective than working backward from the end of the log.

RUNTIME CHECK

Imported Successfully but Still Cannot Connect: Check Rules, DNS, and TUN

Once the configuration loads successfully, connection issues have moved into the runtime stage. First confirm the client’s operating mode. Rule mode matches rules from top to bottom and stops at the first match; Global mode usually sends traffic to the selected proxy group; Direct mode bypasses the proxy. In Direct mode, nodes can appear healthy while target traffic still avoids the proxy.

Next, check the proxy-group selection. An auto-test group chooses nodes according to its configured probe URL and interval, but a successful probe does not mean every website will be reachable. A manually selected group requires an explicit node selection. If the current item in the group is DIRECT, matching rules will use a direct connection.

DNS issues often appear as unreachable domains while direct connections to certain IP addresses still respond. Check whether the DNS module is enabled, whether its listening address conflicts with another service, and whether the enhanced mode matches the network setup. Fake-IP mode returns reserved addresses and maps them back to original domains inside the core; traffic must continue through the Clash core. If requests bypass the core, the resolved addresses may not work correctly.

TUN mode creates a virtual network interface and changes routing. If startup fails, check for missing system permissions, an interface already used by another network tool, missing service components, or conflicting routes. If TUN is enabled but no traffic flows, inspect the route-capture scope, DNS hijacking settings, and LAN bypass rules. Do not change TUN, DNS, rules, and nodes all at once without recording the original state, or it will be difficult to identify the cause.

Use the smallest-change approach: load a configuration known to parse, select one clearly identified node, and verify browser traffic through the system proxy. Then test rule mode, and only afterward enable TUN and test applications that do not follow system proxy settings. At each step, review live logs for the destination domain, matched rule, selected policy, and connection result to separate subscription issues from runtime issues.

QUICK CHECKLIST

Subscription Import Checklist

  • Confirm whether the input is a remote subscription URL, a local YAML file, or a single-node link.
  • Copy the complete URL again and check the protocol, query parameters, spaces, and trailing punctuation.
  • Confirm that the response is not a login page, authorization notice, or ordinary web page.
  • Choose a subscription output format compatible with the Clash or mihomo core.
  • After importing, set the configuration as active and check that the proxy groups appear.
  • After updating the subscription, confirm that node selection, operating mode, and rule groups are unchanged.
  • When parsing fails, start with the first YAML or field error shown in the log.
  • When runtime fails, check nodes, rules, DNS, the system proxy, and TUN in that order.

By separating “request the subscription,” “parse the configuration,” “load the core,” and “capture traffic” into four stages, most import problems can be traced to a specific step. If the URL cannot be requested, investigate network access and permissions; if the body cannot be parsed, investigate format and compatibility; if the configuration loads but connections fail, check proxy groups, rules, DNS, and system-level traffic capture.

Download the Client and Import a Subscription

Choose a compatible client for your device platform, install it, and follow the usage guide to import the configuration, select a proxy group, and verify the connection.

Download Clash