Skip to content

Instantly share code, notes, and snippets.

@jmhale
Created April 25, 2019 10:24
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
  • Save jmhale/828da231e2c9fa1a4a35aa72c1f95ecc to your computer and use it in GitHub Desktop.
Save jmhale/828da231e2c9fa1a4a35aa72c1f95ecc to your computer and use it in GitHub Desktop.
Installs cloudflared and configures it to use Quad9's DNS-over-HTTPS (DoH)
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
useradd -s /usr/sbin/nologin -r -M cloudflared
cat
cat <<EOF > /etc/default/cloudflared
# Commandline args for cloudflared
CLOUDFLARED_OPTS=--port 5053 --upstream https://9.9.9.9/dns-query
EOF
chown cloudflared:cloudflared /etc/default/cloudflared
chown cloudflared:cloudflared /usr/local/bin/cloudflared
cat <<EOF > /lib/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
EOF
systemctl enable cloudflared
systemctl start cloudflared
systemctl status cloudflared
dig @127.0.0.1 -p 5053 hale.dev
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment