dprox is a lightweight DNS proxy server. It's created as a drop-in replacement
of dnsmasq to work with
while improving the overall lookup performance over large domain list.
dprox should build and work on all unix-like OS with ghc support, but it's only
been tested on Linux and macOS.
dprox can be built with cabal like any other Hackage packages, for a
reliable compilation with pinned dependencies, stack is generally recommended.
stack setup stack install
For Arch Linux users, an AUR package is provided. Alternatively, you also can use the statically linked binary for the latest release.
Only a small subset of dnsmasq options are implemented at the moment, just barely enough to work with
dnsmasq-china-list and hosts-blocklists.
Here is the list of implemented dnsmasq options (with
bogus-nxdomain options allowed in configuration file):
-u, --user=<username> -p, --port=<port> -a, --listen-address=<ipaddr> -C, --conf-file=<file> -h, --no-hosts -H, --addn-hosts=<file> -S, --local, --server=[/<domain>/]<ipaddr>[#<port>] -A, --address=[/<domain>/]<ipaddr> -B, --bogus-nxdomain=<ipaddr>
dprox --help or dnsmasq manpage for further details about these options.
But be aware that there might be minor differences on some options like
dnsmasq-china-list, with "184.108.40.206" as the remote DNS server
(systemd user can also use this unit file):
dprox -C /etc/dnsmasq.d/accelerated-domains.china.conf -C /etc/dnsmasq.d/bogus-nxdomain.china.conf -S 220.127.116.11
hosts-blocklists and the default remote DNS server ("18.104.22.168"), without loading system hosts file:
dprox -C /opt/hosts-blocklists/domains.txt -H /opt/hosts-blocklists/hostnames.txt -h
dproxhas fairly large memory footprint at the moment. About 85MB for current
dprox is licensed under the BSD3 license. See LICENSE file for details.
*Note that all licence references and agreements mentioned in the dprox README section above are relevant to that project's source code only.