A lot of users have implemented the unbound solution, described here.
You can add a section to the configuration file ( the example configuration only has a
server: section). Add the following lines to tour configuration:
# Remote control config section. remote-control: control-enable: yes
sudo service unbound stop && sudo service unbound start (
sudo service unbound restart also works - it’s a habit)
After this change, you will be able to send instructions to unbound from the command line.
unbound-control, the location will depend on the version you have implemented (I’m using the compiled (latest) version of unbound.
sudo find / -name unbound-control
unbound-control without any options will give you a list of commands you can use.
A useful command would be
sudo /usr/sbin/unbound-control verbosity 1, this to increase the increase the logging level. You could increase the log level to identify a problem.
From the unbound man page:
verbosity: <number> The verbosity number, level 0 means no verbosity, only errors. Level 1 gives operational information. Level 2 gives detailed operational information. Level 3 gives query level information, output per query. Level 4 gives algorithm level information. Level 5 logs client identification for cache misses. Default is level 1. The verbosity can also be increased from the command- line, see unbound(8).
Don’t forget to decrease the log level, when your done!!!
On systems with a lot of users, stopping and starting unbound has a severe impact on unbound’s performance.
DON’T DO THIS IF YOUR NOT WILLING TO TROUBLESHOOT !!!
There is a way to save / restore the unbound cache.
sudo /usr/sbin/unbound-control dump_cache > /etc/unbound/unbound_cache.dmp
sudo /usr/sbin/unbound-control load_cache > /etc/unbound/unbound_cache.dmp
There is even solution to automate this, available in the
contrib folder of the latest download. It contains a file
To push saving / restoring the cache to the limit, you could add the following to the service file (
ExecStartPost=-/etc/unbound/unbound_cache.sh -l /etc/unbound/unbound_cache.dmp ExecStop=-/etc/unbound/unbound_cache.sh -s /etc/unbound/unbound_cache.dmp
sudo systemctl daemon-reload to inform the system about the changes.
- sign in front of the path is a way to tell
systemctl to continue, even if this command would fail. All commands in a service file are executed as root.
For these lines to work, you need to download and extract
Don’t forget to edit
unbound_cache.sh, you need to edit the location of
This might lead to a confusing status message,
sudo service unbound status says:
Active: active (running) since Fri 2018-12-28
but also says:
Process: 1222 ExecStartPost=/etc/unbound/unbound_cache.sh -l /etc/unbound/unbound_cache.dmp (code=exited, status=1/FAILURE)
- Saving and restoring doesn’t seem to work if you reboot the system.
- If unbound fails to start after a reboot, just delete the cache file (