Синтаксис
Mihomo использует yaml в качестве формата конфигурационного файла
yaml чувствителен к регистру, использует отступы для обозначения иерархических отношений. Для отступов запрещено использовать табуляцию, разрешены только пробелы. Количество пробелов в отступе не имеет значения, главное, чтобы элементы одного уровня были выровнены по левому краю.
Комментарии
Заголовок раздела «Комментарии»В файлах формата yaml комментарии начинаются с символа ”#” и продолжаются до конца строки. Символ ”#” должен быть либо в начале строки, либо перед ним должен быть пробел, иначе он не будет считаться комментарием.
port: 7890 # http прокси портsocks-port: 7891# socks прокси портОбъекты
Заголовок раздела «Объекты»Пары ключ-значение в объектах обозначаются двоеточием key: value, после двоеточия должен быть пробел. Отступы используются для обозначения иерархических отношений.
Поскольку формат yaml является надмножеством json, можно напрямую использовать синтаксис json.
Многострочный формат
Заголовок раздела «Многострочный формат»tun: enable: true stack: system auto-route: true auto-detect-interface: trueМногострочный JSON
Заголовок раздела «Многострочный JSON»tun: { enable: true, stack: system, auto-route: true, auto-detect-interface: true }Однострочный JSON
Заголовок раздела «Однострочный JSON»tun: { enable: true, stack: system, auto-route: true, auto-detect-interface: true}Полный JSON
Заголовок раздела «Полный JSON»{ "tun": { "enable": true, "stack": "system", "auto-route": true, "auto-detect-interface": true }}Массивы
Заголовок раздела «Массивы»Строки, начинающиеся с -, обозначают элементы массива, используются для нескольких значений внутри объекта.
Многострочный массив
Заголовок раздела «Многострочный массив»a: - b - c - dОднострочный JSON массив
Заголовок раздела «Однострочный JSON массив»a: [b, c, d]& якорь и * псевдоним могут использоваться для создания ссылок. & используется для установки якоря, << для объединения с текущими данными, а * для ссылки на якорь.
В следующем примере, поскольку ключ p не существует в mihomo, он будет проигнорирован при обработке конфигурации.
Если при объединении есть повторяющиеся элементы, они не будут объединены.
p: &p type: http interval: 3600 health-check: enable: true url: https://www.gstatic.com/generate_204 interval: 300
proxy-providers: provider1: <<: *p url: "" path: ./proxy_providers/provider1.yaml
provider2: <<: *p type: file path: ./proxy_providers/provider2.yamlЭто эквивалентно:
proxy-providers: provider1: type: http interval: 3600 health-check: enable: true url: https://www.gstatic.com/generate_204 interval: 300 url: "" path: ./proxy_providers/provider1.yaml
provider2: interval: 3600 health-check: enable: true url: https://www.gstatic.com/generate_204 interval: 300 type: file path: ./proxy_providers/provider2.yamlПодстановочные знаки для доменов
Заголовок раздела «Подстановочные знаки для доменов»Подстановочный знак *
Заголовок раздела «Подстановочный знак *»Подстановочный знак * в Clash может сопоставить только один уровень домена за раз.
*.baidu.com соответствует tieba.baidu.com, но не соответствует 123.tieba.baidu.com или baidu.com.
* соответствует только таким именам хостов, как localhost, которые не содержат точку ..
Подстановочный знак +
Заголовок раздела «Подстановочный знак +»Подстановочный знак + похож на DOMAIN-SUFFIX и может сопоставлять несколько уровней за раз.
+.baidu.com соответствует tieba.baidu.com, 123.tieba.baidu.com и baidu.com.
Подстановочный знак + может использоваться только для сопоставления префикса домена.
Подстановочный знак .
Заголовок раздела «Подстановочный знак .»Подстановочный знак . может сопоставлять несколько уровней за раз.
.baidu.com соответствует tieba.baidu.com и 123.tieba.baidu.com, но не соответствует baidu.com.
Подстановочный знак . может использоваться только для сопоставления префикса домена.
Пример использования
Заголовок раздела «Пример использования»При использовании подстановочных знаков следует заключать содержимое в кавычки ' ' или " ".
fake-ip-filter:- ".lan"- "xbox.*.microsoft.com"- "+.xboxlive.com"- localhost.ptlogin2.qq.comИспользование наборов доменов
Заголовок раздела «Использование наборов доменов»fake-ip-filter:- "rule-set:xxx"- "geosite:xxx"Диапазоны портов
Заголовок раздела «Диапазоны портов»Mihomo может использовать - для сопоставления диапазонов портов, а также / или , для разделения нескольких портов/диапазонов портов.
Сопоставление портов от 114 до 514 и от 810 до 1919, а также порта 65530.
114-514/810-1919,65530