Skip to content

mihomo — структура конфигурации

При запуске mihomo читает один YAML-документ. Корневой документ отображается на Go-структуру RawConfig в config/config.go:398. В отличие от Xray и sing-box, верхнеуровневого блока log здесь нет — большинство рабочих переключателей являются плоскими ключами в корне документа, и лишь несколько функциональных областей используют вложенные блоки (dns, tun, profile, …).

Плоские ключи верхнего уровня

Это скалярные поля в корне документа.

КлючПоле GoТипСтраницаОписание
portPortintОсновыПорт HTTP-прокси.
socks-portSocksPortintОсновыПорт SOCKS-прокси.
redir-portRedirPortintОсновыПорт входящего Linux REDIRECT.
tproxy-portTProxyPortintОсновыПорт входящего Linux TPROXY.
mixed-portMixedPortintОсновыСовмещённый порт HTTP + SOCKS.
ss-configShadowSocksConfigstringShadowsocksURI входящего Shadowsocks.
vmess-configVmessConfigstringVMessURI входящего VMess.
inbound-tfoInboundTfoboolОсновыTCP Fast Open для входящих.
inbound-mptcpInboundMPTCPboolОсновыMultipath TCP для входящих.
authenticationAuthentication[]stringОсновыСписок user:pass для аутентификации HTTP/SOCKS.
skip-auth-prefixesSkipAuthPrefixes[]netip.PrefixОсновыCIDR источников, пропускающих аутентификацию.
lan-allowed-ipsLanAllowedIPs[]netip.PrefixОсновыСписок разрешённых, когда allow-lan равно true.
lan-disallowed-ipsLanDisAllowedIPs[]netip.PrefixОсновыСписок запрещённых, когда allow-lan равно true.
allow-lanAllowLanboolОсновыПривязать слушателей к 0.0.0.0/:: вместо localhost.
bind-addressBindAddressstringОсновыПереопределение адреса привязки (совместно с allow-lan).
modeModeT.TunnelModeОсновыrule / global / direct.
unified-delayUnifiedDelayboolОсновыУстранить смещение рукопожатия в URL-тестах прокси.
log-levelLogLevellog.LogLevelЖурналdebug / info / warning / error / silent.
ipv6IPv6boolОсновыВключить IPv6 во всём стеке.
external-controllerExternalControllerstringВнешний контроллерАдрес прослушивания RESTful API.
external-controller-pipeExternalControllerPipestringВнешний контроллерПуть именованного канала Windows для API.
external-controller-unixExternalControllerUnixstringВнешний контроллерПуть Unix-сокета для API.
external-controller-tlsExternalControllerTLSstringВнешний контроллерАдрес прослушивания с TLS.
external-controller-corsExternalControllerCorsRawCorsВнешний контроллерСписок разрешённых источников CORS.
external-uiExternalUIstringВнешний контроллерКаталог статических файлов панели управления.
external-ui-urlExternalUIURLstringВнешний контроллерURL автозагрузки архива панели управления.
external-ui-nameExternalUINamestringВнешний контроллерПодкаталог внутри external-ui.
external-doh-serverExternalDohServerstringВнешний контроллерКонечная точка DoH-сервера, размещаемого самим mihomo.
secretSecretstringВнешний контроллерBearer-токен для API.
interface-nameInterfacestringОсновыПривязка исходящего интерфейса.
routing-markRoutingMarkintОсновыLinux SO_MARK для исходящих сокетов.
tunnelsTunnels[]LC.TunnelTunnelСтатические туннели «порт → цель».
geo-auto-updateGeoAutoUpdateboolGeo-данныеАвтообновление файлов geoip/geosite.
geo-update-intervalGeoUpdateIntervalintGeo-данныеИнтервал автообновления (в часах).
geodata-modeGeodataModeboolGeo-данныеИспользовать geoip.dat вместо Country.mmdb.
geodata-loaderGeodataLoaderstringGeo-данныеВыбор загрузчика (memconservative или standard).
geosite-matcherGeositeMatcherstringGeo-данныеРеализация сопоставителя.
tcp-concurrentTCPConcurrentboolОсновыГонка подключений по A/AAAA.
find-process-modeFindProcessModeprocess.FindProcessModeОсновыstrict / always / off.
global-client-fingerprintGlobalClientFingerprintstringОсновыuTLS-отпечаток по умолчанию для исходящих.
global-uaGlobalUAstringОсновыHTTP User-Agent по умолчанию.
etag-supportETagSupportboolОсновыУчитывать ETag при загрузке подписок.
keep-alive-idleKeepAliveIdleintОсновыПростой TCP keepalive (в секундах).
keep-alive-intervalKeepAliveIntervalintОсновыИнтервал TCP keepalive (в секундах).
disable-keep-aliveDisableKeepAliveboolОсновыОтключить TCP keepalive.

Вложенные блоки и списки

КлючПоле GoТипСтраницаОписание
proxy-providersProxyProvidermap[string]map[string]anyГруппы проксиУдалённые списки прокси.
rule-providersRuleProvidermap[string]map[string]anyПравилаУдалённые наборы правил.
proxiesProxy[]map[string]anyГруппы проксиОпределения исходящих прокси.
proxy-groupsProxyGroup[]map[string]anyГруппы проксиГруппы: селектор / URL-тест / аварийное переключение / балансировка нагрузки / ретрансляция.
rulesRule[]stringПравилаПравила маршрутизации (компактная строковая форма).
sub-rulesSubRulesmap[string][]stringПравилаИменованные группы подправил.
listenersListeners[]map[string]anyГруппы проксиПроизвольные входящие слушатели.
hostsHostsmap[string]anyDNSСтатические DNS-переопределения.
dnsDNSRawDNSDNSБлок подсистемы DNS.
ntpNTPRawNTPNTPВстроенный NTP-клиент.
tunTunRawTunTUNВходящий TUN.
tuic-serverTuicServerRawTuicServerTUICВходящий TUIC.
iptablesIPTablesRawIPTablesiptablesАвтонастройка iptables в Linux.
experimentalExperimentalRawExperimentalЭкспериментальноеОтпечатки, настройка QUIC, преобразование IPv4-in-IPv6.
profileProfileRawProfileПрофильСохраняемое состояние (выбранный прокси, кэш fake-ip).
geox-urlGeoXUrlRawGeoXUrlGeo-данныеURL загрузки четырёх файлов geo-данных.
snifferSnifferRawSnifferСнифферСниффинг соединений (TLS SNI, HTTP Host, QUIC).
tlsTLSRawTLSTLSTLS-материал по умолчанию для входящих.
clash-for-androidClashForAndroidRawClashForAndroidClash 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)

Core Tutorial от Argsment