Синтаксис¶
Mihomo использует yaml
в качестве формата конфигурационного файла
yaml
чувствителен к регистру, использует отступы для обозначения иерархических отношений. Для отступов запрещено использовать табуляцию, разрешены только пробелы. Количество пробелов в отступе не имеет значения, главное, чтобы элементы одного уровня были выровнены по левому краю.
Комментарии¶
В файлах формата yaml
комментарии начинаются с символа "#" и продолжаются до конца строки. Символ "#" должен быть либо в начале строки, либо перед ним должен быть пробел, иначе он не будет считаться комментарием.
Объекты¶
Пары ключ-значение в объектах обозначаются двоеточием key: value
, после двоеточия должен быть пробел. Отступы используются для обозначения иерархических отношений.
Поскольку формат yaml
является надмножеством json
, можно напрямую использовать синтаксис json
.
Многострочный формат¶
Многострочный JSON¶
Однострочный JSON¶
Полный JSON¶
Массивы¶
Строки, начинающиеся с -
, обозначают элементы массива, используются для нескольких значений внутри объекта.
Многострочный массив¶
Однострочный JSON массив¶
Ссылки¶
&
якорь и *
псевдоним могут использоваться для создания ссылок. &
используется для установки якоря, <<
для объединения с текущими данными, а *
для ссылки на якорь.
В следующем примере, поскольку ключ p
не существует в mihomo
, он будет проигнорирован при обработке конфигурации.
Если при объединении есть повторяющиеся элементы, они не будут объединены.
Это эквивалентно:
Подстановочные знаки для доменов¶
Подстановочный знак *
¶
Подстановочный знак *
в 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
.
Подстановочный знак .
может использоваться только для сопоставления префикса домена.
Пример использования¶
При использовании подстановочных знаков следует заключать содержимое в кавычки ' '
или " "
.
Использование наборов доменов¶
Warning
rule-set поддерживает только поведение domain/classical
Диапазоны портов¶
Mihomo может использовать -
для сопоставления диапазонов портов, а также /
или ,
для разделения нескольких портов/диапазонов портов.
Пример¶
Сопоставление портов от 114 до 514 и от 810 до 1919, а также порта 65530.