# Install unbound with Homebrew, apk, apt, dnf, MacPorts, Nix, pacman, scoop, winget, zypper

Validating, recursive, caching DNS resolver. Version 1.25.1 via Homebrew; verified 2026-06-22.

## Install

```sh
sudo av install brew:unbound
```

Additional install commands:

### macOS

- Homebrew (100%):

```sh
brew install unbound
```

  Evidence: local Homebrew formula metadata

- MacPorts (94%):

```sh
sudo port install unbound
```

  Evidence: MacPorts ports tree: net/unbound/Portfile from https://api.github.com/repos/macports/macports-ports/git/trees/master?recursive=1

### Linux

- apk (92%):

```sh
sudo apk add py3-unbound
```

  Evidence: Alpine Linux edge package indexes: py3-unbound from https://dl-cdn.alpinelinux.org/alpine/edge/main/x86_64/APKINDEX.tar.gz

- Debian apt (92%):

```sh
sudo apt install libunbound-dev
```

  Evidence: Debian stable package indexes: libunbound-dev from https://deb.debian.org/debian/dists/stable/main/binary-amd64/Packages.xz

- dnf (92%):

```sh
sudo dnf install python3-unbound
```

  Evidence: Fedora Rawhide package metadata: python3-unbound from https://dl.fedoraproject.org/pub/fedora/linux/development/rawhide/Everything/x86_64/os/repodata/e5ca8ce900cd68f5419e1c39ae517343100b306336cbaeb70a3c153121d95094-primary.xml.zst

- Nix (92%):

```sh
nix profile install nixpkgs#unbound
```

  Evidence: nixpkgs package indexes: pkgs/by-name/un/unbound/package.nix from https://api.github.com/repos/NixOS/nixpkgs/git/trees/master?recursive=1

- pacman (92%):

```sh
sudo pacman -S unbound
```

  Evidence: Arch Linux sync databases: unbound from https://geo.mirror.pkgbuild.com/extra/os/x86_64/extra.db.tar.gz

- zypper (92%):

```sh
sudo zypper install libunbound8
```

  Evidence: openSUSE Tumbleweed package metadata: libunbound8 from https://download.opensuse.org/tumbleweed/repo/oss/repodata/be8d3611d25469107f32075a1697e69ec57a2b850b42348a658cc671ad5ec2b50760d02c3e59524d50da9a11d5be799bdaffba2e166e8ca8858512e3c0bd665d-primary.xml.zst

### Windows

- Scoop (92%):

```sh
scoop install main/unbound
```

  Evidence: Scoop official bucket manifest trees: bucket/unbound.json from https://api.github.com/repos/ScoopInstaller/Main/git/trees/master?recursive=1

- winget (92%):

```sh
winget install --id NLnetLabs.Unbound -e
```

  Evidence: Windows Package Manager source index: NLnetLabs.Unbound from https://cdn.winget.microsoft.com/cache/source.msix

## Package facts

- **Package key:** brew:unbound
- **Package manager:** Homebrew
- **Package manager page:** <https://formulae.brew.sh/formula/unbound>
- **Version:** 1.25.1
- **Source summary:** Validating, recursive, caching DNS resolver
- **Homepage:** <https://www.unbound.net>
- **Repository:** <https://github.com/NLnetLabs/unbound>
- **Upstream docs:** <https://nlnetlabs.nl/documentation/unbound>
- **License:** BSD-3-Clause
- **Source archive:** <https://nlnetlabs.nl/downloads/unbound/unbound-1.25.1.tar.gz>
- **Last updated:** 2026-06-22T14:06:32-07:00
- **Generated:** 2026-07-08T07:18:31+00:00

## Executables

- unbound (cli)
- unbound-anchor (cli)
- unbound-checkconf (cli)
- unbound-control (cli)
- unbound-control-setup (cli)
- unbound-host (cli)
- unbound (alias)
- unbound-anchor (alias)
- unbound-checkconf (alias)
- unbound-control (alias)
- unbound-control-setup (alias)
- unbound-host (alias)

## Dependencies

- libevent
- libnghttp2
- openssl@3

## Uses from macOS

- expat

## Install behavior

- Post-install hook: defined
- Service: declared
- Bottle: available on arm64_linux, arm64_sequoia, arm64_sonoma, arm64_tahoe, sonoma, x86_64_linux

## Freshness

- Page generated: 2026-07-08
- Package-manager version: 1.25.1
- Package-manager updated: 2026-06-22
- Local data: ok
- Upstream repository: https://www.unbound.net
- info: Release/tag comparison is only available for GitHub repositories.
## Project history and usage

Unbound is NLnet Labs' validating, recursive, caching DNS resolver. It is one of the significant infrastructure packages in this batch: a security- and privacy-oriented resolver used as a local stub resolver, a network recursive resolver, a DNSSEC validator, and a library.

### Project history

The official Unbound history says the project started to develop independent open-source DNS software and documentation, jointly funded by VeriSign and the University of Southern California/Information Sciences Institute. The C implementation was based on a Java prototype and was released in May 2008.

The official requirements document names the early resolver work by Bill Manning, David Blacka, and Matt Larson, with contributions from Geoff Sisson and Roy Arends, and says that around 2006 NLnet Labs volunteered to write a full C implementation ready for deployed use.

From the beginning, Unbound was designed around modular resolver components: validator, iterator, cache, networking, and query management. Its stated goals included DNSSEC support, high performance, code diversity in the DNS resolver monoculture, use as a stub resolver or full caching nameserver, portability, and a BSD license.

### Adoption history

NLnet Labs' project page says Unbound runs on Linux and BSD distributions as well as macOS, has packages for most platforms, is included in the base system of all major BSD operating systems, and is in the standard repositories of most Linux distributions.

The input package metadata reflects that breadth in package-manager terms: Homebrew, MacPorts, Nix, pacman, Scoop, winget, zypper, apk, Debian, Fedora, and Ubuntu entries are present. For package users, Unbound is not a novelty CLI; it is deployable network infrastructure.

Unbound's adoption also tracks changes in DNS operations: DNSSEC validation, local caching, query minimisation, DNS-over-TLS, DNS-over-HTTPS, authority zones, and aggressive DNSSEC-validated cache all appear in official NLnet Labs documentation or release notes.

### How it is used

The official home-network tutorial presents Unbound as a resolver that can be installed from OS packages, tested with `dig`, and then used first for a single machine and then for a whole network. It notes that Unbound behaves as a caching recursive DNS resolver out of the box on installation.

Command-line package users care about the suite around the daemon: `unbound-checkconf` for validation, `unbound-control` and `unbound-control-setup` for administration, `unbound-anchor` for trust-anchor handling, and `unbound-host` for lookups. Those executables turn the resolver into something that can be configured, tested, and automated like other Unix services.

### Why package nerds care

Unbound is highly significant in package-manager culture because it is a small, modern alternative to monolithic DNS server deployments for the recursive-resolver role. It is commonly installed on routers, servers, BSD systems, developer laptops, and self-hosted networks.

For package nerds, Unbound represents the ideal infrastructure package: source-available, portable, daemonized, scriptable, configurable through text files, and backed by a specialist upstream. Its DNSSEC and privacy features made it a default recommendation in many local-resolver and self-hosting setups.

### Timeline

- 2006: NLnet Labs volunteers to write the deployed C implementation.
- 2008: Unbound C implementation released in May.
- 2018: Unbound 1.7.0 adds features including aggressive use of the DNSSEC-validated cache.
- 2026: NLnet Labs documentation and project page list Unbound 1.25.1 as the current documented series.

### Related projects

- NSD, also from NLnet Labs, is the related authoritative DNS server counterpart to Unbound's recursive-resolver role.
- libunbound exposes resolver functionality to applications, and related DNS privacy/standards work includes DNSSEC, DNS-over-TLS, DNS-over-HTTPS, query name minimisation, and RFC 8198 aggressive DNSSEC-validated cache.

### Sources

- <https://nlnetlabs.nl/news/2018/Mar/15/unbound-1.7.0-released/>
- <https://nlnetlabs.nl/projects/unbound/about/>
- <https://unbound.docs.nlnetlabs.nl/en/latest/reference/history/index.html>
- <https://unbound.docs.nlnetlabs.nl/en/latest/reference/history/requirements.html>
- <https://unbound.docs.nlnetlabs.nl/en/latest/use-cases/home-resolver.html>
- source_facts.package-manager


## Security Notes

formula declares a Homebrew service.

- **Geiger risk:** orange / medium
- formula declares a Homebrew service


## Configuration and credential file locations

These source-backed paths show where this package keeps local settings or durable credentials. Automic Vault can use them as review targets for secret scanning, migration, and command approval.


## Configuration files

- Unix: /usr/local/etc/unbound/unbound.conf

## Credential files

- Unix: /usr/local/etc/unbound/unbound_server.key, /usr/local/etc/unbound/unbound_control.key, /usr/local/etc/unbound/unbound_server.pem, /usr/local/etc/unbound/unbound_control.pem
## Source Database Details

- **Source Database:** Homebrew formula API
- **Tap:** homebrew/core
- **Full Name:** unbound
- **Version Scheme:** 0
- **Revision:** 0
- **Head Version:** HEAD
- **Bottle Stable Root URL:** <https://ghcr.io/v2/homebrew/core>
- **Deprecated:** no
- **Disabled:** no
- **Keg Only:** no
- **URL Keys:** head, stable

## Other Package-Manager Records

- Debian apt - libunbound-dev - 1.22.0-2+deb13u2: normalized package name match | Debian stable package indexes: libunbound-dev from https://deb.debian.org/debian/dists/stable/main/binary-amd64/Packages.xz | static library, header files, and docs for libunbound | https://www.unbound.net/
- Debian apt - libunbound8 - 1.22.0-2+deb13u2: normalized package name match | Debian stable package indexes: libunbound8 from https://deb.debian.org/debian/dists/stable/main/binary-amd64/Packages.xz | library implementing DNS resolution and validation | https://www.unbound.net/
- Debian apt - python3-unbound - 1.22.0-2+deb13u2: normalized package name match | Debian stable package indexes: python3-unbound from https://deb.debian.org/debian/dists/stable/main/binary-amd64/Packages.xz | library implementing DNS resolution and validation (Python3 bindings) | https://www.unbound.net/
- Debian apt - unbound - 1.22.0-2+deb13u2: normalized package name match | Debian stable package indexes: unbound from https://deb.debian.org/debian/dists/stable/main/binary-amd64/Packages.xz | validating, recursive, caching DNS resolver | https://www.unbound.net/
- Debian apt - unbound-anchor - 1.22.0-2+deb13u2: normalized package name match | Debian stable package indexes: unbound-anchor from https://deb.debian.org/debian/dists/stable/main/binary-amd64/Packages.xz | utility to securely fetch the root DNS trust anchor | https://www.unbound.net/
- Debian apt - unbound-host - 1.22.0-2+deb13u2: normalized package name match | Debian stable package indexes: unbound-host from https://deb.debian.org/debian/dists/stable/main/binary-amd64/Packages.xz | reimplementation of the 'host' command | https://www.unbound.net/
- Nix - unbound: normalized package name match | nixpkgs package indexes: pkgs/by-name/un/unbound/package.nix from https://api.github.com/repos/NixOS/nixpkgs/git/trees/master?recursive=1
- Ubuntu apt - libunbound-dev - 1.19.2-1ubuntu3: normalized package name match | Ubuntu 24.04 LTS package indexes: libunbound-dev from https://archive.ubuntu.com/ubuntu/dists/noble/main/binary-amd64/Packages.gz | static library, header files, and docs for libunbound | https://www.unbound.net/
- Ubuntu apt - libunbound8 - 1.19.2-1ubuntu3: normalized package name match | Ubuntu 24.04 LTS package indexes: libunbound8 from https://archive.ubuntu.com/ubuntu/dists/noble/main/binary-amd64/Packages.gz | library implementing DNS resolution and validation | https://www.unbound.net/
- Ubuntu apt - python3-unbound - 1.19.2-1ubuntu3: normalized package name match | Ubuntu 24.04 LTS package indexes: python3-unbound from https://archive.ubuntu.com/ubuntu/dists/noble/universe/binary-amd64/Packages.gz | library implementing DNS resolution and validation (Python3 bindings) | https://www.unbound.net/
- Ubuntu apt - unbound - 1.19.2-1ubuntu3: normalized package name match | Ubuntu 24.04 LTS package indexes: unbound from https://archive.ubuntu.com/ubuntu/dists/noble/universe/binary-amd64/Packages.gz | validating, recursive, caching DNS resolver | https://www.unbound.net/
- Ubuntu apt - unbound-anchor - 1.19.2-1ubuntu3: normalized package name match | Ubuntu 24.04 LTS package indexes: unbound-anchor from https://archive.ubuntu.com/ubuntu/dists/noble/universe/binary-amd64/Packages.gz | utility to securely fetch the root DNS trust anchor | https://www.unbound.net/
- Ubuntu apt - unbound-host - 1.19.2-1ubuntu3: normalized package name match | Ubuntu 24.04 LTS package indexes: unbound-host from https://archive.ubuntu.com/ubuntu/dists/noble/universe/binary-amd64/Packages.gz | reimplementation of the 'host' command | https://www.unbound.net/
- apk - py3-unbound - 1.25.1-r0: normalized package name match | Alpine Linux edge package indexes: py3-unbound from https://dl-cdn.alpinelinux.org/alpine/edge/main/x86_64/APKINDEX.tar.gz | Python bindings to libunbound | https://nlnetlabs.nl/projects/unbound/about/
- apk - unbound - 1.25.1-r0: normalized package name match | Alpine Linux edge package indexes: unbound from https://dl-cdn.alpinelinux.org/alpine/edge/main/x86_64/APKINDEX.tar.gz | Unbound is a validating, recursive, and caching DNS resolver | https://nlnetlabs.nl/projects/unbound/about/
- apk - unbound-dbg - 1.25.1-r0: normalized package name match | Alpine Linux edge package indexes: unbound-dbg from https://dl-cdn.alpinelinux.org/alpine/edge/main/x86_64/APKINDEX.tar.gz | Unbound is a validating, recursive, and caching DNS resolver (debug symbols) | https://nlnetlabs.nl/projects/unbound/about/


## Related links

- [Secret-risk packages](https://www.automicvault.com/pkg/secret-risk-packages/) - Has protected-tool coverage, approval-gate, or non-low Geiger security signals.
- [Terminal utility packages](https://www.automicvault.com/pkg/terminal-utilities/) - Matched terminal and command-line workflow metadata.
- [Networking and protocol packages](https://www.automicvault.com/pkg/networking-protocol-tools/) - Matched network, protocol, or remote-service metadata.
- [Homebrew utility packages](https://www.automicvault.com/pkg/brew-utility-packages/) - Matched Homebrew package provider.
- [libevent](https://www.automicvault.com/pkg/brew/libevent/) - Runtime dependency declared by Homebrew.
- [openssl@3](https://www.automicvault.com/pkg/brew/openssl-3/) - Runtime dependency declared by Homebrew.
- [getdns](https://www.automicvault.com/pkg/brew/getdns/) - Popular package that depends on this formula.
- [hsd](https://www.automicvault.com/pkg/brew/hsd/) - Popular package that depends on this formula.
- [monero](https://www.automicvault.com/pkg/brew/monero/) - Popular package that depends on this formula.
- [redwax-tool](https://www.automicvault.com/pkg/brew/redwax-tool/) - Popular package that depends on this formula.
- [stubby](https://www.automicvault.com/pkg/brew/stubby/) - Popular package that depends on this formula.
- [knot-resolver](https://www.automicvault.com/pkg/brew/knot-resolver/) - Shares av.db curated category or tags: cli, dns, dnssec, networking, resolver.
- [bind](https://www.automicvault.com/pkg/brew/bind/) - Shares av.db curated category or tags: cli, dns, dnssec, networking.
- [c-ares](https://www.automicvault.com/pkg/brew/c-ares/) - Shares av.db curated category or tags: cli, dns, networking, resolver.
- [knot](https://www.automicvault.com/pkg/brew/knot/) - Shares av.db curated category or tags: cli, dns, dnssec, networking.
- [ldns](https://www.automicvault.com/pkg/brew/ldns/) - Shares av.db curated category or tags: cli, dns, dnssec, networking.
- [nextdns](https://www.automicvault.com/pkg/brew/nextdns/) - Shares av.db curated category or tags: cli, dns, networking, resolver.
- [adns](https://www.automicvault.com/pkg/brew/adns/) - Shares av.db curated category or tags: cli, dns, networking, resolver.
- [nsd](https://www.automicvault.com/pkg/brew/nsd/) - Local package facts share a topical domain. Shared terms: checkconf, cli, control, dns, libevent.

## Combined YAML source

View the package source record on GitHub. [combined/unbound.yml](https://github.com/automic-vault/db/blob/main/combined/unbound.yml)


## Sources

- Nucleus package database
- Geiger risk classifier
- package-page enrichment
- curated configuration and credential file locations
- curated package history
- package version freshness
- av.db category and tag curation
- package relationship graph
- external package-manager database matches
- cross-ecosystem install command graph
