github.com/sagernet/sing-box@v1.9.0-rc.20/docs/configuration/dns/rule.zh.md (about)

     1  ---
     2  icon: material/new-box
     3  ---
     4  
     5  !!! quote "sing-box 1.9.0 中的更改"
     6  
     7      :material-plus: [geoip](#geoip)  
     8      :material-plus: [ip_cidr](#ip_cidr)  
     9      :material-plus: [ip_is_private](#ip_is_private)  
    10      :material-plus: [client_subnet](#client_subnet)
    11      :material-plus: [rule_set_ipcidr_match_source](#rule_set_ipcidr_match_source)
    12  
    13  !!! quote "sing-box 1.8.0 中的更改"
    14  
    15      :material-plus: [rule_set](#rule_set)  
    16      :material-plus: [source_ip_is_private](#source_ip_is_private)  
    17      :material-delete-clock: [geoip](#geoip)  
    18      :material-delete-clock: [geosite](#geosite)
    19  
    20  ### 结构
    21  
    22  ```json
    23  {
    24    "dns": {
    25      "rules": [
    26        {
    27          "inbound": [
    28            "mixed-in"
    29          ],
    30          "ip_version": 6,
    31          "query_type": [
    32            "A",
    33            "HTTPS",
    34            32768
    35          ],
    36          "network": "tcp",
    37          "auth_user": [
    38            "usera",
    39            "userb"
    40          ],
    41          "protocol": [
    42            "tls",
    43            "http",
    44            "quic"
    45          ],
    46          "domain": [
    47            "test.com"
    48          ],
    49          "domain_suffix": [
    50            ".cn"
    51          ],
    52          "domain_keyword": [
    53            "test"
    54          ],
    55          "domain_regex": [
    56            "^stun\\..+"
    57          ],
    58          "geosite": [
    59            "cn"
    60          ],
    61          "source_geoip": [
    62            "private"
    63          ],
    64          "geoip": [
    65            "cn"
    66          ],
    67          "source_ip_cidr": [
    68            "10.0.0.0/24",
    69            "192.168.0.1"
    70          ],
    71          "source_ip_is_private": false,
    72          "ip_cidr": [
    73            "10.0.0.0/24",
    74            "192.168.0.1"
    75          ],
    76          "ip_is_private": false,
    77          "source_port": [
    78            12345
    79          ],
    80          "source_port_range": [
    81            "1000:2000",
    82            ":3000",
    83            "4000:"
    84          ],
    85          "port": [
    86            80,
    87            443
    88          ],
    89          "port_range": [
    90            "1000:2000",
    91            ":3000",
    92            "4000:"
    93          ],
    94          "process_name": [
    95            "curl"
    96          ],
    97          "process_path": [
    98            "/usr/bin/curl"
    99          ],
   100          "package_name": [
   101            "com.termux"
   102          ],
   103          "user": [
   104            "sekai"
   105          ],
   106          "user_id": [
   107            1000
   108          ],
   109          "clash_mode": "direct",
   110          "wifi_ssid": [
   111            "My WIFI"
   112          ],
   113          "wifi_bssid": [
   114            "00:00:00:00:00:00"
   115          ],
   116          "rule_set": [
   117            "geoip-cn",
   118            "geosite-cn"
   119          ],
   120          "rule_set_ipcidr_match_source": false,
   121          "invert": false,
   122          "outbound": [
   123            "direct"
   124          ],
   125          "server": "local",
   126          "disable_cache": false,
   127          "client_subnet": "127.0.0.1/24"
   128        },
   129        {
   130          "type": "logical",
   131          "mode": "and",
   132          "rules": [],
   133          "server": "local",
   134          "disable_cache": false,
   135          "client_subnet": "127.0.0.1/24"
   136        }
   137      ]
   138    }
   139  }
   140  
   141  ```
   142  
   143  !!! note ""
   144  
   145      当内容只有一项时,可以忽略 JSON 数组 [] 标签
   146  
   147  ### 默认字段
   148  
   149  !!! note ""
   150  
   151      默认规则使用以下匹配逻辑:  
   152      (`domain` || `domain_suffix` || `domain_keyword` || `domain_regex` || `geosite`) &&  
   153      (`port` || `port_range`) &&  
   154      (`source_geoip` || `source_ip_cidr` || `source_ip_is_private`) &&  
   155      (`source_port` || `source_port_range`) &&  
   156      `other fields`
   157  
   158      另外,引用的规则集可视为被合并,而不是作为一个单独的规则子项。
   159  
   160  #### inbound
   161  
   162  [入站](/zh/configuration/inbound/) 标签.
   163  
   164  #### ip_version
   165  
   166  4 (A DNS 查询) 或 6 (AAAA DNS 查询)。
   167  
   168  默认不限制。
   169  
   170  #### query_type
   171  
   172  DNS 查询类型。值可以为整数或者类型名称字符串。
   173  
   174  #### network
   175  
   176  `tcp` 或 `udp`。
   177  
   178  #### auth_user
   179  
   180  认证用户名,参阅入站设置。
   181  
   182  #### protocol
   183  
   184  探测到的协议, 参阅 [协议探测](/zh/configuration/route/sniff/)。
   185  
   186  #### domain
   187  
   188  匹配完整域名。
   189  
   190  #### domain_suffix
   191  
   192  匹配域名后缀。
   193  
   194  #### domain_keyword
   195  
   196  匹配域名关键字。
   197  
   198  #### domain_regex
   199  
   200  匹配域名正则表达式。
   201  
   202  #### geosite
   203  
   204  !!! failure "已在 sing-box 1.8.0 废弃"
   205  
   206      Geosite 已废弃且可能在不久的将来移除,参阅 [迁移指南](/zh/migration/#geosite)。
   207  
   208  匹配 Geosite。
   209  
   210  #### source_geoip
   211  
   212  !!! failure "已在 sing-box 1.8.0 废弃"
   213  
   214      GeoIP 已废弃且可能在不久的将来移除,参阅 [迁移指南](/zh/migration/#geoip)。
   215  
   216  匹配源 GeoIP。
   217  
   218  #### source_ip_cidr
   219  
   220  匹配源 IP CIDR。
   221  
   222  #### source_ip_is_private
   223  
   224  !!! question "自 sing-box 1.8.0 起"
   225  
   226  匹配非公开源 IP。
   227  
   228  #### source_port
   229  
   230  匹配源端口。
   231  
   232  #### source_port_range
   233  
   234  匹配源端口范围。
   235  
   236  #### port
   237  
   238  匹配端口。
   239  
   240  #### port_range
   241  
   242  匹配端口范围。
   243  
   244  #### process_name
   245  
   246  !!! quote ""
   247  
   248      仅支持 Linux、Windows 和 macOS.
   249  
   250  匹配进程名称。
   251  
   252  #### process_path
   253  
   254  !!! quote ""
   255  
   256      仅支持 Linux、Windows 和 macOS.
   257  
   258  匹配进程路径。
   259  
   260  #### package_name
   261  
   262  匹配 Android 应用包名。
   263  
   264  #### user
   265  
   266  !!! quote ""
   267  
   268      仅支持 Linux。
   269  
   270  匹配用户名。
   271  
   272  #### user_id
   273  
   274  !!! quote ""
   275  
   276      仅支持 Linux。
   277  
   278  匹配用户 ID。
   279  
   280  #### clash_mode
   281  
   282  匹配 Clash 模式。
   283  
   284  #### wifi_ssid
   285  
   286  !!! quote ""
   287  
   288      仅在 Android 与 Apple 平台图形客户端中支持。
   289  
   290  匹配 WiFi SSID。
   291  
   292  #### wifi_bssid
   293  
   294  !!! quote ""
   295  
   296      仅在 Android 与 Apple 平台图形客户端中支持。
   297  
   298  匹配 WiFi BSSID。
   299  
   300  #### rule_set
   301  
   302  !!! question "自 sing-box 1.8.0 起"
   303  
   304  匹配[规则集](/zh/configuration/route/#rule_set)。
   305  
   306  #### rule_set_ipcidr_match_source
   307  
   308  !!! question "自 sing-box 1.9.0 起"
   309  
   310  使规则集中的 `ipcidr` 规则匹配源 IP。
   311  
   312  #### invert
   313  
   314  反选匹配结果。
   315  
   316  #### outbound
   317  
   318  匹配出站。
   319  
   320  `any` 可作为值用于匹配任意出站。
   321  
   322  #### server
   323  
   324  ==必填==
   325  
   326  目标 DNS 服务器的标签。
   327  
   328  #### disable_cache
   329  
   330  在此查询中禁用缓存。
   331  
   332  #### rewrite_ttl
   333  
   334  重写 DNS 回应中的 TTL。
   335  
   336  #### client_subnet
   337  
   338  !!! question "自 sing-box 1.9.0 起"
   339  
   340  默认情况下,将带有指定 IP 前缀的 `edns0-subnet` OPT 附加记录附加到每个查询。
   341  
   342  如果值是 IP 地址而不是前缀,则会自动附加 `/32` 或 `/128`。
   343  
   344  将覆盖 `dns.client_subnet` 与 `servers.[].client_subnet`。
   345  
   346  ### 地址筛选字段
   347  
   348  仅对IP地址请求生效。 当查询结果与地址筛选规则项不匹配时,将跳过当前规则。
   349  
   350  !!! info ""
   351  
   352      引用的规则集中的 `ip_cidr` 项也作为地址筛选字段生效。
   353  
   354  !!! note ""
   355  
   356      启用 `experimental.cache_file.store_rdrc` 以缓存结果。
   357  
   358  #### geoip
   359  
   360  !!! question "自 sing-box 1.9.0 起"
   361  
   362  与查询响应匹配 GeoIP。
   363  
   364  #### ip_cidr
   365  
   366  !!! question "自 sing-box 1.9.0 起"
   367  
   368  与查询相应匹配 IP CIDR。
   369  
   370  #### ip_is_private
   371  
   372  !!! question "自 sing-box 1.9.0 起"
   373  
   374  与查询响应匹配非公开 IP。
   375  
   376  ### 逻辑字段
   377  
   378  #### type
   379  
   380  `logical`
   381  
   382  #### mode
   383  
   384  `and` 或 `or`
   385  
   386  #### rules
   387  
   388  包括的规则。