Clash Glossary
Map terms from the interface to configuration fields. Browse five groups covering cores, protocols, routing, traffic capture, and subscription formats. Each term has its own linkable anchor.
Cores and Clients
The client provides the interface; the core handles connections. When troubleshooting, note the client name, core name, and active configuration separately.
- mihomoProxy core / Clash.Meta
- mihomo is a proxy core in the Clash ecosystem, previously known as Clash.Meta. It handles protocol connections, DNS, rule matching, and traffic forwarding. GUI clients such as Clash Verge Rev can bundle the core, but the client version and core version are separate. To check whether a field is supported, consult the documentation for the core actually running—not just the client name.
- GUI ClientGUI / Configuration and OS Integration
- A GUI client provides controls for managing subscriptions, choosing policies, reviewing connections, and toggling the system proxy, then passes configuration to the core. Some clients combine interface options, templates, and overrides into the active configuration, so editing the original subscription may not change behavior. If a setting reverts after restart, first check whether you edited the source subscription, a persistent override, or a temporary runtime copy.
- Proxy Nodeproxies / Outbound connection details
- A proxy node usually consists of a server address, port, protocol, and authentication parameters. In a full configuration, it commonly appears as an entry under
proxies. The name shown in a list is only a label; it does not confirm the server's location, actual egress region, or availability. A node is not a policy group: a node describes a specific connection, while a policy group selects an outbound from several connections or other groups.
- Latency TestTest URL / timeout
- A client typically accesses a test URL through a selected proxy and records how long the request takes. Implementations may differ in how they handle connection reuse and timing. Results depend on the test URL, destination, network path, and timeout settings; they do not measure download bandwidth or represent access speeds for every website. A timeout only means that this probe did not finish in time. Check actual access and logs as well.
- External Controllerexternal-controller / Management API
external-controllersets the listening address for the core management API. A GUI can use it to read connection logs, check status, or switch policies. The example127.0.0.1:9090is a local management endpoint, not a browser HTTP proxy address. Do not bind the management API to an externally accessible address unless access controls and network isolation are configured.
Proxy Protocols
Distinguish the protocol an application uses to connect to a local proxy from the protocol the core uses to connect to a remote server. Similar names do not mean the settings or transport behavior are interchangeable.
- HTTP ProxyHTTP / CONNECT
- With an HTTP proxy, an application sends requests to a proxy listener. HTTPS usually uses
CONNECTto establish a tunnel, after which the application negotiates TLS with the destination. Connecting to a local HTTP proxy does not mean the remote node also uses HTTP or that every link is automatically encrypted. Traffic uses the proxy only if the application is configured to do so.
- SOCKS5TCP / UDP ASSOCIATE
- SOCKS5 is a general-purpose proxy protocol that supports TCP and, when both the application and proxy support it, UDP forwarding. Whether DNS is resolved locally or by the proxy depends on how the application connects; some command-line tools distinguish these options with different URL schemes. Providing a SOCKS5 address alone does not ensure all DNS queries use the proxy or capture traffic from apps that do not support proxies.
- Shadowsockstype: ss
- Shadowsocks provides encrypted forwarding between a client and a proxy server. In mihomo node configuration, it is commonly written as
type: ss. The server address, port, encryption method, authentication parameters, and optional plugins must match the server; the display name alone is not enough to restore a connection. Support can vary by protocol revision and encryption method, so check core capabilities and field values if import fails.
- Trojantype: trojan / TLS
- Trojan typically carries proxy traffic over TLS. In addition to the server address and authentication parameters, configure the certificate hostname correctly. The server connection address and certificate hostname can serve different purposes and should not be swapped arbitrarily. For certificate errors, check the system clock, certificate chain, and hostname. Skipping certificate verification weakens server identity checks.
- Hysteria 2type: hysteria2 / QUIC
- Hysteria 2 is a QUIC-based proxy protocol that relies on UDP connectivity. If the network blocks UDP, it may fail to connect even when TCP services on the same server work. Hysteria 2 configuration names are not interchangeable with those for the first-generation Hysteria. The protocol itself does not guarantee throughput; performance also depends on route quality, server resources, and network congestion.
Rules and Routing
First confirm that the connection reaches the core. Then check rule order, the selected target, and rule data. Every name used in a rule must be defined.
- Rule-Based Routingmode: rule / rules
- In rule mode, the core checks connections against
rulesin order and sends each match to its specified outbound or policy group. For example,DOMAIN-SUFFIX,github.com,PROXYsends the domain and its subdomains to the target namedPROXY. Changing rule order changes the result, but cannot fix an app that never reaches the core. Check the matched rule in the connection log when troubleshooting.
- Policy Groupproxy-groups / select / url-test
- A policy group combines proxies or other groups under an outbound name that rules can reference.
selectlets you choose manually,url-testselects based on periodic probes, andfallbackswitches according to member order and availability. Automatic selection depends on the test URL and check interval; it does not mean every website will use its individually fastest route.
- GeoIPGEOIP,CN,DIRECT
- GeoIP uses an IP address database to determine the location associated with a destination address, often for choosing direct or proxy routing. It does not classify traffic by company location or domain suffix. CDN routing and database updates can change the result. Resolving a domain to an IP may also trigger a DNS lookup;
no-resolveprevents that IP rule from initiating a lookup, but does not mean DNS is unnecessary for the connection as a whole.
- Rule Providerrule-providers / RULE-SET
- A rule provider stores a set of domain, IP, or other rules separately. Declare it with
rule-providers, then reference it inruleswithRULE-SET. The payload format must match settings such asbehaviorandformat, and the provider name must match exactly. A successful download only confirms that content was retrieved; it does not guarantee a supported format or that any connection will match.
- MATCHCatch-all rule / Final match
MATCHhandles connections that did not match earlier rules and usually belongs at the end of the rule list. IfMATCH,PROXYappears at the top, later rules cannot handle connections it has already matched.PROXYis a custom target name, not a built-in reserved value, so a proxy or policy group with that exact name must exist.DIRECTandREJECTare built-in outbounds.
Further reading: Configuration files and rules →
Traffic Capture Modes
Traffic entry, DNS resolution, and outbound rules work together. The state of a single toggle cannot confirm that the entire connection path is working as intended.
- System ProxyOperating system proxy settings
- The system proxy registers a proxy listener with the operating system so apps that honor the setting can connect to the local proxy. Some command-line tools, games, and apps with their own network stacks ignore it, so a working browser does not mean every app is covered. Before closing the client, make sure the system proxy setting is restored; otherwise, apps may keep trying to connect to a local port that is no longer listening.
- TUN Modetun.enable / Virtual network interface
- TUN captures IP traffic through a virtual network interface and related routes, including traffic from some apps that ignore system proxy settings. Actual coverage depends on automatic routing, exclusions, system permissions, and DNS settings; enabling
tun.enabledoes not guarantee that every connection is captured.stackselects the network stack implementation, not the rule mode. After enabling TUN, rules can still send traffic direct or through a proxy.
- mixed-portLocal HTTP + SOCKS proxy port
mixed-portlets a single local port accept both HTTP and SOCKS proxy connections, for examplemixed-port: 7890. It serves a different purpose from a remote node port or management API port, and these ports are not interchangeable. Apps must use the correct proxy type and listener address. To allow other devices to connect, also review the listening address, LAN access permissions, and firewall settings.
- Fake-IPdns.enhanced-mode: fake-ip
- Fake-IP mode returns synthetic addresses to apps and maintains a mapping to the corresponding domains, allowing the core to recover the destination domain when a connection is made and apply routing rules. These addresses are not the destination server's real public IPs. DNS queries and subsequent connections must follow the configured traffic-capture path. Some apps that depend on real DNS answers may need entries in
fake-ip-filter, but avoid adding broad exclusions without evidence.
- DNS LeakResolution path / Unexpected resolver
- A DNS leak usually means that queries take an unexpected network path or use an unintended resolver, exposing domain lookup information to an unintended party. Browser Secure DNS, system resolvers, and the core's DNS settings may all be involved; a resolver appearing in a different region does not by itself prove a leak. First establish the intended path, then check whether queries reach the core, how upstream DNS traffic is routed, and whether the app uses its own encrypted DNS.
How it works: TUN Mode vs. System Proxy →
Subscriptions and Configuration Files
Identify the input first, then choose how to import it. A full configuration, a proxy provider, and a share link are different kinds of data.
- Subscription URLRemote configuration / Scheduled updates
- A subscription URL fetches a proxy list or full configuration from a remote server and often contains credentials that identify your account, so treat it as sensitive information. The same HTTPS URL format can return YAML, an encoded list of share links, or another format; the URL suffix alone cannot establish compatibility. After importing, check that the configuration is enabled and policy groups appear, then test a connection. A successful update and working nodes are separate conclusions.
- YAMLIndentation / Keys, values, and lists
- YAML is a common serialization format for mihomo configuration. It uses spaces for indentation and
-for list items. Tabs, duplicate keys, and special characters in unquoted values can cause parse errors or change their meaning. A file that parses is not necessarily a valid configuration; also check field types, core support, and the policy names referenced by rules.
- Configuration Fileconfig.yaml / Runtime settings
- A configuration file defines runtime settings such as local listener ports, DNS, proxies, policy groups, and routing rules.
config.yamlis a common filename, but the extension alone does not determine whether the contents are usable. A GUI client may merge templates and overrides before startup, so the original subscription may differ from the active configuration. Keep a recoverable copy before editing, then check startup logs to avoid mistaking a load failure for a network problem.
- Proxy Providerproxy-providers / use
- A proxy provider loads entries from a local or remote source with
proxy-providers; policy groups then reference it withuse. It usually provides node data only, not DNS, listener ports, or routing rules from a full configuration, so do not assume it can be enabled on its own. Provider update intervals may also be managed separately from the client’s full subscription refresh schedule; check each at the relevant level.
- Subscription ConversionPayload conversion / Target format
- Subscription conversion transforms an input payload into a format the target client can read. Some converters also apply policy-group and rule templates. Conversion cannot supply missing authentication parameters or make a core support protocol fields it does not support. Third-party conversion services can usually access the full subscription URL, so consider the credential exposure risk before using one. First check whether the client can import the original format directly.