@hackage dprox0.1.2

a lightweight DNS proxy server

dprox

CircleCI Depends Release Hackage AUR License

dprox is a lightweight DNS proxy server. It's created as a drop-in replacement of dnsmasq to work with dnsmasq-china-list, while improving the overall lookup performance over large domain list.

Installation

dprox should build and work on all unix-like OS with ghc support, but it's only been tested on Linux and macOS.

While 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 also provided.

Usage

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 server, local, address and 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>

Use dprox --help or dnsmasq manpage for further details about these options. But be aware that there might be minor differences on some options like --server.

To use dprox with dnsmasq-china-list, with "8.8.4.4" 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 8.8.4.4

To use dprox with hosts-blocklists and the default remote DNS server ("8.8.8.8"), without loading system hosts file:

dprox -C /opt/hosts-blocklists/domains.txt -H /opt/hosts-blocklists/hostnames.txt -h

Known Issue

  • dprox has fairly large memory footprint at the moment. Over 100MB for current dnsmasq-china-list.

License

dprox is licensed under the BSD3 license. See LICENSE file for details.