Skip to content

pfSense package for DNSCrypt Proxy - encrypted DNS with full GUI support

License

Notifications You must be signed in to change notification settings

nopoz/pfsense-dnscrypt-proxy

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

9 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

pfSense DNSCrypt Proxy Package

A pfSense package providing a full GUI for DNSCrypt Proxy, an encrypted DNS client supporting DNSCrypt v2 and DNS-over-HTTPS (DoH) protocols.

Note: This is a community-maintained package and is not affiliated with or supported by Netgate.

Installation

Run this command in the pfSense shell (via SSH or Console):

pfSense CE

pkg-static add https://github.com/nopoz/pfsense-dnscrypt-proxy/releases/latest/download/pfSense-pkg-dnscrypt-proxy.pkg

pfSense Plus

pkg-static -C /dev/null add https://github.com/nopoz/pfsense-dnscrypt-proxy/releases/latest/download/pfSense-pkg-dnscrypt-proxy.pkg

Installing a Specific Version

Replace latest/download/pfSense-pkg-dnscrypt-proxy.pkg with download/vX.X.X/pfSense-pkg-dnscrypt-proxy-X.X.X.pkg:

pkg-static add https://github.com/nopoz/pfsense-dnscrypt-proxy/releases/download/v1.0.0/pfSense-pkg-dnscrypt-proxy-1.0.0.pkg

See all available versions on the Releases page.

After installation, navigate to Services > DNSCrypt Proxy in the pfSense web interface.

Uninstall

pkg delete pfSense-pkg-dnscrypt-proxy

Complete Removal (Troubleshooting)

If normal uninstall doesn't fully clean up, or you need a fresh start:

# From your local machine (requires SSH access to pfSense)
./uninstall.sh pfsense.local

This removes all package files, runtime artifacts, and pfSense registrations while preserving your settings in config.xml.

Features

  • Full GUI Configuration - 7 configuration tabs accessible from the pfSense web interface
  • Multiple Protocols - Supports DNSCrypt v2, DNS-over-HTTPS (DoH), and Anonymized DNS
  • Popular Providers - Pre-configured servers from Cloudflare, Quad9, Google, AdGuard, NextDNS, Mullvad, OpenDNS, CleanBrowsing, and more
  • Custom Resolvers - Add custom servers via DNS stamps
  • Domain Filtering - Block and allow lists, forwarding rules, and cloaking
  • Query Logging - Built-in query log viewer with filtering
  • Multi-Architecture - Supports both amd64 and arm64 (auto-detected)
  • Service Integration - Managed via Status > Services like native pfSense services

Screenshots

Click to expand screenshots

General Settings

General Settings

Server Selection

Server Selection

Cache & Filtering

Cache Filtering

Logging

Logging

Advanced

Advanced

Query Log

Query Log

Configuration Guide

Basic Setup

  1. Install the package using the command above
  2. Navigate to Services > DNSCrypt Proxy
  3. Check Enable DNSCrypt Proxy
  4. Select your preferred DNS servers from the Server Selection tab
  5. Click Save

Option A: Use with DNS Resolver (Unbound) - Recommended

Forward Unbound queries through DNSCrypt Proxy:

  1. Go to Services > DNS Resolver > General Settings
  2. Add the following to Custom options:
server:
    do-not-query-localhost: no
forward-zone:
    name: "."
    forward-addr: 127.0.0.1@5300
  1. Click Save and Apply Changes

Option B: Use as System DNS Directly

To use DNSCrypt Proxy directly via System > General Setup:

  1. Disable DNS Resolver: Go to Services > DNS Resolver, uncheck Enable, and click Save
  2. Configure DNSCrypt Proxy to listen on port 53
  3. Go to System > General Setup > DNS Server Settings and set DNS Server to 127.0.0.1

Note: The pfSense DNS Server Settings only accepts IP addresses and assumes port 53.

Building from Source

Requirements: FreeBSD with pkg tools, or a pfSense instance for remote builds.

# Clone the repository
git clone https://github.com/nopoz/pfsense-dnscrypt-proxy.git
cd pfsense-dnscrypt-proxy

# Build the package (requires FreeBSD)
./build.sh build

# Or build and deploy directly to pfSense via SSH
./build.sh deploy pfsense.local

# Clean build artifacts
./build.sh clean

Available Scripts

Script Purpose
build.sh build Build .pkg file (requires FreeBSD)
build.sh deploy [host] Build on pfSense via SSH and install
build.sh clean Remove local build artifacts
uninstall.sh [host] Completely remove package from pfSense

Environment Variables

Variable Default Description
DEPLOY_HOST pf SSH hostname for pfSense
PORTVERSION 1.0.0 Package version to build

Upstream PR

This package is also submitted to the official pfSense FreeBSD-ports repository:

Related

License

ISC License - See LICENSE for details.

About

pfSense package for DNSCrypt Proxy - encrypted DNS with full GUI support

Resources

License

Stars

Watchers

Forks

Packages

No packages published