mihomo
TERM-A01The current name for the Clash Meta core — the actual engine that handles traffic, matches rules, and maintains node connections. The GUI client is just a shell wrapped around it. The "core version" shown in settings refers to this.
PARTS INDEX / Terminology Map
Know your parts before you build. This page organizes 26 frequently used terms into 5 categories, each explained in 2-4 sentences: what it is, where it shows up, and what it pairs with. Come back here anytime a tutorial throws an unfamiliar word at you.
SECTION A / Core Components
The core does the work, the client is the shell, and the subscription is the raw material. Get this relationship straight and error messages will start making sense.
The current name for the Clash Meta core — the actual engine that handles traffic, matches rules, and maintains node connections. The GUI client is just a shell wrapped around it. The "core version" shown in settings refers to this.
A graphical front-end such as Clash Plus, Clash Verge Rev, or FlClash. It launches the core, imports subscriptions, and switches nodes for you, turning command-line work into button clicks. Beginners should always start with a GUI client.
An HTTPS URL given to you by your provider. The client fetches it periodically to retrieve a config containing all available nodes. This link acts as an account credential — don't share it publicly. If it stops working, reset it from the provider's dashboard; the old link is invalidated.
Community slang for a service that sells node subscriptions. You pay, and it gives you a subscription link and nodes. This site doesn't review specific providers — it only covers how to get a subscription running in a client.
A local HTTP interface exposed by the core, configured via the external-controller field, commonly at 127.0.0.1:9090. Dashboards and web panels use it to read the node list and switch proxy groups. Keeping it on localhost is fine — just don't accidentally expose it to 0.0.0.0 on the public internet.
SECTION B / Proxy Protocols
The protocol determines how traffic is packaged and encrypted. You don't need to understand the internals for daily use — just recognize the names and know their quirks.
A long-standing encrypted proxy protocol, abbreviated SS. Simple, low-overhead, and supported by nearly every client. Nodes starting with ss:// in a subscription use it — one of the least fussy options around.
The native protocol from the V2Ray project, using UUID-based authentication and timestamp verification. It offers more features than SS, but a clock drift of more than about 90 seconds will cause the handshake to fail outright — if a VMess node won't connect, check your system clock first.
A leaner successor to VMess: it drops built-in encryption and hands that job to the TLS layer, often paired with transports like Reality. Lower overhead has made it the protocol of choice for many newer nodes.
A protocol that disguises proxy traffic as ordinary HTTPS, requiring a valid certificate and usually running on port 443, which makes its traffic hard to fingerprint. Nodes labeled trojan in their name use this protocol.
A QUIC-based (UDP) high-speed protocol optimized for throughput on lossy connections. It requires a client running the mihomo core to work — an "unsupported" error on an older core isn't a mistake on your part, it's just a mismatched part.
SECTION C / Rules & Routing
Routing is Clash's signature feature. These six terms all deal with one question: where does a given piece of traffic end up going out?
The rules section of a config file: one rule per line, matched top to bottom, with the first match winning. The format is "type,value,outbound", e.g. DOMAIN-SUFFIX,youtube.com,PROXY. Line order is priority — get the order wrong and traffic gets routed wrong.
Nodes bundled together by purpose. Common types: manual selection select, auto speed test url-test, and failover fallback. Rule outbounds usually point to a group name rather than a specific node, so switching nodes is just a click inside the group — no need to touch the rules.
A rule type matched by IP geolocation, relying on a built-in GeoIP database. The classic example, GEOIP,CN,DIRECT, sends traffic direct when the destination is a mainland China IP. The database can be updated manually from client settings.
A rule type matched against domain category lists — for example, GEOSITE,category-ads-all,REJECT blocks an entire batch of ad domains in one line. Far less work than listing domains one by one, and the category lists are maintained by the community and updated alongside the core.
The client sends a request to a test URL (often Google's generate_204) and records the round-trip time in milliseconds. Proxy groups of type url-test use this to auto-select the fastest node. Note: this number only reflects handshake speed, not download speed.
Two built-in outbound policies: DIRECT connects without going through a proxy, and REJECT blocks the connection outright — no attempt is even made. Sending domestic traffic to DIRECT and ad domains to REJECT is one of the most common routing combos.
SECTION D / Config File Fields
The config file is the assembly blueprint for this setup. Understand these five fields and you can fix most errors yourself just by checking against the diagram.
The text format used by Clash config files, relying on indentation to express hierarchy — indentation must use spaces only. If a manually edited config throws an error, nine times out of ten it's a stray tab or a missing space; align it, save, and if that breaks something, roll back to the previous step.
The mixed listening port shared by HTTP and SOCKS5 proxies, commonly defaulting to 7890. Browser extensions and system proxy settings point to it. A "bind failed" error at startup usually means another program has already claimed that port — change the port number or free it up.
The tun section of a config. Once enabled, the core creates a virtual network adapter and captures all system traffic, including apps that ignore proxy settings. It requires administrator or system-level permission, and you only need to enable this or "system proxy" — not both at once.
The dns section controls how domain names are resolved. When enhanced-mode is set to fake-ip, the core returns a placeholder IP first and defers actual resolution to the outbound side — this speeds things up and helps prevent DNS tampering. Remember to flush your system DNS cache after switching modes.
Controls whether other devices on the local network can connect and share the proxy. Set to true, a phone can enter the computer's LAN IP and port to use the same connection. Don't enable this on public Wi-Fi; whether your dorm network counts as trusted is up to you and your roommates.
SECTION E / Networking Basics
These concepts aren't unique to Clash, but they come up constantly when troubleshooting. Understand them and half of any forum thread will make sense.
A remote server that relays traffic, shown as a selectable entry in a subscription. The region and multiplier labels in the name are set by the provider and vary widely in format. Low latency doesn't mean high speed — test before you pick.
The round-trip time in milliseconds for a request. It matters for gaming and video calls; download speed is about bandwidth, a different thing entirely. Three-digit latency still browses fine — no need to stress over the number.
An OS-level proxy setting. Once enabled, browsers and other apps that respect system settings automatically route traffic through Clash's mixed port. Some apps ignore this setting entirely, which is when TUN mode comes into play.
Traffic goes through the proxy, but domain resolution is still sent to the local ISP's DNS, exposing which sites you've visited. Enabling TUN mode or Fake-IP, letting the core handle DNS, prevents this. A DNS leak test site can confirm it for yourself.
Windows Store apps (UWP) are blocked by default from connecting to the local loopback address, so they bypass the local proxy. Use the client's built-in "UWP loopback exemption" tool and check the box for the affected app to allow it. An old, well-known gotcha.
NEXT STEP / Next Up
Pick a client for your platform and follow the illustrated guide from importing a subscription to confirming it's working — about ten minutes start to finish.