A mirrored repository
sudo apt-get update sudo apt-get upgrade
sudo apt-get install \ libtool autoconf automake make pkg-config liburcu-dev libgnutls28-dev libedit-dev liblmdb-dev
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
dnf upgrade
dnf install @buildsys-build
dnf install \ libtool autoconf automake pkgconfig userspace-rcu-devel gnutls-devel libedit-devel lmdb-devel
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.
Get the source code:
bash git clone https://gitlab.nic.cz/knot/knot-dns.gitOr extract source package to knot-dns directory.
Compile the source code:
bash cd knot-dns autoreconf -if ./configure make
Install Knot DNS into system:
bash sudo make install sudo ldconfig
Please see samples/knot.sample.conf, project documentation, or
man 5 knot.conffor more details. Basically the configuration should specify: - network interfaces - served zones
E.g. use the default configuration file:
bash cd /etc/knot mv knot.sample.conf knot.confModify the configuration file:
bash editor knot.conf
mv example.com.zone /var/lib/knot/
This can be done by running the
knotdcommand. 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:
bash knotd -c /etc/knot/knot.conf