1
Fork 0
Simple DNS proxy with blocklist, cache and custom zones handling
Go to file
Tom Chivert f81fc66376
build / build (push) Successful in 2m16s Details
Update blocklist_update
2024-02-03 14:12:57 +01:00
.gitea/workflows change ci system 2023-07-15 23:11:37 +02:00
conf update blocklist 2023-11-04 13:22:13 +01:00
.gitignore Improve cache 2022-07-19 17:51:15 +02:00
Dockerfile Fix empty env vars issue 2023-02-16 19:34:10 +01:00
LICENSE add readme and license 2023-06-30 15:40:33 +02:00
Makefile Fix empty env vars issue 2023-02-16 19:34:10 +01:00
README.md Update README.md 2023-06-30 16:08:23 +02:00
blocklist_update Update blocklist_update 2024-02-03 14:12:57 +01:00
docker-compose.yml Update blocklist, comment custom zone 2022-08-30 17:30:14 +02:00
go.mod Try to fix cache TTL 2022-07-19 10:38:23 +02:00
go.sum Try to fix cache TTL 2022-07-19 10:38:23 +02:00
rdns.go Remove a print 2023-03-24 15:15:14 +01:00

README.md

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 environment variables in the docker-compose.yml file:

  • BLOCKLIST (default: /etc/rdns/blocklist.txt): The path to the blocklist file. This file contains a list of domain names to block.
  • ZONES (default: /etc/rdns/rdns.zones): The path to the zones file. This file contains custom zone information.
  • NS (default: 9.9.9.9:1.1.1.1): The nameservers to use for DNS resolution.
  • TTL (default: 60): The time-to-live value for cached queries (in minutes).
  • TLS (default: true): Whether to use TLS to contact the resolver.
  • LOGS (default: false): Whether to enable query logging.
  • METRICS (default: false): Whether to enable Prometheus metrics.

To customize the rdns-go configuration, modify the corresponding environment variables.

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.