DNS Settings#
💡 Tip: You can change these settings directly in the bgscan application instead of editing the TOML file manually.
Navigate to Settings → DNS Settings in the main menu to configure these options interactively using the TUI inspector.
Configuration file: settings/dns_settings.toml
This file controls the DNS resolver, DNSTT, and SlipStream scanning modules.
Quick Reference#
| Setting | Default | Description |
|---|---|---|
workers (resolver) | 500 | The number of concurrent workers sending DNS queries. |
protocol (resolver) | "udp" | The transport protocol used for DNS queries. |
domain (resolver) | "" | The target domain name used as the primary query target for DNS resolution. |
port (resolver) | 53 | The target port used for DNS queries (typically 53). |
check_types (resolver) | ["txt"] | The DNS record types to query (e.g., A, AAAA, TXT, MX). |
timeout (resolver) | 2000 | Maximum duration in milliseconds to wait for a DNS response. |
tries (resolver) | 2 | The maximum number of network retry attempts per target to mitigate packet loss. |
accepted_rcodes (resolver) | ["noerror", "nxdomain"] | The DNS response codes that are treated as successful ("alive") results. |
check_dpi (resolver) | false | Enables the anti-hijacking pre-check. |
dpi_timeout (resolver) | 500 | Maximum duration in milliseconds to wait for the DPI pre-check response. |
dpi_tries (resolver) | 2 | The maximum number of network retry attempts for the DPI pre-check. |
random_subdomain (resolver) | true | Generates a random subdomain for each query to bypass resolver caches. |
prefix_output (resolver) | "dns_" | The filename prefix applied to all output files generated by this module. |
enabled (dnstt) | false | Enables or disables the DNSTT probe phase. |
workers (dnstt) | 20 | The number of concurrent workers performing DNSTT handshakes. |
domain (dnstt) | "" | The authoritative DNS zone delegated to your DNSTT server. |
timeout (dnstt) | 10000 | Maximum duration in milliseconds to wait for a complete DNSTT handshake. |
prefix_output (dnstt) | "dnstt_" | The filename prefix applied to all output files generated by the DNSTT module. |
enabled (slip_stream) | true | Enables or disables the SlipStream probe phase. |
workers (slip_stream) | 20 | The number of concurrent workers performing SlipStream probes. |
domain (slip_stream) | "" | The authoritative DNS zone used by the SlipStream server. |
timeout (slip_stream) | 8000 | Maximum duration in milliseconds to wait for a complete SlipStream probe. |
prefix_output (slip_stream) | "slipstream_" | The filename prefix applied to all output files generated by the SlipStream module. |
Resolver Settings#
The resolver section configures the bulk DNS resolver scanner that tests public DNS resolvers.
Workers#
workers = 500The number of concurrent workers sending DNS queries. Higher values increase scan speed at the cost of greater CPU and network utilization.
Recommended values: 100-1000 depending on available bandwidth and system resources.
Protocol#
protocol = "udp"The transport protocol used for DNS queries. Supported values: "udp", "tcp", "dot" (DNS-over-TLS).
Domain#
domain = ""The target domain name used as the primary query target for DNS resolution. Leave empty to use the IP address as the domain (reverse DNS).
Port#
port = 53The target port used for DNS queries (typically 53).
Check Types#
check_types = ["txt"]The DNS record types to query (e.g., A, AAAA, TXT, MX). For DNSTT compatibility, "TXT" is strongly recommended.
Timeout#
timeout = 2000Maximum duration in milliseconds to wait for a DNS response. Queries failing to respond within this window are considered failed.
Recommended values: 1000-5000 depending on network reliability.
Tries#
tries = 2The maximum number of network retry attempts per target to mitigate packet loss. Note: Retries only occur on network errors. If ANY DNS response (regardless of Rcode) is received, retrying stops immediately.
Recommended values: 1-3 for most networks.
Accepted RCodes#
accepted_rcodes = ["noerror", "nxdomain"]The DNS response codes that are treated as successful ("alive") results.
Supported values:
\"noerror\"or\"success\": (Code 0)\"formerr\"or\"formaterror\": (Code 1)\"servfail\"or\"serverfailure\": (Code 2)\"nxdomain\"or\"nameerror\": (Code 3)\"notimp\"or\"notimplemented\": (Code 4)\"refused\": (Code 5)
Recommended: [\"noerror\", \"nxdomain\"]
Check DPI#
check_dpi = falseEnables the anti-hijacking pre-check logic: Sends a query for a non-existent \".invalid\" domain. If the resolver returns Success (Rcode 0), it is flagged as a hijacking/tampered resolver and discarded immediately.
DPI Timeout#
dpi_timeout = 500Maximum duration in milliseconds to wait for the DPI pre-check response. Typically set shorter than the main timeout to quickly skip bad resolvers.
DPI Tries#
dpi_tries = 2The maximum number of network retry attempts for the DPI pre-check.
Random Subdomain#
random_subdomain = trueGenerates a random subdomain for each query to bypass resolver caches and force a fresh recursive lookup.
Prefix Output#
prefix_output = "dns_"The filename prefix applied to all output files generated by this module. Useful for distinguishing results when running multiple scans simultaneously.
DNSTT Settings#
The DNSTT section configures the DNS Tunnel Tool (DNSTT) probe, which tests whether surviving resolvers can carry a full tunnel.
Enabled#
enabled = falseEnables or disables the DNSTT probe phase.
Workers#
workers = 20The number of concurrent workers performing DNSTT handshakes.
Domain#
domain = ""The authoritative DNS zone delegated to your DNSTT server.
Timeout#
timeout = 10000Maximum duration in milliseconds to wait for a complete DNSTT handshake to finish.
Prefix Output#
prefix_output = "dnstt_"The filename prefix applied to all output files generated by this module.
SlipStream Settings#
The SlipStream section configures the SlipStream DNS probe, an alternative tunneling technique exploiting DNS behavior.
Enabled#
enabled = trueEnables or disables the SlipStream probe phase.
Workers#
workers = 20The number of concurrent workers performing SlipStream probes.
Domain#
domain = ""The authoritative DNS zone used by the SlipStream server.
Timeout#
timeout = 8000Maximum duration in milliseconds to wait for a complete SlipStream probe to finish.
Prefix Output#
prefix_output = "slipstream_"The filename prefix applied to all output files generated by this module.
Related Files#
general_settings.toml— Global scan control and pipeline modeicmp_settings.toml— ICMP scan configurationtcp_settings.toml— TCP port scan configurationhttp_settings.toml— HTTP/HTTPS/HTTP3 probe configurationxray_settings.toml— Xray outbound validationwriter_settings.toml— Result output configuration