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 包括的规则。