Provided by: dnscrypt-proxy_1.6.1-1_amd64 bug

NAME

       dnscrypt-proxy - A DNSCrypt forwarder

SYNOPSIS

       dnscrypt-proxy [options]

DESCRIPTION

       dnscrypt-proxy  accepts DNS requests, authenticates and encrypts them using dnscrypt and forwards them to
       a remote dnscrypt-enabled resolver.

       Replies from the resolver are expected to be authenticated or else they will be discarded.

       The proxy verifies the replies, decrypts  them,  and  transparently  forwards  them  to  the  local  stub
       resolver.

       dnscrypt-proxy listens to 127.0.0.1 / port 53 by default.

WARNING

       dnscrypt-proxy  is not a DNS cache. Unless your operating system already provides a decent built-in cache
       (and by default, most systems don´t), clients shouldn´t directly send requests to dnscrypt-proxy.

       Intead, run a DNS cache like Unbound, and configure it to use dnscrypt-proxy as  a  forwarder.  Both  can
       safely run on the same machine as long as they use different IP addresses and/or different ports.

OPTIONS

-a,  --local-address=<ip>[:port]: what local IP the daemon will listen to, with an optional port. The
           default port is 53.

       •   -d, --daemonize: detach from the current terminal and run the server in background.

       •   -E, --ephemeral-keys: By default, queries  are  always  sent  with  the  same  public  key,  allowing
           providers  to  link this public key to the different IP addresses you are using. This option requires
           extra CPU cycles, but mitigates this by computing an ephemeral key pair for every query.

       •   -e, --edns-payload-size=<bytes>: transparently add an OPT pseudo-RR to outgoing queries in  order  to
           enable  the EDNS0 extension mechanism. The payload size is the size of the largest response we accept
           from the resolver before retrying over TCP. This feature is enabled by default, with a  payload  size
           of 1252 bytes. Any value below 512 disables it.

       •   -h, --help: show usage.

       •   -k, --provider-key=<key>: specify the provider public key (see below).

       •   -K, --client-key=<file>: use a static client secret key stored in <file>.

       •   -L, --resolvers-list=<file>: path to the CSV file containing the list of available resolvers, and the
           parameters to use them.

       •   -l, --logfile=<file>: log events to this file instead of the standard output.

       •   -m,  --loglevel=<level>:  don´t  log events with priority above this level after the service has been
           started up. Default is 6, the value for LOG_INFO. Valid values are 0 (system is unusable), 1  (action
           must  be taken immediately), 2 (critical conditions), 3 (error conditions), 4 (warning conditions), 5
           (normal but significant condition), 6 (informational) and 7 (debug-level messages).

       •   -n, --max-active-requests=<count>: set the  maximum  number  of  simultaneous  active  requests.  The
           default value is 250.

       •   -p, --pidfile=<file>: write the PID number to a file.

       •   -R,  --resolver-name=<name>:  name  of the resolver to use, from the list of available resolvers (see
           -L).

       •   -r, --resolver-address=<ip>[:port]: a DNSCrypt-capable resolver IP address with an optional port. The
           default port is 443.

       •   -S, --syslog: if a log file hasn´t been set, log diagnostic messages to syslog  instead  of  printing
           them. --daemonize implies --syslog.

       •   -t,  --test=<margin>:  don´t  actually  start  the  proxy,  but check that a valid certificate can be
           retrieved from the server and that it will remain valid for the next margin minutes. The exit code is
           0 if a valid certificate can be used, 2 if no  valid  certificates  can  be  used,  3  if  a  timeout
           occurred,  and  4  if  a  currently valid certificate is going to expire before margin. The margin is
           always specificied in minutes.

       •   -u, --user=<user name>: chroot(2) to this user´s home directory and drop privileges.

       •   -N, --provider-name=<FQDN>: the fully-qualified name of the dnscrypt certificate provider.

       •   -T, --tcp-only: always use TCP. A connection made using UDP will get a truncated  response,  so  that
           the (stub) resolver retries using TCP.

       •   -V, --version: show version number.

       A public key is 256-bit long, and it has to be specified as a hexadecimal string, with optional columns.

COMMON USAGE EXAMPLE

       $ dnscrypt-proxy --daemonize --resolver-name=...

       The resolver name is the first column (Name) in the CSV file.

USAGE EXAMPLE WITH A PRIVATE SERVER

       $ dnscrypt-proxy --daemonize --provider-key=... --provider-name=... --resolver-address=...

BUGS AND SUPPORT

       Please report issues with DNSCrypt itself to https://dnscrypt.org/issues

SEE ALSO

       hostip(8)

                                                  February 2016                                DNSCRYPT-PROXY(8)