An open API service indexing awesome lists of open source software.

https://github.com/mapi68/dnscrypt-proxy-pihole

Preconfigured deb package for every Raspberry Pi and Pi-hole to use only best DNSCrypt, DNS-over-HTTPS and No-Log servers
https://github.com/mapi68/dnscrypt-proxy-pihole

armv7 dns dns-over-https dns-privacy dns-resolver dns-server dnscrypt pi-hole proxy raspberry-pi raspbian-os

Last synced: 1 day ago
JSON representation

Preconfigured deb package for every Raspberry Pi and Pi-hole to use only best DNSCrypt, DNS-over-HTTPS and No-Log servers

Awesome Lists containing this project

README

          

# 🛡️ dnscrypt-proxy-pihole

[![License: MIT](https://img.shields.io/badge/License-MIT-blue.svg)](https://opensource.org/licenses/MIT)
[![Pi-hole Compatible](https://img.shields.io/badge/Pi--hole-Compatible-green.svg)](https://pi-hole.net/)
[![Raspberry Pi](https://img.shields.io/badge/Raspberry%20Pi-OS%2011%7C12%7C13-red.svg)](https://www.raspberrypi.org/)


DNSCrypt
DoH
No Logs



📢 Secure DNS solution for your Raspberry Pi & Pi-hole setup


Enhanced DNS encryption and privacy for Pi-hole with pre-configured settings

---

## 📋 Table of Contents

[🔍 Overview](#overview) •
[✨ Features](#features) •
[🚀 Install](#install) •
[📜 Scripts](#scripts) •
[⚙️ Configuration](#configuration) •
[🔐 Verification](#verification) •
[🗑️ Uninstall](#uninstall)

---

## 🔍 Overview

A preconfigured DNSCrypt-proxy package for Raspberry Pi and Pi-hole users that ensures secure, encrypted DNS queries through carefully selected DNSCrypt and DNS-over-HTTPS servers with strict no-logging policies.

### 🎯 Key Benefits

- Encrypts all DNS queries for enhanced privacy
- Protects against DNS spoofing and MITM attacks
- Seamless integration with Pi-hole
- Pre-configured for optimal security and performance

### 📦 Compatibility

✅ **CURRENT VERSION:**
- [Raspberry Pi OS 64bit arm64](https://github.com/mapi68/dnscrypt-proxy-pihole/raw/refs/heads/master/dnscrypt-proxy-pihole_latest_arm64.deb)
- [Raspberry Pi OS 32bit armhf](https://github.com/mapi68/dnscrypt-proxy-pihole/raw/refs/heads/master/dnscrypt-proxy-pihole_latest_armhf.deb)
- Pi-hole v6.0+
- DNS server: `127.0.0.1#53533`

⚠️ **LEGACY VERSION:**
- [Raspberry Pi OS 11 (bullseye)](https://github.com/mapi68/dnscrypt-proxy-pihole/raw/refs/heads/master/dnscrypt-proxy-pihole_bullseye_armhf.deb)

## ✨ Features




Feature
Description
Benefit


🔒 DNSCrypt
Advanced DNS encryption
Protects against DNS surveillance


🌐 DNS-over-HTTPS
Modern DNS protocol support
Additional security layer


🕵️ Privacy Focus
No-log DNS servers only
Ensures query privacy


🛡️ DNSSEC
Built-in validation
Prevents DNS spoofing


⚡ Optimized
Raspberry Pi tuned
Efficient resource usage


## 🚀 Install

### Quick Install
```bash
curl -sSfL https://raw.githubusercontent.com/mapi68/dnscrypt-proxy-pihole/master/dnscrypt-proxy-pihole-install | bash
```

## 📜 Scripts

### 1. `install-latest-dnscrypt-proxy.bash`


🔄 Automated Installer

Downloads and installs the latest dnscrypt-proxy package from official Debian repositories.

**Features:**
- Auto-detects system architecture
- Downloads latest version from Debian repos
- Handles all dependencies
- Multi-architecture support (amd64, arm64, armhf, ...)

**Usage:**
```bash
curl -sSfL https://raw.githubusercontent.com/mapi68/dnscrypt-proxy-pihole/refs/heads/master/install-latest-dnscrypt-proxy.bash | bash
```

### 2. `dnscrypt-proxy-pihole.bash`


🔧 Configuration Script

Sets up DNSCrypt-proxy for optimal use with Pi-hole.

**Features:**
- Configures secure DNS settings
- Sets up port 53533 for Pi-hole
- Enables DNSSEC validation
- Configures no-logging policy
- Optimizes caching

**Usage:**
```bash
curl -sSfL https://raw.githubusercontent.com/mapi68/dnscrypt-proxy-pihole/refs/heads/master/dnscrypt-proxy-pihole.bash | bash
```

### Installation Methods




Method
Description
When to Use


dnscrypt-proxy-pihole-install
Installs pre-configured package
For quick, automated setup


install-latest-dnscrypt-proxy.bash
Installs vanilla dnscrypt-proxy from Debian repos
For custom installations


dnscrypt-proxy-pihole.bash
Configures dnscrypt-proxy for Pi-hole
After manual installation


## ⚙️ Configuration

### Pi-hole Setup

1. Access Pi-hole admin interface
2. Navigate to Settings → DNS
3. Configure:
- Set Custom DNS: `127.0.0.1#53533`
- Disable DNSSEC (handled by DNSCrypt)





Pi-hole DNS Settings


Pi-hole DNS Configuration



### Important Files
- Configuration: `/etc/dnscrypt-proxy/dnscrypt-proxy.toml`
- Query Log: `/var/log/dnscrypt-proxy/query.log`
- Service: `/lib/systemd/system/dnscrypt-proxy.service`

## 🔐 Verification

### DNS Resolution:
```bash
tail -f /var/log/dnscrypt-proxy/query.log
```

### Service Status:
```bash
journalctl -f -u dnscrypt-proxy
```

### DNSSEC Validation Check (The Security Test):
```bash
dig +dnssec google.com @127.0.0.1 -p 53533
```
**Expected Status:** `status: NOERROR`
**Security Confirmation:** Confirms connectivity and successful resolution of a signed domain.

```bash
dig dnssec-failed.org @127.0.0.1 -p 53533
```
**Expected Status:** `status: SERVFAIL`
**Security Confirmation:** **Confirms active DNSSEC Validation.** The resolver blocks the corrupt signature, protecting the system.

### Online Tests
- [DNSLeakTest](https://www.dnsleaktest.com)
- [Cloudflare ESNI Check](https://www.cloudflare.com/ssl/encrypted-sni)





DNSSEC Validation


Successful Cloudflare DNSSEC Validation



## 🗑️ Uninstall

Remove completely with:
```bash
sudo apt --purge autoremove dnscrypt-proxy-pihole -y
```