UNBOUND(8)

πŸ“¦
version 15.1 Β· 2 versions
, in freebsd 15.1

πŸ’… UNBOUND(8) β€” like, the local-unbound girlies' guide

okay so quick vibe check: this is the manual page for UNBOUND(8), bestie. buckle up πŸŽ€


✨ NAME ✨

local-unbound β€” the Local-unbound DNS validating resolver, version 1.25.1. that's her. that's the whole name. periodt πŸ’…


πŸ¦‹ SYNOPSIS πŸ¦‹

unbound [-hdpVv] [-c <cfgfile>]

literally that's it. five little flags and one config path and she's ready to slay πŸ”₯


πŸ’– DESCRIPTION πŸ’–

unbound is a caching DNS resolver. say it with me: caching DNS resolver. she resolves, she caches, she serves looks πŸ‘‘

So here's the tea β˜• β€” she's got a built-in list of authoritative nameservers for the root zone (.), aka the root hints. when a DNS query slides into her DMs, she asks the root nameservers for an answer, and in almost all cases she gets back a delegation to a top level domain (TLD) authoritative nameserver. then she asks that nameserver for an answer. she keeps recursively continuing until an answer is found, or until there's genuinely no answer available (NXDOMAIN β€” the villain of this story 😭).

and for performance and efficiency reasons (iconic behavior), that answer gets cached for a certain time β€” the answer's time-to-live, or TTL. so a second query for the same name? answered straight from the cache. effortless. πŸ’…

and yes she can do DNSSEC validation too. she's multi-talented, we been knew 🧚


🌸 wanna use her locally? 🌸

To use a locally running Local-unbound for resolving, put this:

nameserver 127.0.0.1

into resolv.conf(5). that's the whole ritual, no cap 🫢

⚠️ also real talk: if you need authoritative DNS too, using nsd(8) alongside her needs careful setup, because authoritative nameservers and resolvers both use the same port number (53). they're fighting for the same port, bestie, it's giving crowded elevator πŸ’€

✨ OPTIONS ✨

these are the available options, and yes we're going through every single one, don't scroll:

  • -h β€” shows the version number and the commandline option help, then exits. a little "hi, here's who I am" moment πŸŽ€
  • -c <cfgfile> β€” sets the config file with settings for local-unbound to read, instead of reading the file at the default location, /var/unbound/unbound.conf. the syntax is described in unbound.conf(5). pick your own adventure, queen 🌈
  • -d β€” the debug flag: she does not fork into the background, she stays attached to the console. this flag also delays writing to the log file until the thread-spawn time, so most config and setup errors show up on stderr instead. and if you give it twice or more, logging doesn't switch to the log file or to syslog at all β€” the log messages are printed to stderr the whole time. highkey the bestie for debugging πŸ”
  • -p β€” don't use a pidfile. this argument should only be used by supervision systems which can ensure that only one instance of Local-unbound will run concurrently. fr fr, only for the supervisors πŸ‘€
  • -v β€” increase verbosity. give it multiple times and more information is logged. this is in addition to the verbosity (if any) from the config file. more words, more lore πŸ—£οΈ
  • -V β€” shows the version number and build options, then exits. the full receipts ✨

πŸ’œ SEE ALSO πŸ’œ

unbound.conf(5), local-unbound-checkconf(8), nsd(8). go read those next, iykyk πŸ“š


πŸŽ€ AUTHOR πŸŽ€

the Local-unbound developers are mentioned in the CREDITS file in the distribution. give them their flowers, they earned them πŸ’


1999-2026, NLnet Labs. that's the whole line, protecting the whole legacy πŸ‘‘


aaaand that's the page!! mwah πŸ’‹ this was version 1.25.1, dated May 20, 2026 β€” crafted with love by the local-unbound girlies, see you in the next man page bestie πŸ¦‹πŸ’–

πŸ“¦ where this page comes from