Procedura DDNS NO-IP • Raspberry Pi OS • noip2 (ufficiale)

Dynamic DNS automatico su Raspberry Pi
per due hostname NO-IP

Obiettivo: il Raspberry Pi (sempre acceso) rileva l’IP pubblico dietro NAT e aggiorna automaticamente giuseppemontisci.sytes.net e raspberrysardo75.sytes.net. Si avvia da solo al boot con systemd e i log sono consultabili con journalctl.

Prerequisiti

Scelta stabile: useremo il client ufficiale No-IP noip2 (DUC).

0) Pulizia (rimuovere ddclient e vecchie config)

Se avevi provato con ddclient, elimina tutto per evitare conflitti.

Pulizia bash
sudo systemctl stop ddclient 2>/dev/null || true
sudo systemctl disable ddclient 2>/dev/null || true
sudo apt remove --purge -y ddclient 2>/dev/null || true
sudo rm -f /etc/ddclient.conf /var/cache/ddclient/ddclient.cache 2>/dev/null || true

1) Installazione (noip2 ufficiale)

Installa i tool di compilazione e scarica il client ufficiale No-IP.

Comandi bash
sudo apt update
sudo apt install -y build-essential wget tar

cd /usr/local/src
sudo wget https://www.no-ip.com/client/linux/noip-duc-linux.tar.gz
sudo tar xf noip-duc-linux.tar.gz
cd noip-2.*
sudo make install
Nota: alla fine di make install parte la configurazione guidata. È normale. Inserisci la DDNS Key (username tipo bh3f2c2) e la password della key.

2) Configurazione (DDNS Key + 2 hostname)

Durante la configurazione guidata ti verrà chiesto:

Valori consigliati
• Interfaccia: scegli quella attiva (es. eth0 o wlan0)
• Login/Email: username DDNS Key (es. bh3f2c2)
• Password: password DDNS Key
• Update interval: 5 (minuti)
• Run something after update: N

La key DDNS_RASPBERRY deve risultare associata a: giuseppemontisci.sytes.net e raspberrysardo75.sytes.net.

Come verifico che la key aggiorna i 2 host? Apri

Sul sito No-IP: DDNS e accesso remoto → Chiavi DDNS → trova DDNS_RASPBERRY: deve mostrare 2 Hostname con i due domini.

In alternativa, su Raspberry verifica con:

Stato noip2 bash
sudo /usr/local/bin/noip2 -S
ps aux | grep noip2

3) Avvio automatico ad ogni riavvio (systemd)

Creiamo un servizio systemd robusto. Se hai già un servizio, puoi sovrascriverlo con questo.

Crea servizio bash
sudo nano /etc/systemd/system/noip2.service
Contenuto noip2.service
[Unit]
Description=No-IP DUC
After=network-online.target
Wants=network-online.target

[Service]
Type=forking
ExecStart=/usr/local/bin/noip2
ExecStop=/usr/local/bin/noip2 -K
Restart=always
RestartSec=5

[Install]
WantedBy=multi-user.target

Abilita e avvia:

Enable + Start bash
sudo systemctl daemon-reload
sudo systemctl enable noip2
sudo systemctl start noip2
sudo systemctl status noip2 --no-pager
Se vedi Active: active (running) il servizio è a posto e si avvia da solo.

Verifiche (IP pubblico, DNS, stato servizio)

1) IP pubblico del Raspberry:

IP pubblico bash
curl -4 -s https://api.ipify.org ; echo

2) DNS: deve coincidere con l’IP di sopra (usa resolver pubblico):

Verifica DNS bash
dig +short giuseppemontisci.sytes.net A @1.1.1.1
dig +short raspberrysardo75.sytes.net A @1.1.1.1

3) Stato noip2:

Status bash
sudo systemctl status noip2 --no-pager
sudo /usr/local/bin/noip2 -S
Gli IP di dig devono coincidere con quello di curl.

Log (journalctl)

Log in tempo reale:

Log live bash
journalctl -u noip2 -f

Log di oggi:

Log oggi bash
journalctl -u noip2 --since "today"

Disattivare No-IP DUC sul PC (consigliato)

Obiettivo: evitare che PC e Raspberry aggiornino gli stessi hostname. Se scegli “solo Raspberry”, sul PC DUC deve essere disattivato o disinstallato.
Windows: disattivare DUC all’avvio Apri
  1. Apri Gestione attività (Ctrl+Shift+Esc).
  2. Tab Avvio.
  3. Trova No-IP DUC e fai Disabilita.

In alternativa: disinstalla da Impostazioni → App.

Linux PC: disattivare servizio/daemon Apri

Se il DUC gira come servizio, prova:

Stop/Disable bash
sudo systemctl disable --now noip2 2>/dev/null || true
sudo systemctl disable --now noip-duc 2>/dev/null || true

I nomi servizio possono variare: verifica con systemctl list-units | grep -i noip.

Troubleshooting (rapido)

1) Il servizio noip2 non parte / va in errore Apri

Controlla stato e log:

Diagnostica bash
systemctl status noip2 --no-pager
journalctl -u noip2 --since "today"

Se fallisce, spesso è per credenziali DDNS Key errate o servizio non installato correttamente.

2) DNS non cambia (o cambia tardi) Apri

Dopo l’update, i resolver pubblici possono impiegare un po’ (cache). Verifica con più resolver:

Resolver multipli bash
dig +short giuseppemontisci.sytes.net A @1.1.1.1
dig +short giuseppemontisci.sytes.net A @8.8.8.8
dig +short raspberrysardo75.sytes.net A @1.1.1.1
dig +short raspberrysardo75.sytes.net A @8.8.8.8
3) Sei sotto CGNAT (accesso remoto non funziona) Apri

Se il router non ha un vero IP pubblico (WAN privata tipo 100.64.x.x / 10.x.x.x / 192.168.x.x), il DDNS aggiorna un IP “carrier” e dall’esterno potresti non raggiungere i servizi.

In quel caso serve: IP pubblico vero, oppure VPN/tunnel (Tailscale, Cloudflare Tunnel, ecc.).

4) Verifica rapida “tutto OK” Apri

Comandi rapidi:

Quick check bash
curl -4 -s https://api.ipify.org ; echo
nslookup giuseppemontisci.sytes.net
sudo systemctl status noip2 --no-pager
Suggerimento: lascia l’intervallo a 5 minuti e non “forzare” update continui per evitare rate limit.