Instalación del servicio Cloudflare en la Raspberry Pi
Arquitectura armhf (Raspberry Pi de 32 bits)
Aquí estamos descargando el binario precompilado y copiándolo en el directorio para permitir la ejecución por parte del usuario cloudflared. Proceda a ejecutar el binario con el indicador para comprobar que todo funciona:/usr/local/bin/
-v
wget https://github.com/cloudflare/cloudflared/releases/latest/download/cloudflared-linux-arm
sudo mv -f ./cloudflared-linux-arm /usr/local/bin/cloudflared
sudo chmod +x /usr/local/bin/cloudflared
cloudflared -v
Información:
Los usuarios han informado de que la versión actual de cloudflared produce un error de fallo de segmentación en Raspberry Pi Zero W, Model 1B y 2B. Actualmente, no se conoce ninguna solución alternativa.
Arquitectura arm64 (Raspberry Pi de 64 bits)
wget https://github.com/cloudflare/cloudflared/releases/latest/download/cloudflared-linux-arm64
sudo mv -f ./cloudflared-linux-arm64 /usr/local/bin/cloudflared
sudo chmod +x /usr/local/bin/cloudflared
cloudflared -v
Configuración para ejecutarse al inicio cloudflared
Cree un usuario para ejecutar el demonio:cloudflared
sudo useradd -s /usr/sbin/nologin -r -M cloudflared
Proceda a crear un archivo de configuración para:cloudflared
sudo nano /etc/default/cloudflared
Edite el archivo de configuración copiando lo siguiente en . Este archivo contiene las opciones de línea de comandos que se pasan a cloudflared al inicio:/etc/default/cloudflared
# Commandline args for cloudflared, using Cloudflare DNS
CLOUDFLARED_OPTS=--port 5053 --upstream https://1.1.1.1/dns-query --upstream https://1.0.0.1/dns-query
Actualice los permisos del archivo de configuración y el binario para permitir el acceso del usuario cloudflared:cloudflared
sudo chown cloudflared:cloudflared /etc/default/cloudflared
sudo chown cloudflared:cloudflared /usr/local/bin/cloudflared
A continuación, cree el script copiando lo siguiente en . Esto controlará la ejecución del servicio y permitirá que se ejecute al inicio:systemd
/etc/systemd/system/cloudflared.service
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
Habilite el servicio para que se ejecute al inicio, inicie el servicio y compruebe su estado:systemd
sudo systemctl enable cloudflared
sudo systemctl start cloudflared
sudo systemctl status cloudflared
¡Ahora prueba que está funcionando! Ejecute el siguiente comando, se debe devolver una respuesta similar a la siguiente:dig
pi@raspberrypi:~ $ dig @127.0.0.1 -p 5053 google.com
; <<>> DiG 9.11.5-P4-5.1-Raspbian <<>> @127.0.0.1 -p 5053 google.com
; (1 server found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 12157
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
; COOKIE: 22179adb227cd67b (echoed)
;; QUESTION SECTION:
;google.com. IN A
;; ANSWER SECTION:
google.com. 191 IN A 172.217.22.14
;; Query time: 0 msec
;; SERVER: 127.0.0.1#5053(127.0.0.1)
;; WHEN: Wed Dec 04 09:29:50 EET 2019
;; MSG SIZE rcvd: 77
Configuración de Pi-hole
Por último, configure Pi-hole para utilizar el servicio local como servidor DNS ascendente especificando como DNS personalizado (IPv4): 127.0.0.1#5053
(no olvide presionar Retorno o hacer clic en Save
)
Si quieres comprobar si funciona correctamente, solo tienes que visitar: https://1.1.1.1/help:
Actualización
La herramienta no recibirá actualizaciones a través del administrador de paquetes. Sin embargo, debe mantener actualizada la actualización del programa. Puede hacerlo manualmente o a través de un script cron.
El procedimiento de actualización depende de cómo haya configurado el binario.
Si configuraste cloudflared con tus propios archivos de servicio
Si configuró manualmente (escribiendo una unidad systemd usted mismo), para actualizar el binario, simplemente volverá a descargar el binario desde el mismo enlace y repetirá el procedimiento de instalación.
wget https://github.com/cloudflare/cloudflared/releases/latest/download/cloudflared-linux-arm
sudo systemctl stop cloudflared
sudo mv -f ./cloudflared-linux-arm /usr/local/bin/cloudflared
sudo chmod +x /usr/local/bin/cloudflared
sudo systemctl start cloudflared
cloudflared -v
sudo systemctl status cloudflared
Si configuró cloudflared a través de service install
Si configuró con su comando, puede usar el comando update incorporado.
sudo cloudflared update
sudo systemctl restart cloudflared
Automatización de las actualizaciones de Cloudflared
Si desea que el sistema se actualice automáticamente, simplemente coloque los comandos update para su método de configuración en el archivo y ajustar los permisos: /etc/cron.weekly/cloudflared-updater
sudo chmod +x /etc/cron.weekly/cloudflared-updater
sudo chown root:root /etc/cron.weekly/cloudflared-updater
Advertencia
Asegúrate de agregar shebang al principio de . De lo contrario, el comando no se ejecutaría. #!/bin/bash
/etc/cron.weekly/cloudflared-updater
El sistema ahora intentará actualizar el binario cloudflared automáticamente, una vez por semana.
cloudflared (DoH) – Pi-hole documentation
Deja una respuesta