Docs GitHub
-- --
Theme:
Language:
EN فا

DNS Settings#

💡 Tip: You can change these settings directly in the bgscan application instead of editing the TOML file manually.

Navigate to SettingsDNS 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#

SettingDefaultDescription
workers (resolver)500The 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)53The 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)2000Maximum duration in milliseconds to wait for a DNS response.
tries (resolver)2The 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)falseEnables the anti-hijacking pre-check.
dpi_timeout (resolver)500Maximum duration in milliseconds to wait for the DPI pre-check response.
dpi_tries (resolver)2The maximum number of network retry attempts for the DPI pre-check.
random_subdomain (resolver)trueGenerates 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)falseEnables or disables the DNSTT probe phase.
workers (dnstt)20The number of concurrent workers performing DNSTT handshakes.
domain (dnstt)""The authoritative DNS zone delegated to your DNSTT server.
timeout (dnstt)10000Maximum 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)trueEnables or disables the SlipStream probe phase.
workers (slip_stream)20The number of concurrent workers performing SlipStream probes.
domain (slip_stream)""The authoritative DNS zone used by the SlipStream server.
timeout (slip_stream)8000Maximum 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 = 500

The 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 = 53

The 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 = 2000

Maximum 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 = 2

The 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 = false

Enables 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 = 500

Maximum 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 = 2

The maximum number of network retry attempts for the DPI pre-check.

Random Subdomain#

random_subdomain = true

Generates 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 = false

Enables or disables the DNSTT probe phase.

Workers#

workers = 20

The number of concurrent workers performing DNSTT handshakes.

Domain#

domain = ""

The authoritative DNS zone delegated to your DNSTT server.

Timeout#

timeout = 10000

Maximum 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 = true

Enables or disables the SlipStream probe phase.

Workers#

workers = 20

The number of concurrent workers performing SlipStream probes.

Domain#

domain = ""

The authoritative DNS zone used by the SlipStream server.

Timeout#

timeout = 8000

Maximum 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.