mihomo — структура конфигурации
При запуске mihomo читает один YAML-документ. Корневой документ отображается на Go-структуру RawConfig в config/config.go:398. В отличие от Xray и sing-box, верхнеуровневого блока log здесь нет — большинство рабочих переключателей являются плоскими ключами в корне документа, и лишь несколько функциональных областей используют вложенные блоки (dns, tun, profile, …).
Плоские ключи верхнего уровня
Это скалярные поля в корне документа.
| Ключ | Поле Go | Тип | Страница | Описание |
|---|---|---|---|---|
port | Port | int | Основы | Порт HTTP-прокси. |
socks-port | SocksPort | int | Основы | Порт SOCKS-прокси. |
redir-port | RedirPort | int | Основы | Порт входящего Linux REDIRECT. |
tproxy-port | TProxyPort | int | Основы | Порт входящего Linux TPROXY. |
mixed-port | MixedPort | int | Основы | Совмещённый порт HTTP + SOCKS. |
ss-config | ShadowSocksConfig | string | Shadowsocks | URI входящего Shadowsocks. |
vmess-config | VmessConfig | string | VMess | URI входящего VMess. |
inbound-tfo | InboundTfo | bool | Основы | TCP Fast Open для входящих. |
inbound-mptcp | InboundMPTCP | bool | Основы | Multipath TCP для входящих. |
authentication | Authentication | []string | Основы | Список user:pass для аутентификации HTTP/SOCKS. |
skip-auth-prefixes | SkipAuthPrefixes | []netip.Prefix | Основы | CIDR источников, пропускающих аутентификацию. |
lan-allowed-ips | LanAllowedIPs | []netip.Prefix | Основы | Список разрешённых, когда allow-lan равно true. |
lan-disallowed-ips | LanDisAllowedIPs | []netip.Prefix | Основы | Список запрещённых, когда allow-lan равно true. |
allow-lan | AllowLan | bool | Основы | Привязать слушателей к 0.0.0.0/:: вместо localhost. |
bind-address | BindAddress | string | Основы | Переопределение адреса привязки (совместно с allow-lan). |
mode | Mode | T.TunnelMode | Основы | rule / global / direct. |
unified-delay | UnifiedDelay | bool | Основы | Устранить смещение рукопожатия в URL-тестах прокси. |
log-level | LogLevel | log.LogLevel | Журнал | debug / info / warning / error / silent. |
ipv6 | IPv6 | bool | Основы | Включить IPv6 во всём стеке. |
external-controller | ExternalController | string | Внешний контроллер | Адрес прослушивания RESTful API. |
external-controller-pipe | ExternalControllerPipe | string | Внешний контроллер | Путь именованного канала Windows для API. |
external-controller-unix | ExternalControllerUnix | string | Внешний контроллер | Путь Unix-сокета для API. |
external-controller-tls | ExternalControllerTLS | string | Внешний контроллер | Адрес прослушивания с TLS. |
external-controller-cors | ExternalControllerCors | RawCors | Внешний контроллер | Список разрешённых источников CORS. |
external-ui | ExternalUI | string | Внешний контроллер | Каталог статических файлов панели управления. |
external-ui-url | ExternalUIURL | string | Внешний контроллер | URL автозагрузки архива панели управления. |
external-ui-name | ExternalUIName | string | Внешний контроллер | Подкаталог внутри external-ui. |
external-doh-server | ExternalDohServer | string | Внешний контроллер | Конечная точка DoH-сервера, размещаемого самим mihomo. |
secret | Secret | string | Внешний контроллер | Bearer-токен для API. |
interface-name | Interface | string | Основы | Привязка исходящего интерфейса. |
routing-mark | RoutingMark | int | Основы | Linux SO_MARK для исходящих сокетов. |
tunnels | Tunnels | []LC.Tunnel | Tunnel | Статические туннели «порт → цель». |
geo-auto-update | GeoAutoUpdate | bool | Geo-данные | Автообновление файлов geoip/geosite. |
geo-update-interval | GeoUpdateInterval | int | Geo-данные | Интервал автообновления (в часах). |
geodata-mode | GeodataMode | bool | Geo-данные | Использовать geoip.dat вместо Country.mmdb. |
geodata-loader | GeodataLoader | string | Geo-данные | Выбор загрузчика (memconservative или standard). |
geosite-matcher | GeositeMatcher | string | Geo-данные | Реализация сопоставителя. |
tcp-concurrent | TCPConcurrent | bool | Основы | Гонка подключений по A/AAAA. |
find-process-mode | FindProcessMode | process.FindProcessMode | Основы | strict / always / off. |
global-client-fingerprint | GlobalClientFingerprint | string | Основы | uTLS-отпечаток по умолчанию для исходящих. |
global-ua | GlobalUA | string | Основы | HTTP User-Agent по умолчанию. |
etag-support | ETagSupport | bool | Основы | Учитывать ETag при загрузке подписок. |
keep-alive-idle | KeepAliveIdle | int | Основы | Простой TCP keepalive (в секундах). |
keep-alive-interval | KeepAliveInterval | int | Основы | Интервал TCP keepalive (в секундах). |
disable-keep-alive | DisableKeepAlive | bool | Основы | Отключить TCP keepalive. |
Вложенные блоки и списки
| Ключ | Поле Go | Тип | Страница | Описание |
|---|---|---|---|---|
proxy-providers | ProxyProvider | map[string]map[string]any | Группы прокси | Удалённые списки прокси. |
rule-providers | RuleProvider | map[string]map[string]any | Правила | Удалённые наборы правил. |
proxies | Proxy | []map[string]any | Группы прокси | Определения исходящих прокси. |
proxy-groups | ProxyGroup | []map[string]any | Группы прокси | Группы: селектор / URL-тест / аварийное переключение / балансировка нагрузки / ретрансляция. |
rules | Rule | []string | Правила | Правила маршрутизации (компактная строковая форма). |
sub-rules | SubRules | map[string][]string | Правила | Именованные группы подправил. |
listeners | Listeners | []map[string]any | Группы прокси | Произвольные входящие слушатели. |
hosts | Hosts | map[string]any | DNS | Статические DNS-переопределения. |
dns | DNS | RawDNS | DNS | Блок подсистемы DNS. |
ntp | NTP | RawNTP | NTP | Встроенный NTP-клиент. |
tun | Tun | RawTun | TUN | Входящий TUN. |
tuic-server | TuicServer | RawTuicServer | TUIC | Входящий TUIC. |
iptables | IPTables | RawIPTables | iptables | Автонастройка iptables в Linux. |
experimental | Experimental | RawExperimental | Экспериментальное | Отпечатки, настройка QUIC, преобразование IPv4-in-IPv6. |
profile | Profile | RawProfile | Профиль | Сохраняемое состояние (выбранный прокси, кэш fake-ip). |
geox-url | GeoXUrl | RawGeoXUrl | Geo-данные | URL загрузки четырёх файлов geo-данных. |
sniffer | Sniffer | RawSniffer | Сниффер | Сниффинг соединений (TLS SNI, HTTP Host, QUIC). |
tls | TLS | RawTLS | TLS | TLS-материал по умолчанию для входящих. |
clash-for-android | ClashForAndroid | RawClashForAndroid | Clash for Android | Настройки, специфичные для Android-приложения. |
Общий вид
yaml
mode: rule
mixed-port: 7890
allow-lan: false
log-level: info
external-controller: 127.0.0.1:9090
dns:
enable: true
nameserver:
- https://1.1.1.1/dns-query
proxies: []
proxy-groups: []
rules: []Исходный код: config/config.go:398-466 · v1.19.29 (e26714a)
