tchivert 9365d08fcf
docker / docker (push) Successful in 12m7s
package / apt (push) Successful in 1m18s
ci: run go vet and tests before builds
2026-08-21 22:36:49 +02:00
2025-07-20 11:30:32 +02:00
2025-08-16 02:40:06 +02:00
2024-12-16 23:54:15 +01:00
2023-06-30 15:40:33 +02:00

rdns-go

rdns is a reverse DNS proxy resolver written in Go. It acts as a DNS server, forwarding DNS queries to configured nameservers and returning the corresponding reverse DNS records.

Building

To build the rdns-go project, you need to have Go installed. Follow the official Go installation instructions for your operating system.

Once Go is installed, clone the rdns-go repository:

git clone https://git.rznet.fr/razian/rdns-go
cd rdns-go

Build the rdns binary:

go build

This will create a rdns binary in the project directory.

Usage

The rdns-go project can be started using the provided docker-compose.yml file. Modify the environment variables in the docker-compose.yml file to customize the configuration.

docker-compose up -d

This command will start the rdns-go container in the background.

Configuration

The rdns-go project can be configured using the following command arguments:

  • -a (default: 0.0.0.0): The address to listen on.
  • -p (default: 53): The port to listen on.
  • -b (default: none): The path to the blocklist file. This file contains a list of domain names to block.
  • -z (default: none): The path to the zones file. This file contains custom zone information.
  • -h (default: none): The path to the hosts file. This file contains custom hosts and can be used as a network wide /etc/hosts file.
  • -n (default: 9.9.9.9): The nameservers to use for DNS resolution, separated by : or ,.
  • -c (default: all CPUs): The number of CPUs to use.
  • -t (default: 10): The cache TTL for queries, in minutes.
  • -s (default: false): Whether to use TLS (DoT, port 853) to contact the resolver.
  • -l (default: false): Whether to enable query logging.
  • -m (default: false): Whether to enable Prometheus metrics on port 9153.

Acknowledgments

This project uses code from miekg/dns and patrickmn/go-cache.

License

This project is licensed under the MIT License. See the LICENSE file for more information.

S
Description
Simple DNS proxy with blocklist, cache and custom zones handling
Readme MIT
17 MiB
1 Watchers 0 Forks
v1.5
Latest
2026-08-21 20:36:49 +00:00
Languages
Go 96.2%
Shell 2.5%
Dockerfile 1.3%