Stop Using Pi-Hole – Technitium DNS Is Better

Опубликовано 22 дек. 2025 г.

В комментах к посту про «ПИ-ДЫРКУ» ребята посоветовали присмотреться к Technitium DNS. Ну вот я и присмотрелся, прислушался к авторитетному мнению.

Ключевым фактором стало — кластеризация и синхронизация из коробки, без велосипедов на Bash скриптах. Да и по интерфейсу нет ебанутых новогодних ёлок и гирлянд.

ЧИТАТЬ ПЕРВЫМ В ТЕЛЕГРАМ   ЧИТАТЬ ПЕРВЫМ В MAX

Поднял я это у себя на 2х нодах в докерах, одну на малине, другую в proxmox, ну и на роутере прописал чтобы по DHCP раздавались DNSки в локальную сеть.

Поднимается элементарно:

services:
  dns-server:
    container_name: technitium-dns1
    hostname: technitium-dns1
    image: technitium/dns-server:latest
    ports:
      - 5380:5380/tcp # Web console (HTTP)
      - 53:53/udp # DNS service
      - 53:53/tcp # DNS service
      - "53443:53443/tcp" # Web console (HTTPS)
        
      # Optional ports - uncomment as needed:
      # - "853:853/udp"      # DNS-over-QUIC
      # - "853:853/tcp"      # DNS-over-TLS
      # - "443:443/udp"      # DNS-over-HTTPS (HTTP/3)
      # - "443:443/tcp"      # DNS-over-HTTPS (HTTP/1.1, HTTP/2)
      # - "67:67/udp"        # DHCP service

   # environment:
      # - DNS_SERVER_DOMAIN=dns.local
      # - DNS_SERVER_FORWARDERS=10.1.149.10

      # Production options:
      # - DNS_SERVER_ADMIN_PASSWORD=your_secure_password
      # - DNS_SERVER_PREFER_IPV6=false
      # - DNS_SERVER_RECURSION=AllowOnlyForPrivateNetworks

    volumes:
      - technitium-dns-data:/etc/dns
    restart: unless-stopped
    sysctls:
      - net.ipv4.ip_local_port_range=1024 65000
volumes:
  technitium-dns-data:
    driver: local
networks: {}

Если нужны енвы или порты, расскоментируй строчки по потребностям, мне хватило минимальных вмешательств.

Затем заходим в морду: http://<IP>:5380 и конфигурируем по необходимости.

Зоны добавляются в разделе Zones, после добавления зоны, создаешь «A» запись например для домена nextcloud.local и прописываешь IP своего nginx proxy manager (далее NPM), ну а дальше в NPM разруливаешь на нужные IP адреса и порты.

Создаём кластер

Чтобы создать кластер, идем во вкладку AdministrationCluster. Создаем кластер, а на второй ноде в этом же разделе жмем кнопку Join Cluster. Заполняем очевидные поля, явки, пароли и радуемся синхронизации.

Теперь при добавлении новой зоны на первой ноде, эта зона улетит на вторую ноду. Главное не забыть выбрать Catalog Zone при добавлении зоны.

Никаких танцев с бубном. Ааа.. Есть танцы, возможно ты столкнешься с ошибкой, что 53 порт уже занят. Это нормально, фиксим:

sudo systemctl stop systemd-resolved
sudo systemctl disable systemd-resolved
sudo rm /etc/resolv.conf
sudo ln -s /run/systemd/resolve/resolv.conf /etc/resolv.conf

Если у тебя какие-то другие резолверы стоят, то:

sudo systemctl stop dnsmasq
sudo systemctl disable dnsmasq
sudo systemctl stop bind9
sudo systemctl disable bind9

Собственно на этом всё. Базу я тебе показал, дальше сам. А всем кто привел меня к этому решению - спасибо и премного благодарен! Скрасил воскресный вечер не за кружкой бухла, а за полезным занятием.

Изучай!

Комментарии