doh-relay is a tool for relaying DNS queries
-
Ability to provide
DNS53
andDNS-over-HTTPS
services simultaneously. -
Relay DNS queries to upsteram service (can be
DNS53
orDNS-over-HTTPS
). -
Support
EDNS-Client-Subnet
.
make release
Usage:
doh-relay [options]
Options:
-cache
Enable cache for DNS answers. (default true)
-cache-backend string
Specify cache backend (default "internal")
-config string
use config file (yaml format)
-dns53
Enable dns53 relay service.
-dns53-2nd-ecs-ip string
Set dns53 secondary EDNS-Client-Subnet ip, eg: 12.34.56.78.
-dns53-listen string
Set dns53 service listen port. (default "udp://:53,tcp://:53")
-dns53-upstream string
Upstream resolver for dns53 service (default upstream type is standard DoH), e.g. https://149.112.112.11/dns-query,https://9.9.9.11/dns-query
-dns53-upstream-dns53
If dns53 service relays DNS queries to upstream endpoints using dns53 protocol.
-dns53-upstream-json
If dns53 service relays DNS queries to upstream endpoints transfer with json format.
-dns53-use-client-ip
If dns53 service use client ip as ECS.
-doh
Enable DoH relay service.
-doh-2nd-ecs-ip string
Specify secondary EDNS-Client-Subnet ip, eg: 12.34.56.78
-doh-listen string
Set doh relay service listen port. (default "127.0.0.1:15353")
-doh-path string
DNS-over-HTTPS endpoint path. (default "/dns-query")
-doh-tls
Enable DoH relay service over TLS, default on clear http.
-doh-tls-cert string
Specify tls cert path.
-doh-tls-key string
Specify tls key path.
-doh-upstream string
Upstream resolver for doh service (default upstream type is standard DoH), e.g. https://149.112.112.11/dns-query,https://9.9.9.11/dns-query
-doh-upstream-dns53
If DoH service relays queries to upstream endpoints using dns53 protocol.
-doh-upstream-json
If DoH service relays queries to upstream DoH endpoints transfer with json format.
-doh-use-client-ip
If doh service use client ip as ECS.
-loglevel string
Set log level. (default "info")
-maxmind-citydb-file string
Specify maxmind city db file path.
-redis-uri string
Specify redis uri for caching
-version
Print version info.
There's a example config file with comments here.
-
Set up a
DNS53
(listening ontcp://0.0.0.0:53
andudp://0.0.0.0:53
) service relaying DNS queries toDNS-over-HTTPS
service (https://9.9.9.11/dns-query
):doh-relay -dns53 -dns53-listen tcp://:53,udp://:53 -dns53-upstream https://9.9.9.11/dns-query -maxmind-citydb-file /usr/local/var/GeoIP/GeoLite2-City.mmdb
-
Set up a
DNS-over-HTTPS
(listening onhttp://0.0.0.0:15353
) service relaying DNS queries toDNS-over-HTTPS
service (https://9.9.9.11/dns-query
), also with internal cache on:doh-relay -cache -doh -doh-listen :15353 -doh-upstream https://9.9.9.11/dns-query -maxmind-citydb-file /var/lib/GeoIP/GeoLite2-City.mmdb
-
Set up a
DNS-over-HTTPS
(listening onhttp://0.0.0.0:15353
) service relaying DNS queries toDNS53
service (tcp://9.9.9.11:53
):doh-relay -doh -doh-listen :15353 -doh-upstream tcp://9.9.9.11:53 -doh-upstream-dns53 -maxmind-citydb-file /var/lib/GeoIP/GeoLite2-City.mmdb
- Implement redis cache backend.