Confirm the link and client status before importing a subscription
A Clash subscription link is typically an HTTPS address containing access credentials. After the client requests it, the server returns a Clash configuration file, a list of nodes, or configuration content converted according to the request. Importing is more than saving a URL in the app: the client must make the network request, read the response, identify its text format, parse proxy fields, and pass the result to the Clash Meta (mihomo) core. So a link opening in a browser does not necessarily mean the current client can recognize it.
Before you begin, confirm that the subscription address is still valid. When copying it, do not include ellipses generated by chat apps, line breaks, or spaces around the URL, and do not stop before the question mark. Some subscriptions store authorization data in the path or query parameters, so one missing character may return a login page, error page, or empty response. Treat the subscription address as a configuration access credential; do not publish it in screenshots, shared logs, or public code repositories.
Also check that Clash Verge Rev and the mihomo core can start normally. If the client is stuck because the core failed to start, a port is already in use, or the configuration directory is not writable, the configuration may not apply even when the download succeeds. Open the client’s settings or status area first and confirm that the core is running before importing a remote configuration.
How to identify a Clash subscription format
The easiest content to import directly into Clash Verge Rev is a structurally complete Clash YAML configuration. It typically includes fields for ports, operating mode, DNS, proxy nodes, proxy groups, and rules. The number of fields varies between providers, but the common structure looks like this:
mixed-port: 7890
mode: rule
proxies:
- name: Example-HK
type: ss
server: edge.example.net
port: 443
cipher: aes-128-gcm
password: sample-password
proxy-groups:
- name: Proxy
type: select
proxies:
- Example-HK
- DIRECT
rules:
- MATCH,Proxy
The content above only illustrates YAML structure. The actual node types, authentication fields, and transport parameters must be generated correctly by the server. YAML is indentation-sensitive, with spaces normally representing hierarchy; tabs, incorrect indentation, or unclosed quotes can all cause parsing failures.
Complete Clash configuration
A complete configuration generally includes proxies, proxy-groups, and rules, allowing it to provide selectable proxy groups immediately after import. Newer configurations may also include fields such as rule-providers, proxy-providers, dns, tun, and sniffer. mihomo supports Clash Meta extension fields extensively, but the configuration must still match the field definitions for the relevant version.
Base64-encoded node list
Another type of subscription returns a Base64-encoded list of URIs. After decoding, you may see multiple ss://, trojan://, vmess://, or vless:// addresses. This is a general-purpose node subscription, not necessarily a complete Clash configuration. It usually lacks proxy groups, rules, and DNS settings, and whether it can be imported directly depends on the client version, subscription conversion support, and how the server responds. If the import reports an invalid format, choose Clash or Clash Meta in the subscription service’s format options instead of repeatedly submitting the same generic link.
Single-node URIs and web content
A single protocol URI describes one connection node and is not the same as a complete subscription. Some clients can add an individual node through a dedicated entry point, but a remote configuration entry usually expects configuration content that can be saved and updated. If opening the link shows an account center, CAPTCHA page, login screen, JSON error object, or HTML document, the response is not Clash YAML. Common causes include a copied address error, expired authorization, a required login, or redirection through an intermediate page.
Remote node sets with Proxy Providers
proxy-providers is Clash’s mechanism for remote node providers. The main configuration can reference a remote YAML node set and update it at a defined interval. This is a different layer from adding an entire remote subscription on Clash Verge Rev’s configuration page: the running core fetches the node set based on the main configuration in the former case, while the client manages the complete configuration file in the latter. During troubleshooting, first determine whether the error comes from the client downloading the configuration or from a provider update after the core loads it.
Import a subscription link into Clash Verge Rev
Interface labels may vary slightly between versions, but the workflow is usually centered on the Subscription or Configuration page. After importing, do not immediately blame the nodes for every network problem. First check that the configuration is selected, the core reloaded successfully, and the proxy entry point is enabled.
-
Copy the complete subscription address.
Copy the address intended for Clash or Clash Meta from the subscription service’s configuration page. If several formats are available, choose one compatible with mihomo. Do not mistake a QR-code image URL or a web sharing URL for the subscription link.
-
Open the configuration management page.
Open the Configuration or Subscription section in Clash Verge Rev and find the option for creating an entry, importing from a URL, or adding a remote configuration. Use the URL field for a remote subscription; import a YAML file saved locally through the local-file option. These two sources update differently.
-
Paste the link and submit it.
Confirm that the address begins with a valid protocol, usually
https://. After submitting, wait for the client to finish downloading and parsing it. When the network is slow, do not create several identical entries in succession, or it may become difficult to tell which configuration is currently active. -
Check the name and update time.
After a successful import, the configuration list should show a new remote configuration entry. Check that its name, update time, and availability status look reasonable. If the name is just a random string, you can rename it for easier identification, but do not change the remote URL itself.
-
Select and enable the configuration.
Adding a configuration to the list does not make it the active configuration. Select the new entry, wait for the core to finish loading, and then open the proxy page to view the groups. If the configuration contains many rule sets, the first load may also need to download rule provider files.
-
Choose a proxy group and enable the proxy entry point.
On the proxy page, select a node for the primary proxy group, then enable the system proxy or TUN mode for your use case. The system proxy mainly affects apps that follow the operating system’s proxy settings; TUN mode takes over more traffic through a virtual network interface and usually requires additional system permissions.
Subscription updates, automatic refreshes, and local changes
The advantage of a remote subscription is that the original URL can be requested again to retrieve the latest nodes, proxy groups, and rules. Manual updates are usually started from the update button on the configuration entry; automatic updates run at an interval set by the client or configuration. After a successful update, the client generally saves the new content and tells the core to reload it.
Before updating, confirm that the current network can reach the subscription server. If the existing proxy nodes have stopped working and the subscription URL itself requires a proxy, you can end up in a loop: you need a connection to update, but must update before you can connect. In that situation, temporarily disable the system proxy and update directly, switch to an older node that still works, or test the subscription URL in a browser if its source is trustworthy.
Direct edits to a remote configuration are usually vulnerable to being overwritten. If you manually add rules, change DNS, or adjust proxy groups in the downloaded YAML, the next remote update may replace those changes with the server version. For local changes that must persist, use the client’s supported override, merge-configuration, or scripting mechanism and understand the order in which they are applied. Copying the file into a local configuration preserves your edits, but the copy will not inherit future remote subscription updates automatically.
Node name changes after an update can also affect local overrides. If a custom rule references a proxy group that the server renames or removes, the core will report that the policy target does not exist. For durable overrides, reference proxy groups that are likely to remain available and review the logs after every major update.
A successful update does not mean the nodes work
A successful subscription update only proves that the configuration could be fetched and parsed. Node connectivity is also affected by server status, domain resolution, transport parameters, system time, and the current network environment. If the configuration list says “Update successful” but every proxy-group latency test times out, inspect the node connection logs instead of repeatedly deleting and re-importing the subscription.
Common import errors and troubleshooting order
Invalid link or 404/403 response
404 usually means that the path does not exist, possibly because the link was truncated, the subscription was reset, or an old address was copied. 403 means the server rejected the request, commonly because authorization expired, access is restricted, or the request did not meet the required conditions. First copy the address again in the correct format from the subscription management page. Do not guess at changes to the token, file extension, or query parameters; these parts often control authorization and format selection.
The response is empty
An empty response may result from a temporary server problem, a change in account status, a node list that has not yet been generated, or an intermediate network device closing the connection early. Without exposing the link, record the time, HTTP status, and client logs, then check the plan and subscription status in the provider’s dashboard. If the browser downloads a zero-byte file, the problem usually occurred before client-side parsing.
YAML parsing failed
Check the line number and field name reported in the logs. Common problems include inconsistent indentation, a missing space after a colon, an unclosed string, an incorrect list hierarchy, or a field generated by the server that the current core cannot recognize. If the content is generated automatically by a subscription server, first select the Clash Meta format again and update rather than patching the remote file line by line.
The download is Base64 text or a series of URIs
This means the server returned a general-purpose subscription. Check whether the subscription dashboard offers a client type or configuration format selector, then generate a link for Clash, Clash Meta, or mihomo. Some services return different formats based on the request’s User-Agent, so the content shown in a browser may differ from what the client receives. In that case, rely on the client logs and the configuration actually saved.
The configuration parses, but the core fails to load it
Parsing YAML is only the first step. The core also validates proxy-group references, rule targets, provider paths, listening ports, and feature fields. For example, a rule pointing to a nonexistent proxy group, two inbound listeners using the same port, or an invalid provider file can all prevent loading. Open the logs and locate the first explicit error instead of focusing only on the repeated reload-failed messages that follow.
Certificate error or connection timeout
Certificate errors can result from an inaccurate system clock, a broken certificate chain, DNS resolving to the wrong address, or interference from a network middlebox. First correct the system date, time, and time zone, then test access on the same network. For connection timeouts, distinguish between a DNS lookup timeout, a TCP connection timeout, and a TLS handshake timeout. The stage shown in the logs determines the next troubleshooting step.
The proxy group is empty after updating
If the configuration loads but a proxy group has no nodes, the node provider may have failed to update, a filter expression may have excluded every node, or the node names returned by the server may no longer match the group’s references. Check the health status and update logs for proxy-providers, and verify whether the group uses static proxies entries or dynamic use references.
Verify connectivity after importing
After the configuration loads successfully, open the proxy page and confirm that the proxy groups are not empty, then assign a node to the primary group. You can run a latency test, but its result only shows whether the test address responded at that moment; it does not prove that every website and protocol will work. Next, enable the system proxy and use a browser that follows system proxy settings to visit a normal webpage. Check whether the logs show the expected domain and rule match.
The logs should show which rule matched the request, which proxy group received it, and which node was ultimately used. If the connection is sent to DIRECT, it is going directly; if it matches REJECT, the configuration is actively blocking it; if it enters a proxy group but fails, inspect node-handshake or DNS errors next. This is more useful for isolating the cause than simply checking whether a webpage opens.
If the system proxy works but some applications generate no traffic, the app may ignore system proxy settings, use its own network stack, or send UDP directly. Consider whether TUN mode is appropriate. After enabling it, grant the permissions requested by the operating system and check the virtual adapter, routing table, and DNS interception status. TUN mode cannot repair an invalid subscription format: if the configuration cannot be parsed or node parameters are wrong, changing the traffic-interception method will not fix the problem.
Finally, establish a clear maintenance routine for your configurations: give remote subscriptions recognizable names, update them regularly, and manage important changes through overrides; remove obsolete entries after changing subscription URLs so an old configuration is not selected by mistake; when something fails, check in this order: download response, format parsing, core loading, traffic interception, and node connectivity. This sequence breaks similar symptoms down by stage and reduces repeated imports and blind setting changes.
Continue installing Clash Verge
Go to the download page to choose your operating system and architecture, or follow the guide to install the client, import a subscription, and configure the proxy.