UNBOUND-HOST(1)

πŸ’… UNBOUND-HOST πŸ’…

okay bestie so you're looking at unbound-host from Unbound 1.26.2 β€” it's section 1 of the manual, it's a DNS lookup utility, and honestly? it's kind of iconic. it uses the Unbound validating resolver to look stuff up, which means it doesn't just answer β€” it checks whether the answer is legit. queen behavior. πŸ‘‘


✨ SYNOPSIS ✨

unbound-host [-C configfile] [-vdhr46D] [-c class] [-t type] [-y key]
[-f keyfile] [-F namedkeyfile] hostname

πŸ¦‹ DESCRIPTION πŸ¦‹

so unbound-host uses the Unbound validating resolver to query for the hostname and show you the results. with the -v option it also displays the validation status: secure, insecure, or bogus (which is a security failure, not a vibe). πŸ’€

by default it reads no configuration file whatsoever β€” like, zero, nothing, it's giving independent main character. it just goes straight for the internet root servers. but if you want config, you can use -C for an unbound config file, or -r to read resolv.conf. your call, babe. 🫢

the available options are:

πŸŽ€ OPTIONS πŸŽ€

  • hostname β€” this is the name being resolved (looked up in the DNS). and plot twist: if you hand it an IPv4 or IPv6 address instead, it does a reverse lookup. slay. 🌈
  • -h β€” shows the version and the commandline option help. the "help me help you" flag. πŸ’–
  • -v β€” enables verbose output, and it shows validation results on every single line. let's break down what those mean, because this is important bestie:
    • Secure = the NXDOMAIN (no such domain name), nodata (no such data), or positive data response validated correctly with one of the keys. βœ…
    • Insecure = that domain name has no security set up for it. no lock, no key, no problem. πŸ€·β€β™€οΈ
    • Bogus (security failure) = the response failed one or more checks. it's likely wrong, outdated, tampered with, or just broken. 🚩
  • -d β€” enables debug output to stderr. one -d shows you what the resolver and validator are doing and may tell you what's going on. more times, so -d -d, gives you a lot of output β€” every packet sent and received. not me reading packet logs for fun πŸ’€
  • -c <class> β€” specify the class to look up for. default is IN, the internet class. classic. 🌸
  • -t <type> β€” specify the type of data to look up. the default looks for IPv4, IPv6 and mail handler data β€” or domain name pointers for reverse queries. πŸ¦‹
  • -y <key> β€” specify a public key to use as a trust anchor. this is the base for a chain of trust that gets built up from the trust anchor to the response, so the response message can be validated. can be given as a DS or DNSKEY record. for example:
-y "example.com DS 31560 5 1 1CFED84787E6E19CCF9372C1187325972FE546CD"
  • -D β€” enables DNSSEC validation. reads the root anchor from the default configured root anchor at the default location, /etc/trusted-key.key. πŸ”
  • -f <keyfile> β€” reads keys from a file. every line has a DS or DNSKEY record, in the format as for -y. that's the zone file format β€” the same as what dig and drill produce. πŸ“„
  • -F <namedkeyfile> β€” reads keys from a BIND-style named.conf file. only the trusted-key {}; entries are read. nothing else, we're picky. πŸ™ˆ
  • -C <configfile> β€” uses the specified unbound.conf to prime libunbound(3). pass it as the first argument if you want to override some options from the config file with further arguments on the commandline. order matters, bestie. ⭐
  • -r β€” reads /etc/resolv.conf and uses the forward DNS servers from there (those could have been set by DHCP). more info in resolv.conf(5).
⚠️ heads up: this breaks validation if those servers do not support DNSSEC. no cap, be careful.
  • -4 β€” use solely the IPv4 network for sending packets. πŸ“
  • -6 β€” use solely the IPv6 network for sending packets. πŸ’œ

πŸ”₯ EXAMPLES πŸ”₯

some examples of use. the keys shown below are fakes, thus a security failure is encountered. (yes, on purpose. it's a demo, not a disaster. 😭)

$ unbound-host www.example.com
$ unbound-host -v -y "example.com DS 31560 5 1 1CFED84787E6E19CCF9372C1187325972FE546CD" www.example.com
$ unbound-host -v -y "example.com DS 31560 5 1 1CFED84787E6E19CCF9372C1187325972FE546CD" 192.0.2.153

πŸ‘‘ EXIT CODE πŸ‘‘

unbound-host exits with status code 1 on error and 0 on no error. and listen β€” the data may not be available on exit code 0. exit code 1 means the lookup encountered a fatal error. so 0 doesn't automatically mean "we got the goods", it just means nothing exploded. iykyk. πŸ’…


🌈 SEE ALSO 🌈


πŸ’– AUTHOR πŸ’–

the Unbound developers are mentioned in the CREDITS file in the distribution. go give them their flowers, they earned them. 🌸 🫢


1999-2026, NLnet Labs


k bye bestie, that's the whole page β€” written by the Unbound crew, version 1.26.2, dated Oct 21, 2026. now go resolve something and validate it like the icon you are. πŸŽ€βœ¨πŸ’œ

πŸ“¦ where this page comes from