# mihomo (MetaCubeX)

A rule-based proxy/tunnel tool, originally forked from Clash. mihomo (formerly Clash.Meta) routes network traffic through proxy chains based on configurable rules — domain matching, IP ranges, geo databases, process names, etc. Think of it as a programmable network router that sits between your device and the internet.

**Supported proxy protocols:** Shadowsocks, VMess, VLESS, Trojan, Hysteria2, TUIC, WireGuard, SSH, and others. Supports TLS and various transport layers (WebSocket, gRPC, HTTP/2).

**Core features:**
- Rule-based traffic routing — match by domain, IP, process, geoip database, and route to different proxy groups
- Proxy groups with load balancing, failover, URL testing, and relay (chaining)
- DNS server with multiple resolvers, fake-ip mode, domain sniffing
- TUN mode — creates a virtual network interface to capture all system traffic transparently
- Inbound listeners: HTTP, SOCKS5, mixed, TUN, redirect, tproxy
- Web dashboard for monitoring and control
- REST API

**Configuration:** YAML-based. You define proxies, proxy groups, rules, DNS settings, and listeners in a single config file. The rule engine is the core — it decides which traffic goes through which proxy (or direct).

**Use cases:** bypassing geo-restrictions, routing work traffic through a VPN while keeping personal traffic direct, DNS-level ad blocking, transparent proxy for a whole network via TUN mode.

**Install:** download binary from GitHub releases, run as a systemd service on Linux. Also works on macOS, Windows, Android (via third-party clients like ClashVerge, Metacubexd dashboard).

**Related:** [[wirez]] also deals with routing traffic through proxies, but wirez is per-process (Linux namespaces) while mihomo is system-wide (rule-based routing). For Russian censorship circumvention, [[russia-v2ray-rules-dat]] provides auto-updated geoip/geosite rule files compatible with mihomo. On the server side, [[3x-ui]] is a web panel for managing Xray-core — it handles the proxy server that mihomo connects to. The main alternative core in the same slot is [[sing-box]], which [[karing]] wraps in a Flutter GUI — functionally overlapping with mihomo but JSON-configured and more aggressive about adopting newer protocols like Hysteria2 and TUIC.

**Wiki/Docs:** https://wiki.metacubex.one/en/

**Repo:** https://github.com/MetaCubeX/mihomo — Go, MIT license.
