Unbound
nlnetlabs.nl/projects/unboundDesktop [Linux, Mac, OpenWrt & Windows]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.)
- Homepage:nlnetlabs.nl/projects/unbound
- GitHub:github.com/NLnetLabs/unbound
- Privacy:unboundapp.com/privacy-policy.html
- Web info:web-check.xyz/check/nlnetlabs.nl
Unbound Source Code
Author
Description
Unbound is a validating, recursive, and caching DNS resolver.
Homepage
https://nlnetlabs.nl/unboundRepository
- LicenseBSD-3-Clause
- Created13 Jun 17
- Primary languageC
- Size102,844 KB
- Stars4,846
- Forks451
- Watchers4,846
Top Contributors
@wcawijngaards (6975)
@gthess (691)
@ralphdolmans (325)
@wtoorop (56)
@Philip-NLnetLabs (37)
@fobser (20)
@noloader (17)
@TCY16 (17)
@Maryse47 (13)
@pemensik (12)
@PMunch (8)
@countsudoku (8)
@AlexanderBand (8)
@episource (7)
@petrvaganoff (6)
@Talkabout (6)
@vvfedorenko (6)
@k9982874 (6)
@boris-sah (5)
@Shchelk (5)
@kimheino (5)
@cgallred (5)
@xiaoxiaoafeifei (4)
@rcmcdonald91 (4)
@eaglegai (4)
@dyunwei (4)
@edmonds (4)
@FGasper (3)
@fhriley (3)
@rijswijk (3)
@trofi (2)
@sakateka (2)
@sthen (2)
@yrk-lab (2)
@yschaeff (2)
@headshog (2)
@mibere (2)
@orbea (2)
@arunabha007 (2)
@maertsen (2)
@hardfalcon (2)
@luismerino (2)
@jonathangray (2)
@jinmeiib (2)
@he32 (2)
@Frzk (2)
@rex4539 (2)
@n3bul4 (2)
@edevil (2)
@rmetrich (1)
@r-barnes (1)
@Scrumplex (1)
@stevenc99 (1)
@shoeper (1)
@botovq (1)
@tduboys (1)
@tilan7663 (1)
@TochusC (1)
@Pierre4012 (1)
@psumbera (1)
@pavel-odintsov (1)
@paulmenzel (1)
@valldrac (1)
@ndptech (1)
@NickCao (1)
@natalie-reece (1)
@hunts (1)
@socketpair (1)
@rma-shuyu (1)
@wenxuan70 (1)
@sneurlax (1)
@smeddlep (1)
@scottrw93 (1)
@sam-lunt (1)
@ryndia (1)
@nnarayanamurthy (1)
@niftylettuce (1)
@markyang92 (1)
@liheng562653799 (1)
@ihsinme (1)
@pettai (1)
@akhanin-dnsf (1)
@vcunat (1)
@ciz (1)
@vstinner (1)
@tobbez (1)
@chipitsine (1)
@GoetzGoerisch (1)
@gearnode (1)
@Fothsid (1)
@Erethon (1)
@dvzrv (1)
@eqvinox (1)
@dhgutteridge (1)
@hdais (1)
@dag-erling (1)
@cgzones (1)
@ArchangeGabriel (1)
@beni-sandu (1)
@sibeream (1)
Recent Commits
W.C.A. Wijngaards(03 Sept 26)
- Fix that when a partial EDNS option is in a query, the response is a more RFC conformant FORMERR, since the EDNS option is malformed. Also fix to have an EDNS size for the reply error encoding for failed EDNS parse of the query. Thanks to Qifan Zhang, Palo Alto Networks, for the report.
W.C.A. Wijngaards(03 Sept 26)
- Fix that when extended EDNS RCODE does not fit, at short udpsize, the reply is truncated with TC and fix for the rcode in that short reply to be a sensible rcode. Thanks to Qifan Zhang, Palo Alto Networks, for the report.
W.C.A. Wijngaards(03 Sept 26)
- Fix to reorder SVCB and HTTPS svcparams for unknown RR form zonefile input. If it can not be parsed it is leniently accepted, much like as a secondary it leniently accepts it. Thanks to Qifan Zhang, Palo Alto Networks, for the report.
W.C.A. Wijngaards(03 Sept 26)
- Remove unused .travis.yml for ci integration.
W.C.A. Wijngaards(03 Sept 26)
- Remove unused .travis.yml for ci integration.
W.C.A. Wijngaards(03 Sept 26)
- Fix to match NSEC3 hash length to the NSEC3 algorithm, this stops negative cache overdeletion. It also contrains the hash label length and checks if the NSEC nextowner is valid. Thanks to Yuqi Qiu & Xiang Li (Nankai University, AOSP Lab).
W.C.A. Wijngaards(02 Sept 26)
- Fix to not commit to have_zone at apply AXFR time for auth zone transfers, so that later failure rolls back to not. The have_zone value is set later when the SOA is retrieved. Also fix to clear the zone data when a transfer does not have a valid SOA record in the zone for it. Thanks to Qifan Zhang, Palo Alto Networks, for the report.
W.C.A. Wijngaards(01 Sept 26)
- Fix LOC RR parse to avoid double to uint32 cast overflow. Thanks to Qifan Zhang, Palo Alto Networks, for the report.
W.C.A. Wijngaards(01 Sept 26)
- Fix to allow block_a and other local-zone types in a view.
W.C.A. Wijngaards(26 Aug 26)
- Fix notify for auth-zone during initial start up. It performs the transfer and not only lookup.
W.C.A. Wijngaards(24 Aug 26)
- Fix #132: Add `harden-cname-follow: yes` config option, that can be used to disable cname scrubbing. That can be useful for when the traffic is on localhost only.
W.C.A. Wijngaards(21 Aug 26)
- Fix to defend against double event deletion, that could cause event corruption and use after free, for comm_timer_disable.
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.
Unbound Security
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
US
AT
NL
DE
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
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>
View on DockerHub
cbcrowe/pihole-unbound:latestRun 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:latestCompose 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-stoppedEnvironment 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
A flexible DNS proxy, with support for modern encrypted DNS protocols including DNSCrypt V2, DNS-over-HTTPS and Anonymized DNSCrypt. Also allows for advanced monitoring, filtering, caching and client IP protection through Tor, SOCKS proxies or Anonymized DNS relays.
Non-root, small-sized DNS changer utilizing DNS-over-HTTPS and DNS-over-TLS. (Note, since this uses Android's VPN API, it is not possible to run a VPN while using Nebulo.)
Free and open source DNS changer with support for DNS-over-HTTPS, DNS-over-Tor, and DNSCrypt v3 with Anonymized Relays. (Note, since this uses Android's VPN API, it is not possible to run a VPN while using RethinkDNS + Firewall.)
Stubby
(Desktop [Linux, Mac, OpenWrt & Windows])
dnsprivacy.org/wiki/display/DP/DNS+Privacy+Daemon+-+StubbyActs as a local DNS Privacy stub resolver (using DNS-over-TLS). Stubby encrypts DNS queries sent from a client machine (desktop or laptop) to a DNS Privacy resolver increasing end user privacy. Stubby can be used in combination with Unbound - Unbound provides a local cache and Stubby manages the upstream TLS connections (since Unbound cannot yet re-use TCP/TLS connections), see example configuration.
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/unboundThe 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!