Developer(s) | Pi-hole, LLC [1] |
---|---|
Initial release | June 15, 2015 |
Stable release | 5.18.2
[2]
/ 31 March 2024 |
Repository |
github |
Written in |
Bash, C (optional DNS server FTLDNS), PHP, CSS (optional web console) |
Operating system | Linux |
Licence | European Union Public Licence |
Website |
pi-hole |
Pi-hole is a Linux network-level advertisement and Internet tracker blocking application [3] [4] which acts as a DNS sinkhole [5] and optionally a DHCP server, intended for use on a private network. [1] It is designed for low-power embedded devices with network capability, such as the Raspberry Pi, [3] [6] but can be installed on almost any Linux machine. [5] [7]
Pi-hole has the ability to block traditional website advertisements as well as advertisements in unconventional places, such as smart TVs and mobile operating system advertisements. [8]
The Pi-hole project was created by Jacob Salmela as an open source alternative to AdTrap [9] [10] in 2014 [11] and was hosted on GitHub. [12] Since then, several contributors have joined the project. [11]
Pi-hole makes use of a modified dnsmasq called FTLDNS, [13] cURL, lighttpd, PHP and the AdminLTE Dashboard [14] to block DNS requests for known tracking and advertising domains. The application acts as a DNS server for a private network (replacing any pre-existing DNS server provided by another device or the ISP), with the ability to block advertisements and tracking domains for users' devices. [8] It obtains lists of advertisement and tracking domains from a configurable list of predefined sources, and compares DNS queries against them. If a match is found within any of the lists, or a locally configured blocklist, Pi-hole will refuse to resolve the requested domain and respond to the requesting device with a dummy address. [15]
Because Pi-hole blocks domains at the network level, it is able to block advertisements, such as banner advertisements on a webpage, but it can also block advertisements in unconventional locations, such as on Android, iOS and smart TVs. [8]
Using VPN services, Pi-Hole can block domains without using a DNS filter setup in a router. Any device that supports VPN can use Pi-Hole on a cellular network or a home network without having a DNS server configured. [16]
The nature of Pi-hole allows it to also block website domains in general by manually adding the domain name to a blocklist. Likewise, domains can be manually added to an allowlist should a website's function be impaired by domains being blocked. Pi-hole can also function as a network monitoring tool, [17] which can aid in troubleshooting DNS requests and network faults. [7] Pi-hole can also be used to encourage the use of DNS over HTTPS for devices using it as a DNS server with the cloudflared binary provided by Cloudflare. [18]
Pi-hole functions similarly to a network firewall, meaning that advertisements and tracking domains are blocked for all devices behind it, whereas traditional advertisement blockers only run in a user's browser, and remove advertisements only on the same machine. [7] [19]