Skip to content

dns-inspector/dnsproxy

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

78 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

dnsproxy

dnsproxy is a server that proxies DNS over TLS, DNS over HTTPS, and DNS over Quic requests to a standard DNS server.

Usage

dnsproxy is intended to directly face the internet and should be able to bind to the correct ports (443, 853). dnsproxy requires a TLS certificate and private key. DNS over TLS and DNS over Quic requires a TLS certificate with an IP Address subject alternate name.

Usage dnsproxy <mode> [options]

Modes:
config     Print out the default configuration to stdout and exit
server     Start the dnsproxy server
test       Validate the dnsproxy configuration. Print any errors to stderr. Exits with 0 if valid.

Options:
-c --config <value>      Specify the path to the config file. Only used in server and test mode.

Signals:
USR1       Rotate the log file by appending yesterdays date to the file name and start a new file
USR2       Reload the configuration without restarting the process

Configuration

dnsproxy is configured using a configuration file. To generate a default configuration file, run dnsproxy config.

Control Hosts

dnsproxy offers a small number of "control" hosts which do not proxy to the DNS server but instead return specific data. The zone of these records is specified by the control_zone property in the dnsproxy configuration file.

RR Type Name Reply Description
TXT ip.<control_zone> Returns your connecting IP address as seen by the dnsproxy server.
TXT uuid.<control_zone> Returns a random v4 UUID.
TXT time.<control_zone> Returns the current UTC time in RFC3339 format.
TXT version.<control_zone> Returns the current version of dnsproxy.

Monitoring

dnsproxy can act as a Zabbix agent. When the zabbix_server configuration property is set, it will send the following metrics every minute:

Item Key Description
server.state Will always be 1 so long as dnsproxy is running.
panic.recover The number of panics that have been recovered from within the last minute.
query.doh.forward The number of DNS over HTTPS queries that have been forwarded.
query.dot.forward The number of DNS over TLS queries that have been forwarded.
query.doq.forward The number of DNS over Quic queries that have been forwarded.
query.doh.error The number of DNS over HTTPS queries that failed.
query.dot.error The number of DNS over TLS queries that failed.
query.doq.error The number of DNS over Quic queries that failed.

License

dnsproxy is free and open source software governed by the terms of the GNU General Public License v3.

About

Proxy server for DNS over HTTP and TLS

Topics

Resources

License

Security policy

Stars

Watchers

Forks

Contributors 2

  •  
  •