Accesso remoto a Home Assistant: guida completa a DuckDNS, deSEC.io e le migliori alternative DDNS gratuite

Accesso remoto a Home Assistant: guida completa a DuckDNS, deSEC.io e le migliori alternative DDNS gratuite

Per accedere a Home Assistant da fuori casa hai bisogno di un indirizzo stabile che punti alla tua rete domestica. Il problema? La maggior parte delle connessioni Internet casalinghe ha un IP pubblico dinamico che cambia periodicamente (a volte ogni giorno, a volte ogni settimana).

Un servizio DDNS (Dynamic DNS) risolve questo problema: ti fornisce un nome dominio fisso (es: miacasa.duckdns.org) che viene automaticamente aggiornato ogni volta che il tuo IP cambia.

DuckDNS è il servizio più citato nelle guide Home Assistant, ma molti utenti lamentano instabilità e downtime frequenti. Fortunatamente esistono alternative gratuite più affidabili.​

Cosa vedremo in questa guida:

  • Configurazione DuckDNS (per chi vuole provarlo)

  • deSEC.io: l’alternativa stabile con sottodomini illimitati

  • Altre alternative: Dynu, No-IP, DynDNS.it

  • Certificati HTTPS con Let’s Encrypt

  • Reverse proxy per più servizi (Proxmox, NAS, n8n)

  • Cloudflare Tunnel: la soluzione senza port forwarding


Parte 1: Confronto servizi DDNS gratuiti

Tabella comparativa

Perché scegliere deSEC.io?

deSEC.io (dominio dedyn.io) è un servizio tedesco non-profit che offre:

  • Uptime eccellente: server ridondanti, mai down

  • Sottodomini illimitati: perfetto per chi ha più servizi

  • DNSSEC integrato: sicurezza extra

  • API REST moderna: facile integrazione

  • GDPR compliant: privacy europea

  • 100% gratuito: nessun piano a pagamento, nessuna pubblicità

  • Let’s Encrypt DNS challenge: supporto nativo per wildcard

Esempio struttura sottodomini:

tuonome.dedyn.io              → Router/principale
homeassistant.tuonome.dedyn.io → Home Assistant
nas.tuonome.dedyn.io          → Synology/TrueNAS
proxmox.tuonome.dedyn.io      → Proxmox VE
n8n.tuonome.dedyn.io          → n8n automazioni
foto.tuonome.dedyn.io         → Immich/PhotoPrism

Parte 2: Configurazione DuckDNS (metodo classico)

Per chi vuole provare DuckDNS

Nonostante i problemi di stabilità, DuckDNS rimane l’opzione più semplice per iniziare grazie all’add-on nativo.

Passo 1: Registrazione DuckDNS

  1. Vai su duckdns.org

  2. Accedi con GitHub, Google, Twitter o Reddit

  3. Nella sezione “domains”, inserisci il nome desiderato (es: miacasa)

  4. Clicca “add domain”

  5. Copia il token mostrato in alto (ti servirà dopo)

Passo 2: Installa add-on DuckDNS

  1. Impostazioni > Add-on > Add-on Store

  2. Cerca “DuckDNS”

  3. Clicca Installa

Passo 3: Configura add-on

Vai in Configurazione dell’add-on:

domains:
  - miacasa.duckdns.org
token: "IL-TUO-TOKEN-DUCKDNS"
aliases: []
lets_encrypt:
  accept_terms: true
  certfile: fullchain.pem
  keyfile: privkey.pem
  algo: secp384r1

Passo 4: Configura Home Assistant

In configuration.yaml:

http:
  ssl_certificate: /ssl/fullchain.pem
  ssl_key: /ssl/privkey.pem

Passo 5: Port forwarding sul router

  1. Accedi al router (es: 192.168.1.1)

  2. Cerca sezione Port Forwarding / NAT / Virtual Server

  3. Crea regola:

    • Porta esterna: 443

    • Porta interna: 8123

    • IP interno: IP di Home Assistant

    • Protocollo: TCP

Passo 6: Avvia e testa

  1. Avvia l’add-on DuckDNS

  2. Attendi qualche minuto (generazione certificato)

  3. Controlla i log per errori

  4. Testa da rete mobile: https://miacasa.duckdns.org


Parte 3: Configurazione deSEC.io (consigliato)

Perché deSEC è migliore

A differenza di DuckDNS, deSEC offre sottodomini illimitati con un unico account, perfetto per chi gestisce più servizi su Proxmox o ha NAS, server media, ecc.

Passo 1: Registrazione deSEC.io

  1. Vai su desec.io

  2. Clicca “Create Account”

  3. Inserisci email (reale, serve per verificare)

  4. Conferma email cliccando link ricevuto

  5. Accedi alla dashboard

Passo 2: Crea dominio dedyn.io

  1. Nella dashboard, clicca “+ Add Domain”

  2. Scegli “dedyn.io subdomain”

  3. Inserisci nome desiderato (es: miacasa → miacasa.dedyn.io)

  4. Clicca “Save”

Passo 3: Genera token API

  1. Vai in “Token Management”

  2. Clicca “+ Create Token”

  3. Nome: homeassistant-ddns

  4. Copia e salva il token (mostrato una sola volta!)

Passo 4: Configura aggiornamento IP automatico

Metodo A: Script in Home Assistant (shell_command)

In configuration.yaml:

shell_command:
  update_desec_ip: >
    curl -X GET "https://update.dedyn.io/?hostname=miacasa.dedyn.io" 
    -H "Authorization: Token IL-TUO-TOKEN-DESEC"

Crea automazione per aggiornare ogni ora:

automation:
  - alias: "Aggiorna IP deSEC ogni ora"
    trigger:
      - platform: time_pattern
        hours: "/1"
    action:
      - service: shell_command.update_desec_ip

Metodo B: Integrazione custom HACS

Esiste un’integrazione custom per deSEC:

  1. HACS > Integrazioni > Menu (3 puntini) > Repository personalizzati

  2. Aggiungi: https://github.com/JugglerLKR/desec_dedyn

  3. Categoria: Integrazione

  4. Installa “deSEC dedyn.io”

  5. Riavvia Home Assistant

  6. Configura in configuration.yaml:

desec_dedyn:
  token: "IL-TUO-TOKEN-DESEC"
  domain: "miacasa.dedyn.io"

Metodo C: Script standalone (Proxmox/Docker/Linux)

Se hai un server sempre acceso (Proxmox, Raspberry Pi), crea script dedicato:

#!/bin/bash
# /opt/scripts/update-desec.sh

TOKEN="IL-TUO-TOKEN-DESEC"
DOMAIN="miacasa.dedyn.io"

curl -s "https://update.dedyn.io/?hostname=$DOMAIN" \
  -H "Authorization: Token $TOKEN"

Aggiungi a crontab (crontab -e):

*/15 * * * * /opt/scripts/update-desec.sh > /dev/null 2>&1

Passo 5: Creare sottodomini per altri servizi

La vera potenza di deSEC: un dominio principale con infiniti sottodomini!

  1. Nella dashboard deSEC, clicca sul tuo dominio (miacasa.dedyn.io)

  2. Clicca “+ Add Record”

  3. Per ogni servizio, crea un record A o CNAME:

Record A (IP diretto):

Nota: Lasciando il campo IP vuoto, deSEC usa l’IP del dominio principale (aggiornato automaticamente).

Oppure Record CNAME (punta al dominio principale):

Risultato finale:

  • homeassistant.miacasa.dedyn.io → Home Assistant

  • nas.miacasa.dedyn.io → Synology/TrueNAS

  • proxmox.miacasa.dedyn.io → Proxmox VE

  • n8n.miacasa.dedyn.io → n8n


Parte 4: Certificati HTTPS con Let’s Encrypt

Metodo A: Add-on Let’s Encrypt con DNS Challenge

Il DNS challenge è il metodo migliore perché:

  • Non richiede porta 80 aperta

  • Supporta certificati wildcard (*.miacasa.dedyn.io)

  • Funziona anche con CGNAT

Installa add-on Let’s Encrypt:

  1. Impostazioni > Add-on > Add-on Store

  2. Cerca “Let’s Encrypt” (non DuckDNS!)

  3. Installa

Configurazione per deSEC:

email: tua@email.com
domains:
  - miacasa.dedyn.io
  - "*.miacasa.dedyn.io"
certfile: fullchain.pem
keyfile: privkey.pem
challenge: dns
dns:
  provider: dns-desec
  desec_token: "IL-TUO-TOKEN-DESEC"

Configurazione per DuckDNS:

email: tua@email.com
domains:
  - miacasa.duckdns.org
certfile: fullchain.pem
keyfile: privkey.pem
challenge: dns
dns:
  provider: dns-duckdns
  duckdns_token: "IL-TUO-TOKEN-DUCKDNS"

Avvia l’add-on e controlla i log. Il certificato wildcard coprirà automaticamente tutti i sottodomini!

Metodo B: Certbot su server esterno (Proxmox/Docker)

Se gestisci certificati centralmente su Proxmox:

# Installa certbot
apt install certbot python3-certbot-dns-desec

# Crea file credenziali
echo "dns_desec_token = IL-TUO-TOKEN" > ~/.secrets/desec.ini
chmod 600 ~/.secrets/desec.ini

# Genera certificato wildcard
certbot certonly \
  --authenticator dns-desec \
  --dns-desec-credentials ~/.secrets/desec.ini \
  -d "miacasa.dedyn.io" \
  -d "*.miacasa.dedyn.io"

Parte 5: Reverse proxy per più servizi

Perché serve un reverse proxy?

Con un solo IP pubblico e una sola porta 443, come raggiungi servizi diversi? Il reverse proxy legge il dominio richiesto e instrada al servizio corretto:

Richiesta: homeassistant.miacasa.dedyn.io
    ↓
Reverse Proxy (porta 443)
    ↓
Instrada a: 192.168.1.10:8123 (Home Assistant)

Richiesta: nas.miacasa.dedyn.io
    ↓
Reverse Proxy (porta 443)
    ↓
Instrada a: 192.168.1.20:5000 (Synology)

Opzione A: NGINX Proxy Manager (consigliato per semplicità)

NGINX Proxy Manager ha interfaccia web intuitiva, perfetto per gestire più servizi.

Installazione su Docker/Proxmox:

# docker-compose.yml
version: '3'
services:
  npm:
    image: 'jc21/nginx-proxy-manager:latest'
    restart: unless-stopped
    ports:
      - '80:80'
      - '443:443'
      - '81:81'  # Admin panel
    volumes:
      - ./data:/data
      - ./letsencrypt:/etc/letsencrypt
docker-compose up -d

Accedi: http://IP_SERVER:81

  • Email: admin@example.com

  • Password: changeme

Configura proxy host per Home Assistant:

  1. Hosts > Proxy Hosts > Add Proxy Host

  2. Details:

    • Domain Names: homeassistant.miacasa.dedyn.io

    • Scheme: http

    • Forward Hostname: 192.168.1.10 (IP di HA)

    • Forward Port: 8123

    • Websockets Support (importante per HA!)

  3. SSL:

    • Request new SSL Certificate

    • Force SSL

    • HTTP/2 Support

  4. Save

Ripeti per ogni servizio (NAS, Proxmox, n8n, ecc.)

Opzione B: Add-on NGINX in Home Assistant

Se vuoi tutto dentro Home Assistant:

  1. Impostazioni > Add-on > Add-on Store

  2. Cerca “NGINX Home Assistant SSL proxy”

  3. Installa e configura:

domain: homeassistant.miacasa.dedyn.io
certfile: fullchain.pem
keyfile: privkey.pem
hsts: "max-age=31536000; includeSubDomains"
cloudflare: false
customize:
  active: false

Nota: Questo add-on gestisce solo Home Assistant, non altri servizi.

Opzione C: Traefik (avanzato, per Docker)

Per setup Docker avanzati, Traefik con auto-discovery:

# docker-compose.yml con Traefik
version: '3'
services:
  traefik:
    image: traefik:v3.0
    command:
      - "--providers.docker=true"
      - "--entrypoints.websecure.address=:443"
      - "--certificatesresolvers.desec.acme.dnschallenge.provider=desec"
    environment:
      - DESEC_TOKEN=IL-TUO-TOKEN
    ports:
      - "443:443"
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock

  homeassistant:
    image: homeassistant/home-assistant
    labels:
      - "traefik.http.routers.ha.rule=Host(`homeassistant.miacasa.dedyn.io`)"
      - "traefik.http.routers.ha.tls.certresolver=desec"

Parte 6: Alternative senza port forwarding

Cloudflare Tunnel (zero esposizione)

Se non puoi aprire porte (CGNAT) o vuoi massima sicurezza, Cloudflare Tunnel crea un tunnel criptato senza esporre nulla:

Come funziona:

Home Assistant → Cloudflare Tunnel → Internet
                 (nessuna porta aperta)

Requisiti:

  • Account Cloudflare (gratuito)

  • Dominio proprio (anche economico, ~10€/anno) OPPURE dominio Cloudflare gratuito

Setup veloce:

  1. Registrati su cloudflare.com

  2. Aggiungi dominio (se hai dominio proprio) o usa Cloudflare Tunnel standalone

  3. Installa add-on Cloudflared in Home Assistant:

    • Add-on Store > Cerca “Cloudflared”

  4. Configura seguendo wizard Cloudflare Zero Trust

Pro:

  • Zero port forwarding

  • Protezione DDoS inclusa

  • Funziona con CGNAT

  • Molto veloce (CDN globale)

Contro:

  • Traffico passa da server Cloudflare (privacy?)

  • Richiede dominio proprio per massima flessibilità

  • Configurazione più complessa

Tailscale / ZeroTier (VPN mesh)

Per accesso solo personale (non condivisibile facilmente):

Tailscale:

  1. Installa add-on Tailscale in Home Assistant

  2. Accedi con account Tailscale

  3. Installa app Tailscale su smartphone

  4. Accedi a HA tramite IP Tailscale (es: 100.x.x.x:8123)

Pro: Semplicissimo, molto sicuro, funziona ovunque
Contro: Richiede app su ogni dispositivo, non condivisibile con link

Nabu Casa (a pagamento, semplicissimo)

Per chi vuole zero configurazione e supportare gli sviluppatori:​

  • Costo: $6.50/mese (o 65€/anno)

  • Setup: 2 click nell’interfaccia HA

  • Include: Remote access, backup cloud, Alexa/Google integration

Quando scegliere Nabu Casa:

  • Non vuoi configurare nulla

  • Vuoi supportare Home Assistant

  • Hai bisogno di integrazione Alexa/Google semplice


Parte 7: Altre alternative DDNS gratuite

Dynu (ottima alternativa)

dynu.com è considerato il miglior DDNS gratuito generale:

Registrazione:

  1. Vai su dynu.com > Create Account

  2. DDNS Services > Add

  3. Scegli dominio (es: miacasa.dynu.net)

Aggiornamento IP con curl:

curl "https://api.dynu.com/nic/update?hostname=miacasa.dynu.net&username=USER&password=PASS"

Pro: Molto stabile, tanti domini disponibili, TTL 30 secondi
Contro: Interfaccia meno moderna

No-IP

noip.com è storico ma richiede conferma mensile:

Limitazioni free:

  • Massimo 3 hostname

  • Conferma email ogni 30 giorni (altrimenti cancellato!)

Pro: Client ufficiale per molti router
Contro: Conferma mensile fastidiosa

DynDNS.it (italiano)

dyndns.it per chi preferisce servizio italiano:

Pro: Server in Italia, supporto italiano
Contro: Meno diffuso, documentazione limitata


Parte 8: Troubleshooting problemi comuni

“Certificato non valido” / “Connessione non sicura”

Cause:

  1. Certificato non ancora generato

  2. Certificato scaduto (non rinnovato)

  3. Dominio non corrisponde al certificato

Soluzioni:

  • Controlla log add-on Let’s Encrypt

  • Verifica che automazione rinnovo funzioni

  • Per wildcard, assicurati di aver incluso *.dominio.tld

“Impossibile raggiungere il sito”

Checklist:

  1. Port forwarding configurato? (443 → 8123)

  2. IP aggiornato su DDNS?

  3. Firewall router permette connessioni?

  4. ISP non blocca porta 443?

  5. CGNAT attivo? (se sì, serve Cloudflare Tunnel o VPN)

Test port forwarding:
Vai su canyouseeme.org e testa porta 443.

“Funziona da rete mobile ma non da casa”

Causa: Hairpin NAT non supportato dal router.

Soluzioni:

  • Usa IP locale quando sei a casa

  • Configura DNS locale per risolvere dominio a IP interno

  • Usa app Companion che gestisce automaticamente

Come verificare se hai CGNAT

Se il tuo ISP usa CGNAT, non puoi aprire porte:

  1. Trova il tuo IP pubblico su whatismyip.com

  2. Accedi al router e trova “WAN IP” o “IP pubblico”

  3. Se sono diversi → hai CGNAT

Soluzioni con CGNAT:

  • Chiedi IP pubblico all’ISP (a volte gratuito, a volte costa)

  • Usa Cloudflare Tunnel

  • Usa Tailscale/ZeroTier

  • Usa Nabu Casa


Conclusioni

L’accesso remoto a Home Assistant non deve essere complicato né inaffidabile. Se DuckDNS ti ha deluso, le alternative non mancano:

Raccomandazioni finali:

Il setup ideale per power user:

  1. deSEC.io per DDNS stabile con sottodomini

  2. NGINX Proxy Manager per gestire tutti i servizi

  3. Let’s Encrypt wildcard per HTTPS su tutto

  4. Tutto dietro un’unica porta 443

Con questa configurazione puoi raggiungere Home Assistant, NAS, Proxmox, n8n e qualsiasi altro servizio con URL dedicati, tutti con HTTPS valido e aggiornamento IP automatico.