You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Libor Peltan e7a7889a0d Merge branch 'dbus' into 'master' 1 day ago
distro distro: install dbus config file for deb and rpm 1 day ago
doc knotd: finaliza D-Bus events 1 day ago
m4 configure: update to autoconf 2.69/2.71 6 months ago
python python: various probe improvements 2 months ago
samples samples: add client for python, perl, and bash 1 day ago
scripts timers: remove unneeded last nsec3 resalt 2 weeks ago
src knotd: finaliza D-Bus events 1 day ago
tests knotd: finaliza D-Bus events 1 day ago
tests-extra tests-extra: extend test for mod-cookies 2 weeks ago
tests-fuzz XDP-TCP: simplify UDP handler API 6 months ago
.dir-locals.el added surmised C indentation rules for emacs users 5 years ago
.dockerignore docker: Transfer much less data for build 11 months ago
.gitattributes Add .gitattributes export-ignore 10 years ago
.gitignore libknot: move XDP-related headers from libknot.h to xdp.h 7 months ago
.gitlab-ci.yml ci/distrotests: add new fedora,ubuntu 2 months ago
.gitmodules Update links to 2 years ago
COPYING COPYING: remove obsolete OpenSSL exception as we no longer use OpenSSL 2 years ago
Dockerfile Dockerfile: add options and improve building 2 months ago spelling 2 months ago
Knot.config Try to solve undetected defines from config.h in QTcreator 4 years ago
Knot.creator Added QtCreator project files 11 years ago
Knot.files nsec3resalt: remove useless event 2 weeks ago
Knot.includes Knot.includes: add all source directories 3 weeks ago Include in distribution package 2 years ago
NEWS spelling 2 months ago README: add libprotobuf-c-dev to dependencies on Debian 10 months ago add 7 years ago knotd: finaliza D-Bus events 1 day ago

Language grade: C/C++ Coverity Status Fuzzing Status Documentation Status





1. Install prerequisites

Debian based distributions

Update the system:

sudo apt-get update
sudo apt-get upgrade

Install prerequisites:

sudo apt-get install \
  libtool autoconf automake make pkg-config liburcu-dev libgnutls28-dev libedit-dev liblmdb-dev

Install optional packages:

sudo apt-get install \
  libcap-ng-dev libsystemd-dev libidn2-0-dev libprotobuf-c-dev protobuf-c-compiler libfstrm-dev libmaxminddb-dev libnghttp2-dev libmnl-dev

Fedora like distributions

Update the system:

dnf upgrade

Install basic development tools:

dnf install @buildsys-build

Install prerequisites:

dnf install \
  libtool autoconf automake pkgconfig userspace-rcu-devel gnutls-devel libedit-devel lmdb-devel

Install optional packages:

dnf install \
  libcap-ng-devel systemd-devel libidn2-devel protobuf-c-devel fstrm-devel libmaxminddb-devel libnghttp2-devel libmnl-devel

When compiling on RHEL based system, the Fedora EPEL repository has to be enabled. Also for RHEL 6, forward compatibility package gnutls30-devel with newer GnuTLS is required instead of gnutls-devel.

2. Install Knot DNS

Get the source code:

git clone

Or extract source package to knot-dns directory.

Compile the source code:

cd knot-dns
autoreconf -if

Install Knot DNS into system:

sudo make install
sudo ldconfig


1. Ensure some configuration


Please see samples/knot.sample.conf, project documentation, or man 5 knot.conf for more details. Basically the configuration should specify:

  • network interfaces
  • served zones

E.g. use the default configuration file:

cd /etc/knot
mv knot.sample.conf knot.conf

Modify the configuration file:

editor knot.conf

2. Prepare working directory

mv /var/lib/knot/

3. Start the server


This can be done by running the knotd command. Alternatively, your distribution should have an init script available, if you installed Knot DNS from a binary package.

Start the server in foreground to see if it runs:

knotd -c /etc/knot/knot.conf