!!! question "Since sing-box 1.8.0"
{
"rules": [
{
"query_type": [
"A",
"HTTPS",
32768
],
"network": [
"tcp"
],
"domain": [
"test.com"
],
"domain_suffix": [
".cn"
],
"domain_keyword": [
"test"
],
"domain_regex": [
"^stun\\..+"
],
"source_ip_cidr": [
"10.0.0.0/24",
"192.168.0.1"
],
"ip_cidr": [
"10.0.0.0/24",
"192.168.0.1"
],
"source_port": [
12345
],
"source_port_range": [
"1000:2000",
":3000",
"4000:"
],
"port": [
80,
443
],
"port_range": [
"1000:2000",
":3000",
"4000:"
],
"process_name": [
"curl"
],
"process_path": [
"/usr/bin/curl"
],
"package_name": [
"com.termux"
],
"wifi_ssid": [
"My WIFI"
],
"wifi_bssid": [
"00:00:00:00:00:00"
],
"invert": false
},
{
"type": "logical",
"mode": "and",
"rules": [],
"invert": false
}
]
}
!!! note ""
You can ignore the JSON Array [] tag when the content is only one item
!!! note ""
The default rule uses the following matching logic:
(`domain` || `domain_suffix` || `domain_keyword` || `domain_regex` || `ip_cidr`) &&
(`port` || `port_range`) &&
(`source_port` || `source_port_range`) &&
`other fields`
DNS query type. Values can be integers or type name strings.
tcp
or udp
.
Match full domain.
Match domain suffix.
Match domain using keyword.
Match domain using regular expression.
Match source IP CIDR.
!!! info ""
`ip_cidr` is an alias for `source_ip_cidr` when the Rule Set is used in DNS rules or `rule_set_ipcidr_match_source` enabled in route rules.
Match IP CIDR.
Match source port.
Match source port range.
Match port.
Match port range.
!!! quote ""
Only supported on Linux, Windows, and macOS.
Match process name.
!!! quote ""
Only supported on Linux, Windows, and macOS.
Match process path.
Match android package name.
!!! quote ""
Only supported in graphical clients on Android and iOS.
Match WiFi SSID.
!!! quote ""
Only supported in graphical clients on Android and iOS.
Match WiFi BSSID.
Invert match result.
logical
==Required==
and
or or
==Required==
Included rules.