Back to Sing Box

Rule Action

docs/configuration/dns/rule_action.md

1.13.112.7 KB
Original Source

!!! quote "Changes in sing-box 1.12.0"

:material-plus: [strategy](#strategy)  
:material-plus: [predefined](#predefined)

!!! question "Since sing-box 1.11.0"

route

json
{
  "action": "route",  // default
  "server": "",
  "strategy": "",
  "disable_cache": false,
  "rewrite_ttl": null,
  "client_subnet": null
}

route inherits the classic rule behavior of routing DNS requests to the specified server.

server

==Required==

Tag of target server.

strategy

!!! question "Since sing-box 1.12.0"

Set domain strategy for this query.

One of prefer_ipv4 prefer_ipv6 ipv4_only ipv6_only.

disable_cache

Disable cache and save cache in this query.

rewrite_ttl

Rewrite TTL in DNS responses.

client_subnet

Append a edns0-subnet OPT extra record with the specified IP prefix to every query by default.

If value is an IP address instead of prefix, /32 or /128 will be appended automatically.

Will overrides dns.client_subnet.

route-options

json
{
  "action": "route-options",
  "disable_cache": false,
  "rewrite_ttl": null,
  "client_subnet": null
}

route-options set options for routing.

reject

json
{
  "action": "reject",
  "method": "",
  "no_drop": false
}

reject reject DNS requests.

method

  • default: Reply with REFUSED.
  • drop: Drop the request.

default will be used by default.

no_drop

If not enabled, method will be temporarily overwritten to drop after 50 triggers in 30s.

Not available when method is set to drop.

predefined

!!! question "Since sing-box 1.12.0"

json
{
  "action": "predefined",
  "rcode": "",
  "answer": [],
  "ns": [],
  "extra": []
}

predefined responds with predefined DNS records.

rcode

The response code.

ValueValue in the legacy rcode serverDescription
NOERRORsuccessOk
FORMERRformat_errorBad request
SERVFAILserver_failureServer failure
NXDOMAINname_errorNot found
NOTIMPnot_implementedNot implemented
REFUSEDrefusedRefused

NOERROR will be used by default.

answer

List of text DNS record to respond as answers.

Examples:

Record TypeExample
Alocalhost. IN A 127.0.0.1
AAAAlocalhost. IN AAAA ::1
TXTlocalhost. IN TXT \"Hello\"

ns

List of text DNS record to respond as name servers.

extra

List of text DNS record to respond as extra records.