Unbound

nlnetlabs.nl/projects/unbound
Unbound

Validating, recursive, caching DNS resolve with support for DNS-over-TLS. Designed to be fast, lean, and secure Unbound incorporates modern features based on open standards. It's fully open source, and recently audited. (For an in-depth tutorial, see this article by DNSWatch.)

Open Source

Unbound Source Code

Author

NLnetLabs

Description

Unbound is a validating, recursive, and caching DNS resolver.

#dns#dns-privacy#dnssec#recursor#resolver

Homepage

https://nlnetlabs.nl/unbound

Repository

  • LicenseBSD-3-Clause
  • Created13 Jun 17
  • Primary languageC
  • Size101,925 KB
  • Stars4,792
  • Forks448
  • Watchers4,792

Language Usage

Language Usage

Project Health

Recent Commits

  • W.C.A. Wijngaards(11 Aug 26)

    - Fix stat_values.tdir test to have less test failures.

  • W.C.A. Wijngaards(11 Aug 26)

    - Fix #1492 from zacek: Data race in log_init() on key_created/log_lock when calling ub_ctx_create() concurrently from multiple threads.

  • W.C.A. Wijngaards(07 Aug 26)

    - Fix #1489 from jplesnik: Replace removed Python 2 C API macros for SWIG 4.5.0 compatibility.

  • W.C.A. Wijngaards(06 Aug 26)

    Note issue number in Changlog entry.

  • akhanin-dnsf(06 Aug 26)

    - Fix bounds check in packed_rr_to_string, it checked the (#1488) assembled rr length against the output string length dest_len, instead of against the size of the rr buffer it writes into. Callers in cachedump.c and remote.c pass a dest_len larger than that buffer. - Unit test for packed_rr_to_string.

  • W.C.A. Wijngaards(06 Aug 26)

    - Fix #1487: regression in 1.26.0, ipsecmod is now always partly enabled.

  • W.C.A. Wijngaards(06 Aug 26)

    Fix typo in Changelog.

  • W.C.A. Wijngaards(06 Aug 26)

    - Fix ##1485: the list_forwards command omits port numbers. The list_forwards and list_stubs commands for unbound-control print port and tls auth name.

  • W.C.A. Wijngaards(04 Aug 26)

    - Fix to set makedist.sh to not wget config.sub and config.guess from git repo. The fetch times out, and the version from libtoolize is much more recent now than that it was when the wget was added.

  • W.C.A. Wijngaards(04 Aug 26)

    Note 1.26.0 release.

  • W.C.A. Wijngaards(31 Jul 26)

    - For #1483: The failure reason when an NSEC NXDOMAIN is encountered when looking for an insecure delegation, is fixed to mention the NSEC records, instead of nonexistent NSEC3 records, that it attempted.

  • W.C.A. Wijngaards(30 Jul 26)

    - Fix #1482: DNS-over-QUIC doesn't work with simple config. That fixes interface-automatic for use with doq service.

  • W.C.A. Wijngaards(28 Jul 26)

    - Tag for 1.26.0rc1. The repo continues with version 1.26.1.

  • W.C.A. Wijngaards(24 Jul 26)

    - Fix to call OPENSSL_cleanup on exit when that is defined.

  • W.C.A. Wijngaards(24 Jul 26)

    Changelog note for #1479 - Merge #1479 from psumbera: Fix pthread detection on Solaris 11.4.

  • Petr Sumbera(24 Jul 26)

    Fix pthread detection on Solaris 11.4 (#1479) AX_PTHREAD requires _REENTRANT to confirm that pthread support is enabled. Solaris 11.4 headers no longer use the macro, and GCC 16 therefore no longer defines it for -pthread. Detect XPG7 support in the target headers and require _REENTRANT only on older Solaris releases. The existing pthread compile and link test remains the final capability check. This follows the canonical Autoconf Archive change: https://github.com/autoconf-archive/autoconf-archive/pull/341 Regenerate configure with Autoconf 2.71. Tested on Solaris 11.4 with GCC 15.2 and GCC 16.1. The Autoconf Archive change was also tested on Solaris 11.3. Co-authored-by: Rainer Orth <[email protected]>

  • W.C.A. Wijngaards(24 Jul 26)

    Changelog note for #1481. - Fix #1481: Fix to use tls-port after referral if tls-upstream is set.

  • W.C.A. Wijngaards(24 Jul 26)

    - Fix to use tls-port after referral if tls-upstream is set.

  • W.C.A. Wijngaards(24 Jul 26)

    - Fix sign of comparison warning in shared ports setup.

  • W.C.A. Wijngaards(24 Jul 26)

    - Fix to guard access to shared ports interface array during set up, for analyzer.

  • W.C.A. Wijngaards(24 Jul 26)

    - Fix unused variable warnings in shared_ports_fetch_random and shared_ports_return_port when compiled without threads.

  • W.C.A. Wijngaards(24 Jul 26)

    Changelog entry for #1480 - Merge #1480 from petrvaganoff: authzone: fix memory leak in xfer_set_masters() error path.

  • Petr Vaganov(24 Jul 26)

    authzone: fix memory leak in xfer_set_masters() error path (#1480) Added memory deallocation for the `file` and `host` fields of the `auth_master` node in the event of a URL/allocation error, and unlinked the partially created node from the masters list by resetting the link that pointed to it. Signed-off-by: Petr Vaganov <[email protected]>

  • W.C.A. Wijngaards(24 Jul 26)

    - Fix lock test protect for auth zone change. - Fix to lock shared_ports structure during initialisation. - Fix to lock anchor structure when file is set for it in

  • W.C.A. Wijngaards(24 Jul 26)

    - Fix to allow test fake sha1 on systems with possible sha1 support. - Fix to use sha256 for unbound-anchor unit test. - Fix unbound-anchor check for return value of X509_NAME_get_text_by_NID of the emailaddress.

  • W.C.A. Wijngaards(24 Jul 26)

    - Update generated man pages.

  • W.C.A. Wijngaards(24 Jul 26)

    - set code repository version to 1.26.0.

  • W.C.A. Wijngaards(24 Jul 26)

    - Fix #1477: respip + dns64: dns64 uses A records modified by respip instead of original A records. Adds local-zone types block_a_wdata and block_aaaa_wdata, that are like block_a and block_aaaa, and uses local-data if present.

  • W.C.A. Wijngaards(24 Jul 26)

    - Unit test for block_a and block_aaaa.

  • W.C.A. Wijngaards(24 Jul 26)

    Changelog note for #1433 - Merge #1433 from jisakiel: Add new static zone type block_aaaa to suppress AAAA queries.

Unbound Security

5.9/10

Repo Security Summary

Updated 27 Jul 26 Fuzz tested

  • Code-Review1/10
  • Maintained10/10
  • Dangerous-Workflow10/10
  • Security-Policy10/10
  • PackagingN/A
  • CII-Best-Practices0/10
  • Token-Permissions0/10
  • Binary-Artifacts10/10
  • License10/10
  • Fuzzing10/10
  • Branch-ProtectionN/A
  • Signed-ReleasesN/A
  • Pinned-Dependencies0/10
  • SAST0/10

Unbound Website

Website

NLnet Labs - Unbound - About

Unbound is a validating, recursive, caching DNS resolver. It is designed to be fast and lean and incorporates modern features based on open standards. To help increase online privacy, Unbound supports DNS-over-TLS and DNS-over-HTTPS which allows clients to encrypt their communication. In addition, it supports various modern standards that limit …

Redirects

Redirects to https://nlnetlabs.nl/projects/unbound/about/

Security Checks

All 65 security checks passed

Server Details

  • IP Address128.140.76.106
  • Hostnamestatic.106.76.140.128.clients.your-server.de
  • LocationNuremberg,Bayern,Germany,EU
  • ISPHetzner Online GmbH
  • ASNAS24940

Associated Countries

  • USUS
  • ATAT
  • NLNL
  • DEDE

Safety Score

Website marked as safe

100%

Blacklist Check

nlnetlabs.nl was found on 0 blacklists

  • AntiSocial Blacklist
  • Artists Against 419
  • Badbitcoin
  • Bambenek Consulting
  • CERT Polska
  • CoinBlockerLists
  • CRDF
  • CryptoScamDB
  • EtherAddressLookup
  • EtherScamDB
  • Fake Website Buster
  • MetaMask EthPhishing
  • NABP Not Recommended Sites
  • OpenPhish
  • PetScams
  • PhishFeed
  • PhishFort
  • Phishing.Database
  • PhishStats
  • PhishTank
  • Phishunt
  • RPiList Not Serious
  • Scam.Directory
  • SecureReload Phishing List
  • Spam404
  • StopGunScams
  • Suspicious Hosting IP
  • ThreatFox
  • ThreatLog
  • TweetFeed
  • URLhaus
  • ViriBack C2 Tracker

Website Preview

Website preview

Unbound Docker

Container Info

pihole-unbound

A Linux network-level advertisement and Internet tracker blocking application which acts as a DNS sinkhole. This version has Ubound software installed on it so you don't need to rely on external DNS providers. When the installation is complete, navigate to your.ip.goes.here:1010/admin. Follow the article <a href='https://medium.com/@niktrix/getting-rid-of-systemd-resolved-consuming-port-53-605f0234f32f'>here</a>

#Other#Tools

View on DockerHub

cbcrowe/pihole-unbound:latest

Run Command

docker run -d \
  -p 53:53/tcp \
  -p 53:53/udp \
  -p 1010:80/tcp \
  -p 4443:443/tcp \
  -e ServerIP=${ServerIP} \
  -e TZ=${TZ} \
  -e DNSSEC=${DNSSEC} \
  -e DNS1=${DNS1} \
  -e DNS2=${DNS2} \
  -v /portainer/Files/AppData/Config/PiHole-Unbound:/etc/pihole \
  -v /portainer/Files/AppData/Config/PiHole-Unbound/DNS:/etc/dnsmasq.d \
  --restart=unless-stopped \
  cbcrowe/pihole-unbound:latest

Compose File

version: 3.8
services:
  pi-hole-unbound:
    image: "cbcrowe/pihole-unbound:latest"
    ports:
      - "53:53/tcp"
      - "53:53/udp"
      - "1010:80/tcp"
      - "4443:443/tcp"
    environment:
      ServerIP: 192.168.0.X
      TZ: Europe\London
      DNSSEC: 
      DNS1: 127.0.0.1#5335
      DNS2: 127.0.0.1#5335
    volumes:
      - "/portainer/Files/AppData/Config/PiHole-Unbound:/etc/pihole"
      - "/portainer/Files/AppData/Config/PiHole-Unbound/DNS:/etc/dnsmasq.d"
    restart: unless-stopped

Environment Variables

  • Var NameDefault
  • ServerIP192.168.0.X
  • TZEurope\London
  • DNSSECnull
  • DNS1127.0.0.1#5335
  • DNS2127.0.0.1#5335

Port List

  • 53:53/tcp
  • 53:53/udp
  • 1010:80/tcp
  • 4443:443/tcp

Volume Mounting

  • Container PathHost Bind
  • /etc/pihole/portainer/Files/AppData/Config/PiHole-Unbound
  • /etc/dnsmasq.d/portainer/Files/AppData/Config/PiHole-Unbound/DNS

Unbound Reviews

More DNS Clients

About the Data: Unbound

Edit Unbound Data

You can edit Unbound's entry in this section of awesome-privacy.yml by submitting a PR to our GitHub repo.
Note that some of the information shown above has been aggregated from external sources, a list of these can be found data documentation.

Origin Data

Modify Data

API

You can access Unbound's data programmatically via our API. Simply make a GET request to:

https://api.awesome-privacy.xyz/v1/services/unbound

The REST API is free, no-auth and CORS-enabled. To learn more, view the API Docs or read the API Usage Guide.

Share Unbound

Help your friends compare DNS Clients, and pick privacy-respecting software and services.
Share Unbound and Awesome Privacy with your network!