2.1 KiB
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.