55 lines
2.0 KiB
Markdown
55 lines
2.0 KiB
Markdown
# 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:
|
|
|
|
```shell
|
|
git clone https://git.rznet.fr/razian/rdns-go
|
|
cd rdns-go
|
|
```
|
|
|
|
Build the rdns binary:
|
|
|
|
```shell
|
|
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.
|
|
|
|
```shell
|
|
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](https://github.com/miekg/dns) and [patrickmn/go-cache](https://github.com/patrickmn/go-cache).
|
|
|
|
## License
|
|
|
|
This project is licensed under the MIT License. See the [LICENSE](https://git.rznet.fr/razian/rdns-go/src/branch/main/LICENSE) file for more information.
|