dprox: a lightweight DNS proxy server

[ bsd3, dns, program ] [ Propose Tags ]

Please see the README on GitHub at https://github.com/bjin/dprox#readme


[Skip to Readme]
Versions [faq] 0.1.0, 0.1.1, 0.1.2, 0.1.2.1
Dependencies attoparsec (>=0.13), base (>=4.12 && <5), bytestring (>=0.10), containers (>=0.6), dns (>=3.0.4), iproute (>=1.7), network (>=2.8), optparse-applicative (>=0.14), streaming-commons (>=0.2), unix (>=2.7), unordered-containers (>=0.2) [details]
License BSD-3-Clause
Copyright 2019 Bin Jin
Author Bin Jin
Maintainer bjin@ctrl-d.org
Category DNS
Home page https://github.com/bjin/dprox#readme
Bug tracker https://github.com/bjin/dprox/issues
Source repo head: git clone https://github.com/bjin/dprox
Uploaded by BinJin at Thu Jun 13 09:11:05 UTC 2019
Distributions NixOS:0.1.2.1
Executables dprox
Downloads 361 total (81 in the last 30 days)
Rating (no votes yet) [estimated by rule of succession]
Your Rating
  • λ
  • λ
  • λ
Status Hackage Matrix CI
Docs not available [build log]
Last success reported on 2019-06-13 [all 3 reports]

Flags

NameDescriptionDefaultType
static

Enable static build

DisabledManual

Use -f <flag> to enable a flag, or -f -<flag> to disable that flag. More info

Downloads

Maintainer's Corner

For package maintainers and hackage trustees


Readme for dprox-0.1.2.1

[back to package description]

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.