24 Gennaio 2019

noip avvio automatico su Raspberry Pi

Categorie: ,
Tags: ,

Il servizio Dynamic Update Client

Il servizio DUC (Dynamic Update Client) fornito dal sito noip funziona sul computer controllando frequentemente se si verificano cambi di indirizzo IP. Quando viene rilevato un indirizzo IP diverso, il DUC aggiorna automaticamente il nome host in base all’indirizzo IP corretto.

Quindi dopo aver eseguito l'installazione e la configurazione del client di aggiornamento dinamico (DUC) su un computer su cui è in esecuzione Linux, nel nostro caso su un Raspberry Pi, per avviare il servizio basta emettere questo comando finale per avviare il client in background:

/usr/local/bin/noip2

Tuttavia, quando il Raspberry viene riavviato sarà necessario eseguire nuovamente il comando sopra citato per avviare il client (DUC). A questo punto la domanda sorge spontanea: "Come posso automatizzare questa operazione?" - Ci sono diversi modi per avviare un servizio all'avvio del sistema, in questo breve tutorial verrà mostrato come farlo tramite systemd.

Configurazione del servizio

Il Raspberry Pi utilizza systemd come sistema init. Questo presuppone che tu abbia già scaricato e installato il noip2 client di aggiornamento.

  1. Crea il file /etc/systemd/system/noip2.service ed inserisci al suo interno quanto segue:
    [Unit]
    Description=No-Ip Dynamic DNS Update Service
    After=network.target
    
    [Service]
    Type=forking
    ExecStart=/usr/local/bin/noip2
    
    [Install]
    WantedBy=multi-user.target
  2. Ricarica il daemon init:
    sudo systemctl daemon-reload
  3. Abilita il servizio:
    sudo systemctl enable noip2
  4. Avvia il servizio:
    sudo systemctl start noip2

Fatto questo il servizio è configurato, però nel mio caso (utilizzando un Raspberry Pi 2), ho notato che dopo il riavvio il servizio viene si avviato ma con un errore, infatti dopo aver riavviato il raspberry e dato il comando sudo systemctl status noip2 per verificare il corretto funzionamento ho ottenuto questo output:

● noip2.service - No-Ip Dynamic DNS Update Service
   Loaded: loaded (/etc/systemd/system/noip2.service; enabled; vendor preset: enabled)
   Active: active (running) since Thu 2019-01-24 20:23:18 CET; 1min 6s ago
  Process: 341 ExecStart=/usr/local/bin/noip2 (code=exited, status=0/SUCCESS)
 Main PID: 351 (noip2)
   CGroup: /system.slice/noip2.service
           └─351 /usr/local/bin/noip2

gen 24 20:23:18 raspberrypi systemd[1]: Starting No-Ip Dynamic DNS Update Service...
gen 24 20:23:18 raspberrypi systemd[1]: Started No-Ip Dynamic DNS Update Service.
gen 24 20:23:18 raspberrypi noip2[351]: v2.1.9 daemon started with NAT enabled
gen 24 20:23:18 raspberrypi noip2[351]: Can't gethostbyname for dynupdate.no-ip.com
gen 24 20:23:18 raspberrypi noip2[351]: Can't get our visible IP address from ip1.dynupdate.no-ip.com

Notate che nelle righe 12 e 13 si vedono i due errori: Can't gethostbyname for dynupdate.no-ip.comCan't get our visible IP address from ip1.dynupdate.no-ip.com, questo avviene per via del fatto che il servizio viene avviato da systemd prima che la rete venga configurata. Questo errore si può risolvere digitando il comando sudo raspi-config e impostare in Boot options l'opzione: Wait for Network at Boot Choose whether to wait for network connection during boot che in sostanza dice al raspberry di attendere la configurazione della rete durante l'avvio. Questo risolve il problema e i due errori non compaiono più.

Alla prossima!

 

 

Un commento per “noip avvio automatico su Raspberry Pi”

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

shopping-cart linkedin facebook pinterest youtube rss twitter instagram facebook-blank rss-blank linkedin-blank pinterest youtube twitter instagram