NAMED-CHECKCONF(1)

πŸ’… NAMED-CHECKCONF(1) β€” the vibe check for your named config ✨

okay bestie, so this is named-checkconf, straight out of BIND 9 (section 1 of the manual, if you're keeping track πŸŽ€). Think of it as the friend who reads your text messages before you hit send, except the message is a named configuration file and the send button is production. πŸ’€


✨ NAME ✨

named-checkconf β€” the named configuration file syntax checking tool πŸ¦‹


🌸 SYNOPSIS 🌸

named-checkconf [-achjklvz] [-p [-x ]] [-t directory] {filename}

πŸ’– DESCRIPTION πŸ’–

named-checkconf checks the syntax, but not the semantics, of a named configuration file. It parses the file β€” plus every single file included by it β€” and hunts for syntax errors. If you don't hand it a file, it reads /etc/bind/named.conf by default. periodt. 🫢

⚠️ note, bestie: files that named reads in separate parser contexts β€” like rndc.conf or rndc.key β€” are not automatically read by named-checkconf. So config errors hiding in those files can still make named refuse to run, even if named-checkconf was like "ur fine ✨". The good news? You can run named-checkconf on those files explicitly yourself. πŸ’…

🌈 OPTIONS 🌈

  • -a β€” doesn't check the dnssec-policy's DNSSEC key algorithms against the ones your crypto provider actually supports. lowkey iconic when you're checking a named.conf that's meant to run on another machine with a possibly different set of supported DNSSEC key algorithms. 🧚
  • -h β€” prints the usage summary and exits. the classic "who am i" flag πŸŽ€
  • -j β€” when loading a zonefile, this tells named to read the journal if it exists. πŸ”₯
  • -k β€” checks the dnssec-policy's DNSSEC keys against the key files in the key-directory. super useful when you're checking a named.conf to make sure a DNSSEC policy matches the keys you already have. πŸ”‘
  • -l β€” lists all the configured zones. every line of output has the zone name, class (e.g. IN), view, and type (e.g. primary or secondary). a whole lil inventory, slay πŸ“‹
  • -c β€” says "only the core configuration, please". this suppresses loading of plugin modules and makes all parameters to plugin statements get ignored. πŸ™ˆ
  • -i β€” ignores warnings on deprecated options. living in denial, but make it a flag πŸ’€
  • -p β€” prints out named.conf and the included files in canonical form, but only if zero errors were detected. see also -x πŸ‘€
  • -t directory β€” tells named to chroot to directory, so that include directives in the config file get processed as if they were run by a named that's chrooted the same exact way. 🏠
  • -v β€” prints the version of the named-checkconf program and exits. 🏷️
  • -x β€” when printing config files in canonical form, this obscures shared secrets by swapping them for strings of question marks (?). this is the one that lets you share the contents of named.conf and related files β€” like when you're submitting bug reports πŸ› β€” without leaking private data. this option cannot be used without -p. 🚫
  • -z β€” performs a test load of all zones of type primary found in named.conf. a full dress rehearsal πŸ’ƒ
  • filename β€” the name of the configuration file to be checked. if you don't specify it, it defaults to /etc/bind/named.conf. πŸ—‚οΈ

πŸ‘‘ RETURN VALUES πŸ‘‘

named-checkconf returns an exit status of 1 if errors were detected, and 0 otherwise. clean. ✨


πŸ¦‹ SEE ALSO πŸ¦‹


πŸ“ Author πŸ“

Internet Systems Consortium

2026, Internet Systems Consortium


okay that's the whole page, no cap πŸ’… and just so we're cute and complete: this gem is from BIND 9, version 9.20.30, dated 2026-10-12 β€” go forth and check those configs, bestie, ur gonna ate πŸŽ€βœ¨πŸ¦‹

πŸ“¦ where this page comes from