语法¶
mihomo 使用 yaml
作为配置文件格式
yaml
大小写敏感,使用缩进表示层级关系,缩进不允许使用 tab, 只允许空格,缩进的空格数不重要,只要相同层级的元素左对齐即可
注释¶
在 yaml
格式的文件中,以"#"作为注释开头,行尾为结尾,"#"必须在行头或者必须在前方有空格,否则不视为注释
对象¶
对象键值对使用冒号结构表示key: value
,冒号后面要加一个空格,使用缩进表示层级关系
因yaml
格式为json
的超集,所以可以直接使用json
的写法
多行¶
多行 json¶
单行 json¶
全 json¶
数组¶
以-
开头的行表示构成一个数组,用于一个对象内的多个值
多行数组¶
单行 json 数组¶
引用¶
&
锚点和 *
别名,可以用来引用,&
用来建立锚点,<<
表示合并到当前数据,*
用来引用锚点
如下示例中,因p
这个键在mihomo
中不存在,所以在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 仅支持 behavior 为 domain/classical
端口范围¶
mihomo 可以使用 -
来匹配端口范围,使用 /
或者 ,
来区分多个端口/端口范围
示例¶
匹配 114 到 514 和 810 到 1919 端口,以及 65530 端口