-
PiHole with DNS-over-HTTP: Revised
More than a year later, the PiHole continues to work fine, but the process for installing the Cloudflare DoH machinery has evolved.
(And, yes, it’s supposed to be DNS-over-HTTPS. So it goes.)
To forestall link rot, the key points:
cd /tmp ; wget https://bin.equinox.io/c/VdrWdbjqyF/cloudflared-stable-linux-arm.tgz tar -xvzf cloudflared-stable-linux-arm.tgz sudo cp cloudflared /usr/local/bin sudo chmod +x /usr/local/bin/cloudflared sudo cloudflared -v sudo useradd -s /usr/sbin/nologin -r -M cloudflared sudo nano /etc/default/cloudflared ---- CLOUDFLARED_OPTS=--port 5053 --upstream https://1.1.1.1/dns-query --upstream https://1.0.0.1/dns-query ---- sudo chown cloudflared:cloudflared /etc/default/cloudflared sudo chown cloudflared:cloudflared /usr/local/bin/cloudflared sudo nano /etc/systemd/system/cloudflared.service ---- [Unit] Description=cloudflared DNS over HTTPS proxy After=syslog.target network-online.target [Service] Type=simple User=cloudflared EnvironmentFile=/etc/default/cloudflared ExecStart=/usr/local/bin/cloudflared proxy-dns $CLOUDFLARED_OPTS Restart=on-failure RestartSec=10 KillMode=process [Install] WantedBy=multi-user.target ---- sudo systemctl enable cloudflared sudo systemctl start cloudflared sudo systemctl status cloudflaredThen aim PiHole’s DNS at
127.0.0.1#5053. It used to be on port#54, for whatever that’s worth.Verify it at https://1.1.1.1/help, which should tell you DoH is in full effect.
To update the daemon, which I probably won’t remember:
wget https://bin.equinox.io/c/VdrWdbjqyF/cloudflared-stable-linux-arm.tgz tar -xvzf cloudflared-stable-linux-arm.tgz sudo systemctl stop cloudflared sudo cp ./cloudflared /usr/local/bin sudo chmod +x /usr/local/bin/cloudflared sudo systemctl start cloudflared cloudflared -v sudo systemctl status cloudflaredAnd then It Just Works … again!