跳转至

规则条件参考

策略规则和 DNS 规则支持多种匹配条件。本文档列出所有可用的条件及其说明。

域名类条件

条件 sing-box 字段 说明 示例
域名 domain 完整域名匹配 www.google.com
域名后缀 domain_suffix 匹配域名后缀 .google.com
域名关键词 domain_keyword 域名包含关键词 google
域名正则 domain_regex 正则表达式匹配域名 ^.*\.google\..*$

域名匹配规则说明

  • domain — 精确匹配,www.google.com 只匹配这个完整域名
  • domain_suffix — 后缀匹配,.google.com 匹配 www.google.commail.google.com
  • domain_keyword — 包含匹配,google 匹配所有域名中含 google
  • domain_regex — 正则匹配,最灵活但性能最低

网络类条件

条件 sing-box 字段 说明 示例
端口 port 目标端口 443
端口范围 port_range 目标端口范围 80-443
源端口 source_port 来源端口 8080
源端口范围 source_port_range 来源端口范围 1000-2000
网络类型 network TCP 或 UDP tcp
查询类型 query_type DNS 查询类型(仅 DNS 规则) A, AAAA

IP 类条件

条件 sing-box 字段 说明 示例
IP CIDR ip_cidr 目标 IP 段 10.0.0.0/8
源 IP CIDR source_ip_cidr 来源 IP 段 192.168.0.0/16

IP CIDR 语法

  • 10.0.0.0/8 — 匹配所有 10.x.x.x 地址
  • 192.168.0.0/16 — 匹配所有 192.168.x.x 地址
  • 172.16.0.0/12 — 匹配 172.16.x.x172.31.x.x
  • 单个 IP 可以用 /32,如 1.2.3.4/32

进程类条件

条件 sing-box 字段 说明 示例
进程名 process_name 发起连接的进程名 chrome.exe
进程路径 process_path 进程完整路径 C:\Program Files\...\chrome.exe
进程路径正则 process_path_regex 正则匹配进程路径 .*\\chrome\.exe
包名 package_name 应用包名(Android) com.android.chrome

进程匹配限制

  • 进程名匹配仅支持 TUN 模式,系统代理模式下不可用
  • Windows 下进程名不区分大小写
  • 进程路径正则使用 Go 的 RE2 语法

网络环境条件

条件 sing-box 字段 说明
Wi-Fi SSID wifi_ssid 连接的 Wi-Fi 名称
Wi-Fi BSSID wifi_bssid 连接的 Wi-Fi 接入点 MAC
网络计费 network_is_expensive 是否为计费网络(移动数据)
网络受限 network_is_constrained 是否为受限网络
默认接口地址 default_interface_address 默认网络接口 IP 地址

逻辑组合

条件 说明
and 所有子条件同时满足
or 任一子条件满足

示例:匹配 Google 域名 来自 Chrome 进程:

{
  "logical": "and",
  "rules": [
    { "domain_suffix": [".google.com"] },
    { "process_name": ["chrome.exe"] }
  ]
}

更多逻辑组合示例

OR 组合 — 匹配 Google 或 YouTube 域名:

{
  "logical": "or",
  "rules": [
    { "domain_suffix": [".google.com"] },
    { "domain_suffix": [".youtube.com"] }
  ]
}

嵌套组合 — Google 域名且来自 Chrome,或者任何 Telegram 流量:

{
  "logical": "or",
  "rules": [
    {
      "logical": "and",
      "rules": [
        { "domain_suffix": [".google.com"] },
        { "process_name": ["chrome.exe"] }
      ]
    },
    { "domain_keyword": ["telegram"] }
  ]
}

其他

条件 sing-box 字段 说明
规则集 rule_set 引用规则集(GeoIP / GeoSite / 自定义)
反转 invert 反转匹配结果,匹配到的不命中

反转条件的用法

invert 适用于排除场景。例如,匹配"非 Chrome 进程"的所有流量:

{
  "process_name": ["chrome.exe"],
  "invert": true
}
这会匹配除 Chrome 以外的所有进程。

出站方式

规则命中后可选择的出站方式:

出站 说明
直连 不经过代理,直接连接
代理 通过代理节点连接
拦截 阻止连接