A non standard DNS Server with multiple management interfaces. Its main function is it will do the same dns request to multiple DNS servers, if any of the servers replies with an authoritative reply it chooses that, otherwise it provides the reply from the fallback dns server. This will help in case for example you have a local dns server and you connect to work over a VPN and use that DNS server at the same time.
./dnsresolver
It will look like this:
2024/05/06 02:15:15 Starting DNS server on :53
> ?
Available commands:
stats - Show server statistics
record - Record Management
cache - Cache Management
dns - DNS Server Management
server - Server Management
/ - Go up one level
exit, quit, q - Shutdown the server
help, h, ? - Show help
>
./dnsresolver --daemon
./dnsresolver --client-mode
File | Usage |
---|---|
dnsrecords.json | holds dns records |
dnsservers.json | holds the dns servers used for queries |
dnscache.json | holds queries already done if their ttl diff is still above 0 |
dnsresolver.json | the app config |
- mDNS Server
- DHCP Server
- REST API
- Remote Client (Over TCP)
Contributions are always welcome! All contributions are required to follow the https://google.github.io/styleguide/go/
Please report any security vulnerabilities to the project using issues or directly to the owner.
This project follows the go project code of conduct, please refer to https://go.dev/conduct for more details
I will always follow the Linux Kernel License as primary, if you require any other OPEN license please let me know and I will try to accomodate it.