152

GitHub - AdguardTeam/dnsproxy: Simple DNS proxy with DoH, DoT, and DNSCrypt supp...

 5 years ago
source link: https://github.com/AdguardTeam/dnsproxy
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

README.md

Build Status Code Coverage Go Report Card Go Doc

DNS Proxy

A simple DNS proxy server that supports all existing DNS protocols including DNS-over-TLS, DNS-over-HTTPS, and DNSCrypt.

Usage

$ ./dnsproxy -h
Usage:
  dnsproxy [OPTIONS]

Application Options:
  -v, --verbose    Verbose output (optional)
  -o, --output=    Path to the log file. If not set, write to stdout.
  -l, --listen=    Listen address (default: 0.0.0.0)
  -p, --port=      Listen port (default: 53)
  -t, --tls-port=  Listen port for DNS-over-TLS (default: 853)
  -c, --tls-crt=   Path to a file with the certificate chain
  -k, --tls-key=   Path to a file with the private key
  -b, --bootstrap= Bootstrap DNS for DoH and DoT (default: 8.8.8.8:53)
  -u, --upstream=  An upstream to be used (can be specified multiple times)

Help Options:
  -h, --help       Show this help message

Examples

Runs a DNS proxy on 0.0.0.0:53 with a single upstream - Google DNS.

./dnsproxy -u 8.8.8.8:53

Runs a DNS proxy on 127.0.0.1:5353 with multiple upstreams.

./dnsproxy -l 127.0.0.1 -p 5353 -u 8.8.8.8:53 -u 1.1.1.1:53

Runs a DNS-over-TLS proxy on 127.0.0.1:853.

./dnsproxy -l 127.0.0.1 --tls-port=853 --tls-crt=example.crt --tls-key=example.key -u 8.8.8.8:53 

The same proxy with verbose logging enabled writing it to the file log.txt.

./dnsproxy -u 8.8.8.8:53 -v -out log.txt

DNS-over-TLS upstream:

./dnsproxy -u tls://dns.adguard.com

DNS-over-HTTPS upstream:

./dnsproxy -u https://dns.adguard.com/dns-query

DNSCrypt upstream (DNS Stamp of AdGuard DNS):

./dnsproxy -u sdns://AQIAAAAAAAAAFDE3Ni4xMDMuMTMwLjEzMDo1NDQzINErR_JS3PLCu_iZEIbq95zkSV2LFsigxDIuUso_OQhzIjIuZG5zY3J5cHQuZGVmYXVsdC5uczEuYWRndWFyZC5jb20

DNS-over-HTTPS upstream (DNS Stamp of Cloudflare DNS):

./dnsproxy -u sdns://AgcAAAAAAAAABzEuMC4wLjGgENk8mGSlIfMGXMOlIlCcKvq7AVgcrZxtjon911-ep0cg63Ul-I8NlFj4GplQGb_TTLiczclX57DvMV8Q-JdjgRgSZG5zLmNsb3VkZmxhcmUuY29tCi9kbnMtcXVlcnk

TODO:

  • Configure fallback resolver
  • Listen on TCP as well
  • Mobile builds
  • Gobind interfaces

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK