Publié le 7 juillet 2014 - par

Une adresse sur Internet pour votre Raspberry Pi avec No-IP

NoIP_250pxSuite à la saisie des noms de domaine de No-IP par Microsoft, j’ai reçu quelques demandes d’utilisateurs de Raspberry Pi qui aimeraient utiliser ce service.
Voici comment vous pouvez offrir une adresse à votre framboise314.

Principe de l’adressage IP dynamique

acces_internet_600pxRegardons tout d’abord ce qui se passe quand vous souhaitez vous connecter au Raspberry Pi qui est chez vous, depuis un client (PC, smartphone, tablette…) connecté à Internet. Situé dans le réseau local connecté à votre Box ou routeur, votre Raspberry Pi a une adresse appartenant au réseau local de votre domicile (par exemple @IP Raspberry Pi = 192.168.1.23). Cette adresse dite privée n’est pas routable sur Internet. Votre FAI fournit à votre Box une adresse publique (@IP Publique) qui est celle que votre client (PC, smartphone…) pourra contacter.

Certains opérateurs changent régulièrement cette adresse IP attribuée à votre Box. Il faut donc régulièrement vérifier l’adresse de la Box et modifier l’adresse à laquelle se connecte votre client sur Internet.

Le service de DNS dynamique de No-IP

Description du service

No-IP, comme d’autres services du même genre (DynDNS, Xooty…) offre un service de DNS dynamique. Un programme tourne sur le Raspberry Pi et envoie régulièrement au serveur de No-IP l’adresse publique de votre Box. Vous choisissez un nom de domaine du genre monraspberrypi.ddns.net (pas celui-là, il est déjà pris 😉 ) et le serveur met à jour automatiquement l’adresse de votre Box. Quand vous souhaitez vous connecter depuis votre smartphone, vous tapez toujours monraspberrypi.ddns.net et vous arrivez sur le RasPi qui est chez vous.

Il faudra simplement indiquer que les requêtes arrivant sur la Box depuis Internet doivent être redirigées vers le Raspberry Pi (Port forwarding).

No-IP offre gratuitement la gestion de 3 hôtes (par compte, mais qui vous empêche d’en ouvrir plusieurs ?). Au delà, le service devient payant. Pour ces 3 hôtes, le choix des adresses est limité et il faut renouveler le compte tous les mois (en saisissant un captcha) ce qui représente un faible investissement en temps par rapport au service rendu.

Je vous propose de vous inscrire pour la version gratuite de No-IP.

Ouvrir un compte chez No-IP

La première chose à faire pour utiliser les services de No-IP, c’est d’ouvrir un compte chez eux.

Une vidéo de démonstration (en anglais) est disponible :

Voici les étapes à réaliser pas à pas pour cette inscription :

====== Traduction d’après la page Getting started ======

Vous essayez de mettre en place un site web, un serveur FTP, un serveur de messagerie ou tout autre type de service en ligne que vous voulez mettre à disposition sur Internet ? Votre FAI ne vous attribue qu’une adresse IP dynamique (qui change de temps en temps)  et n’est pas fixe ? Voici les étapes à suivre pour vous inscrire en ligne sur le service DNS dynamique gratuit de No-IP.com. Vous pourrez ainsi publier sur Internet vos serveurs depuis votre domicile ou votre entreprise, sans avoir une adresse IP statique.

Étape 1: Créer un compte

Sign-Up1Pour créer un compte No-IP.com suffit de cliquer sur le lien « Sign Up » (Inscription) en haut de la page ou de cliquer ici. Remplissez les champs nécessaires dans le formulaire de création de compte. Notez que les Conditions générales d’utilisation de No-IP imposent que vos coordonnées soient valides. Tous les comptes sur lequel No-Ip constate des informations incomplètes ou frauduleuses seront clos.

Une fois que vous avez rempli les informations requises et accepté les conditions d’utilisation, cliquez sur le bouton « Free Sign Up » (Inscription gratuite) en bas de la page.

Étape 2: Confirmez votre compte

Une fois que vous avez soumis vos informations de compte dans le formulaire pour vous inscrire, vous recevrez un e-mail de confirmation à l’adresse que vous avez indiquée. Vous aurez besoin pour confirmer la création de ce compte de retrouver l’e-mail de No-IP.com. Le courriel contient un lien sur lequel vous devrez cliquer pour confirmer la création du compte. Si vous avez un mail chez Yahoo ou Hotmail -et certains autres services de messagerie- il est possible que le mail de confirmation soit dans les SPAM. Vérifiez bien votre boîte à lettres.

Étape 3: Connectez vous à votre compte

Sign-InMaintenant que vous avez validé votre compte, vous pouvez vous connecter à No-IP.com. Sur le haut de la page d’accueil No-IP, cliquez sur « Sign In » (Connexion), à droite en haut de la page. Vous verrez alors une zone de saisie pour entrer votre adresse e-mail ou votre nom d’utilisateur et votre mot de passe. Entrez les informations que vous avez utilisées lors de la création de votre compte puis cliquez sur « Sign In » (Connexion).

Étape 4: Ajouter un hôte ou de domaine à votre compte

Vous devriez maintenant être connecté(e) à la section des membres inscrits à No-IP.com. Lorsque vous vous êtes inscrit à No-IP un nom d’hôte a été créé automatiquement afin que vous l’utilisiez pour vous connecter à votre serveur. Si vous le souhaitez, vous pouvez créer un autre nom d’hôte en suivant les étapes ci-dessous.

Un nom d’hôte est utilisé en remplacement de votre adresse IP à chaque fois que vous voulez vous connecter à un de vos service en ligne. Les noms d’hôtes prennent la forme  nom_d_hote.nom_de_domaine.com. Ils sont donc strictement identiques à ceux utilisés dans les URL pour surfer sur le web…

Par exemple, si vous créez un serveur web, et que vous vouliez vous connecter à votre serveur à l’aide d’un navigateur Web, vous saisissez http://nom_d_hote.nom_de_domaine.com dans la barre d’adresse. Les noms d’hôtes peuvent être utilisés pour bien d’autres choses. Vous pouvez également utiliser le même nom d’hôte, sans http://, pour vous connecter à votre ordinateur de bureau à distance en utilisant un logiciel comme Windows Remote Desktop.

Vous souhaitez lancer un serveur FTP ? Vous pouvez utiliser un nom d’hôte No-IP pour cela également. Soit en mettant le nom d’hôte directement dans votre client FTP ou, si votre navigateur le prend en charge, ftp://nom_d_hote.nom_de_domaine.com dans la barre d’adresse du navigateur. Vous devriez être en mesure d’établir une connexion de cette façon aussi.

Add-Host

Pour ajouter un hôte à votre compte, cliquez sur le lien « Add Host » (Ajouter des hôtes) dans le menu « Hosts/Redirects« . Cela fera apparaître la page Add a Host (Ajouter un hôte).

Add-HostnameVous êtes prêt à définir les informations relatives à votre nom d’hôte ? Allez, on s’y jette ! Voici les informations qui vous permettront de répondre aux questions de cet écran :• Saisissez le nom d’hôte dans la zone Hostname. C’est un nom de votre choix, dont vous vous souviendrez facilement. Si vous choisissez un nom qui est déjà utilisé, une erreur sera générée et vous devrez alors essayer un nom d’hôte différent. (hihi vous ne pourrez pas me piquer monraspberrypi…)

• Choisissez le type d’hôte dans Host Type. Le choix par défaut, DNS Host A, est généralement le bon. N’essayez pas de choisir l’un des autres types, sauf si vous essayez de résoudre un problème particulier qu’un enregistrement DNS de type A ne pourrait pas résoudre. Si votre FAI bloque le port 80 par exemple, et que vous essayez de lancer un serveur web ou un autre service sur le port 80, vous pouvez choisir Port 80 Redirect (à ce stade, vous serez invité à spécifier le port à utiliser pour la redirection). Si vous ne faites pas tourner de serveur web, ne choisissez surtout pas cette option, car elle vous empêchera probablement de vous connecter correctement.

• Dans le champ IP Address : vous devriez déjà voir apparaître votre adresse IP actuelle. Si vous souhaitez définir l’adresse IP de l’hôte à une autre adresse que votre emplacement actuel, vous pouvez entrer manuellement cette adresse maintenant.

• Les deux options suivantes (Assign to Group et Enable Wildcards) ne sont pas utilisés pour la configuration de base du compte et nous n’allons pas nous occuper d’elles dans cet article.

• Lorsque vous avez rempli les informations pour votre nouveau nom d’hôte, relisez pour être sûr que tout est correct, cliquez ensuite simplement sur le bouton « Add Host » en bas de la page pour enregistrer ces informations. (Notez ou faites une copie d’écran, au cas où…)

Si vous souhaitez utiliser No-IP pour gérer des hôtes et/ou exécuter des fonctions de DNS dynamiques pour votre propre nom de domaine (votre_nom.com), vous pouvez ajouter un domaine au système en sélectionnant « DNS Host » près de la barre bleu foncée en haut, puis cliquez sur « Add My Domain » (Ajouter mon domaine). Dans ce cas il vous faudra passer à la version payante…

Étape 5: Un adressage dynamique pour votre hôte

Maintenant que vous avez ajouté un hôte ou un domaine sur votre compte, il faut régler le problème d’adresse IP dynamique (Si votre FAI vous attribue une adresse IP statique, vous pouvez passer à l’étape 6).

DownloadSi vous avez une adresse IP dynamique, vous devrez installer le Dynamic Update Client (client de mise à jour dynamique) de No-IP (DUC). C’est un logiciel gratuit disponible dans la section téléchargements du site. Des instructions détaillées pour l’installation des versions Windows et Linux du logiciel DUC sont disponibles.

Après l’installation du client DUC, assurez-vous de le configurer avec l’adresse e-mail et mot de passe que vous avez utilisés pour vous connecter à ce site. Tant que le logiciel No-IP est correctement configuré et fonctionne, votre nom d’hôte pointera toujours vers l’adresse IP dynamique de votre ordinateur, même lorsque le FAI la modifie.

Etape 6: Configurez votre routeur

Si vous utilisez un routeur (une Box) pour vous connecter à Internet et/ou un pare-feu sur votre ordinateur, vous devrez vous assurer qu’il est configuré pour diriger le flux provenant d’Internet vers la machine de destination sur votre réseau. Ceci se fait en utilisant une fonction du routeur (de la box) appelée Port Forwarding. Les ports couramment utilisés sont le port 80 pour un serveur web, le port 21 pour le FTP et le port 25 pour la messagerie SMTP. Ne configurez que les ports que vous devez absolument utiliser pour évitez les attaques venant d’Internet.

Les configurations de base sont documentées en (anglais) dans la documentation du site No-IP. Mais pour plus d’informations concernant votre matériel ou logiciel particulier, il faudra consulter la documentation de votre équipement. Vu le nombre de combinaisons possibles, il est difficile de fournir des instructions détaillées pour chaque cas rencontré… Ne vous lancez pas dans ces configurations sans une connaissance minimum en réseau…Afin de vérifier que votre routeur et votre pare-feu sont configurés correctement, vous pouvez visiter le site Web  www.portchecktool.com ou sur www.canyouseeme.org. Votre adresse IP est renseignée automatiquement, indiquez le port à tester et cliquez sur le bouton Check Your Port :
test_port_ip

Étape 7: Publiez vos services

Une fois la configuration ci-dessus terminée, et si vous avez obtenu un résultat positif de PortCheckTools ou de CanYouSeeMe, vous pouvez maintenant démarrer vos services et répondre aux requêtes à l’aide de l’hôte ou du domaine que vous avez créé !

Utiliser le client No-IP de votre routeur

L’objectif est de communiquer votre adresse IP publique à No-IP. Ce peut être fait également directement par le routeur, si celui-ci intègre un client No-IP. J’utilise un routeur TP-Link  (Modèle TD-W8980 : N600 Wireless Dual Band Gigabit ADSL2+ Modem Router) qui intègre ce client (ainsi que celui de DynDNS). Dans ce cas, il suffit de configurer le client du routeur et il n’y aura pas de client à installer sur votre Raspberry Pi.

routeur_tplink_flou

Installer le client No-IP sur votre Raspberry Pi

Bon, votre Box est configurée. Il va falloir maintenant installer le client sur votre Raspberry Pi. On s’y jette ?

sudo wget http://www.no-ip.com/client/linux/noip-duc-linux.tar.gz

pi@raspberrypi ~ $ sudo wget http://www.no-ip.com/client/linux/noip-duc-linux.tar.gz
--2014-07-08 04:29:12--  http://www.no-ip.com/client/linux/noip-duc-linux.tar.gz
Résolution de www.no-ip.com (www.no-ip.com)... 8.23.224.110
Connexion vers www.no-ip.com (www.no-ip.com)|8.23.224.110|:80...connecté.
requête HTTP transmise, en attente de la réponse...301 Moved Permanently
Emplacement: http://www.noip.com/client/linux/noip-duc-linux.tar.gz [suivant]
--2014-07-08 04:29:13--  http://www.noip.com/client/linux/noip-duc-linux.tar.gz
Résolution de www.noip.com (www.noip.com)... 8.23.224.107
Connexion vers www.noip.com (www.noip.com)|8.23.224.107|:80...connecté.
requête HTTP transmise, en attente de la réponse...200 OK
Longueur: 134188 (131K) [application/x-gzip]
Sauvegarde en : «noip-duc-linux.tar.gz»

100%[======================================>] 134 188      132K/s   ds 1,0s

2014-07-08 04:29:15 (132 KB/s) - «noip-duc-linux.tar.gz» sauvegardé [134188/134188]

Il faut maintenant extraire l’archive :

sudo tar vzxf noip-duc-linux.tar.gz

pi@raspberrypi ~ $ sudo tar vzxf noip-duc-linux.tar.gz
./._noip-2.1.9-1
noip-2.1.9-1/
noip-2.1.9-1/._binaries
noip-2.1.9-1/binaries/
noip-2.1.9-1/binaries/._noip2-i686
noip-2.1.9-1/binaries/noip2-i686
noip-2.1.9-1/binaries/._noip2-x86_64
noip-2.1.9-1/binaries/noip2-x86_64
noip-2.1.9-1/._COPYING
noip-2.1.9-1/COPYING
noip-2.1.9-1/._debian.noip2.sh
noip-2.1.9-1/debian.noip2.sh
noip-2.1.9-1/._gentoo.noip2.sh
noip-2.1.9-1/gentoo.noip2.sh
noip-2.1.9-1/._LEEME.PRIMERO
noip-2.1.9-1/LEEME.PRIMERO
noip-2.1.9-1/._LIESMICH.ERST.deutsch
noip-2.1.9-1/LIESMICH.ERST.deutsch
noip-2.1.9-1/._LISEZMOI.ENPREMIER
noip-2.1.9-1/LISEZMOI.ENPREMIER
noip-2.1.9-1/._mac.osx.startup
noip-2.1.9-1/mac.osx.startup
noip-2.1.9-1/._Makefile
noip-2.1.9-1/Makefile
noip-2.1.9-1/._noip2.c
noip-2.1.9-1/noip2.c
noip-2.1.9-1/._README.FIRST
noip-2.1.9-1/README.FIRST
noip-2.1.9-1/._README.FIRST-SWE
noip-2.1.9-1/README.FIRST-SWE
noip-2.1.9-1/._README.FIRST.FRANCAIS
noip-2.1.9-1/README.FIRST.FRANCAIS
noip-2.1.9-1/._README.FIRST.ITALIANO
noip-2.1.9-1/README.FIRST.ITALIANO
noip-2.1.9-1/._README.FIRST.JAPANESE
noip-2.1.9-1/README.FIRST.JAPANESE
noip-2.1.9-1/._README.FIRST.pt_BR
noip-2.1.9-1/README.FIRST.pt_BR
noip-2.1.9-1/._README.FIRST_PT
noip-2.1.9-1/README.FIRST_PT
noip-2.1.9-1/._redhat.noip.sh
noip-2.1.9-1/redhat.noip.sh
pi@raspberrypi ~ $

Le client se trouve dans le dossier noip-2.1.9-1 :

cd noip-2.1.9-1

On peut maintenant passer à la compilation et à l’installation du client No-IP :

sudo make

pi@raspberrypi ~/noip-2.1.9-1 $ sudo make
gcc -Wall -g -Dlinux -DPREFIX=\"/usr/local\" noip2.c -o noip2
noip2.c: In function ‘dynamic_update’:
noip2.c:1595:6: warning: variable ‘i’ set but not used [-Wunused-but-set-variable]
noip2.c: In function ‘domains’:
noip2.c:1826:13: warning: variable ‘x’ set but not used [-Wunused-but-set-variable]
noip2.c: In function ‘hosts’:
noip2.c:1838:20: warning: variable ‘y’ set but not used [-Wunused-but-set-variable]
pi@raspberrypi ~/noip-2.1.9-1 $

puis :

sudo make install

pi@raspberrypi ~/noip-2.1.9-1 $ sudo make install
if [ ! -d /usr/local/bin ]; then mkdir -p /usr/local/bin;fi
if [ ! -d /usr/local/etc ]; then mkdir -p /usr/local/etc;fi
cp noip2 /usr/local/bin/noip2
/usr/local/bin/noip2 -C -c /tmp/no-ip2.conf

Auto configuration for Linux client of no-ip.com.

Please enter the login/email string for no-ip.com  abcdef1234
Please enter the password for user 'abcdef1234'  ***********

2 hosts are registered to this account.
Do you wish to have them all updated?[N] (y/N)  n
Do you wish to have host [monraspberrypi.ddns.net] updated?[N] (y/N)  y
Do you wish to have host [raspiblog.no-ip.biz] updated?[N] (y/N)  n
Please enter an update interval:[30]
Do you wish to run something at successful update?[N] (y/N)  ^M

New configuration file '/tmp/no-ip2.conf' created.

mv /tmp/no-ip2.conf /usr/local/etc/no-ip2.conf
pi@raspberrypi ~/noip-2.1.9-1 $

Le client est maintenant installé et configuré, on peut le lancer :

sudo /usr/local/bin/noip2

pi@raspberrypi ~/noip-2.1.9-1 $ sudo /usr/local/bin/noip2

Tester le service

Votre client est opérationnel, vous pouvez vérifiez sur No-IP que l’adresse IP Publique de votre Box/Routeur a bien été mise à jour :

verification_IPVous voyez ici que les deux hôtes ont la même adresse. Le premier (monraspberrypi est un RasPi, l’autre est le client No-IP de mon routeur…).

Ça Marche !

Automatiser le démarrage du client

Allez en voilà un bout qui est en place. Mais bon, si le Raspberry Pi redémarre… le client noip ne sera pas relancé, il faudra refaire cette opération manuellement.

Nous allons donc automatiser le lancement du client noip, ce qui fait qu’à chaque redémarrage du Raspberry Pi, il reprendra sa fonction de mise à jour de votre adresse IP dynamique.

Il y a de nombreuses façons de gérer le lancement d’une commande au démarrage de Linux. Je vous propose de créer un script d’initialisation dans /etc/init.d et de l’enregistrer en utilisant update-rc.d. De cette façon, l’application est lancée et arrêtée automatiquement lors du démarrage ou à la fermeture du système.

Créer un script dans /etc/init.d

Démarrez nano pour créer un script (je l’appelle noip …) dans le dossier /etc/init.d

sudo nano /etc/init.d/noip

pi@raspberrypi ~/noip-2.1.9-1 $ sudo nano /etc/init.d/noip

Le script qui suit est un exemple basé sur la mise en service du client no-ip [/usr/local/bin/noip], mais vous pouvez bien entendu changer le nom du script ainsi que la commande lancée automatiquement au démarrage ou arrêtée à la fermeture du système.

Saisissez (ou copiez) le script suivant (d’après stuffaboutcode.com) :

#! /bin/sh
# /etc/init.d/noip

### Début des informations d'entête
# Provides:          noip
# Required-Start:    $remote_fs $syslog
# Required-Stop:     $remote_fs $syslog
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: Script simple pour démarrer un programme lors du boot
# Description:       D'après www.stuffaboutcode.com ce script va lancer/arrêter un programme lors du  démarrage/de la fermeture du système.
### Fin des informations d'entête

# Si vous souhaitez qu'une commande fonctionne en permanence
# ajoutez la sous cette ligne

# Exécution d'un certain nombre de fonctions spécifiques
# à la demande du système
case "$1" in
   start)
      echo "Starting noip"
      # lance l'application que vous souhaitez démarrer
      /usr/local/bin/noip2
      ;;
   stop)
      echo "Arrêt de noip"
      # Met fin à l'application que vous souhaitez arrêter
      killall noip2
      ;;
   *)
      echo "Utilisation : /etc/init.d/noip {start|stop}"
      exit 1
      ;;
esac

exit 0

/!\ ATTENTION : il est important de tester d’abord manuellement votre script et de vous assurer qu’il ne demande pas à l’utilisateur de fournir une réponse (du genre : Appuyez sur « y »). Cela pourrait bloquer indéfiniment le démarrage du Raspberry Pi dans l’attente de la réponse d’un utilisateur … qui n’est pas là !

Rendre le script exécutable

Il faut rendre le script exécutble un script :
sudo chmod 755 /etc/init.d/noip

Tester le script

Puis procéder au test du programme :
sudo /etc/init.d/noip start

Si vous avez déjà lancé manuellement noip vous devriez obtenir ce message :

pi@raspberrypi ~/noip-2.1.9-1 $ sudo /etc/init.d/noip start
Starting noip
pi@raspberrypi ~/noip-2.1.9-1 $ One noip2 process is already active,
and the multiple instance flag (-M) is not set.

Vous pouvez lancer le script noip sans paramètres, vous obtiendrez une aide sur son utilisation. Ensuite testez l’arrêt et le démarrage :

pi@raspberrypi ~/noip-2.1.9-1 $ sudo /etc/init.d/noip
Utilisation : /etc/init.d/noip {start|stop}
pi@raspberrypi ~/noip-2.1.9-1 $ sudo /etc/init.d/noip stop
Arrêt de noip
pi@raspberrypi ~/noip-2.1.9-1 $ sudo /etc/init.d/noip start
Starting noip
pi@raspberrypi ~/noip-2.1.9-1 $

Si ces tests manuels sont concluants, il est possible d’automatiser le lancement de noip en l’intégrant à la séquence de démarrage du système :

Lancer le script automatiquement au démarrage

Pour que votre script s’exécute automatiquement au démarrage du système, exécutez la commande suivante:

sudo update-rc.d noip defaults

pi@raspberrypi ~/noip-2.1.9-1 $ sudo update-rc.d noip defaultsnoip
update-rc.d: using dependency based boot sequencing
usage: update-rc.d [-n] [-f] <basename> remove
update-rc.d [-n] <basename> defaults [NN | SS KK]
update-rc.d [-n] <basename> start|stop NN runlvl [runlvl] [...] .
update-rc.d [-n] <basename> disable|enable [S|2|3|4|5]
-n: not really
-f: force

The disable|enable API is not stable and might change in the future.
pi@raspberrypi ~/noip-2.1.9-1 $

Remarque : L’en-tête situé au début du script permet de rendre le script compatible LSB (Linux standards Base). Il fournit des détails sur le script de démarrage et vous ne devriez avoir besoin de changer que le nom du script. Si vous voulez en savoir plus sur la création de scripts LSB pour la gestion des services, voyez http://wiki.debian.org/LSBInitScripts.

Vérifier que le démarrage de noip s’est bien effectué

Redémarrez votre Raspberry Pi :

sudo reboot

Logguez vous, puis vérifiez que noip a bien été lancé au démarrage du système :

ps -ef |grep noip2

pi@raspberrypi ~ $ ps -ef |grep noip2
nobody 2121 1 0 09:01 ? 00:00:00 /usr/local/bin/noip2
pi 2149 2130 0 09:03 pts/0 00:00:00 grep --color=auto noip2
pi@raspberrypi ~ $

Supprimer le script

Si vous voulez supprimer proprement le script de démarrage, exécutez la commande suivante:

sudo update-rc.d -f  noip remove

pi@raspberrypi ~ $ sudo update-rc.d -f noip remove
update-rc.d: using dependency based boot sequencing
insserv: warning: script 'noip' missing LSB tags and overrides
pi@raspberrypi ~ $ sudo ps -ef |grep noip2
nobody 2121 1 0 09:01 ? 00:00:00 /usr/local/bin/noip2
pi 2164 2130 0 09:07 pts/0 00:00:00 grep --color=auto noip2
pi@raspberrypi ~ $

noip2 tourne toujours… Pas d’inquiétude, au prochain redémarrage du Raspberry Pi, le script ne sera plus lancé automatiquement. Si vous souhaitez l’exécuter, il faudra passer par la lancement manuel avec start.

Conclusion

Avec ce script noip, vous allez pouvoir publier vos services (web, ftp…) sur Internet. La plus grande prudence s’impose néanmoins car dès que vous « ouvrez » votre machine sur Internet, vous vous exposez à des attaques.

Ce service gratuit jusqu’à 3 machines permet de publier sur le web des informations recueillies par le Raspberry Pi. Cela peut être particulièrement utile pour des applications de domotique ou de surveillance à distance par exemple.

Vous utilisez déjà le service No-IP ou ce tutoriel vous a donné des idées d’utilisation ? N’hésitez pas à en parler dans les commentaires ci-dessous… Ils sont faits pour ça ! 😉

Sources :

Share Button

À propos François MOCQ

Électronicien d'origine, devenu informaticien, et passionné de nouvelles technologies, formateur en maintenance informatique puis en Réseau et Télécommunications. Dès son arrivée sur le marché, le potentiel offert par Raspberry Pi m’a enthousiasmé j'ai rapidement créé un blog dédié à ce nano-ordinateur (www.framboise314.fr) pour partager cette passion. .

54 réflexions au sujet de « Une adresse sur Internet pour votre Raspberry Pi avec No-IP »

  1. cistes44

    Personnellement, j’utilise dt-dns qui se synchronise avec ma box. Ce service présente à mon sens l’avantages de ne pas nécessiter de « renouvellement d’abonnement » sous aucune forme. Par contre, il n’existe pas à ma connaissance de script disponible pour linux…

    Répondre
  2. Ping : Raspberry | Pearltrees

  3. Benoît

    Bonjour,
    Merci pour tout ce joli travail.
    Cependant, ayant suivi scrupuleusement cette procédure, je suis resté bloqué sur le script « noip » qui permet de lancer le service noip start ou stop. En effet, en le testant, j’ai une erreur:
    la commande : sudo /etc/init.d/noip start (ou stop ou rien)
    me retourne l’erreur : /etc/init.d/noip: 18: /etc/init.d/noip: syntax error: word unexpected (expecting « ) »)

    Donc voilà, si quelqu’un a une idée. Merci

    Répondre
    1. François MOCQ Auteur de l’article

      Bonjour Benoît
      Relisez déjà relisez TRES attentivement le script…. Ça ressemble à une erreur provoquée par un caractère manquant (ou en trop).
      Si vous ne trouvez pas, collez le contenu de votre script dans un commentaire
      Cordialement
      François

      Répondre
  4. Benoît

    Bonjour,
    Il n’y avais pas d’erreur, j’avais fait un copier coller du script de cette page, puis du site de stuffaboutcode. Je pense que c’est une mauvaise interprétation des guillemets.
    Donc j’ai tout réécris à la main, ça fonctionne, ouf.

    Merci encore pour ce blog, bon courage pour la suite.

    Répondre
  5. Jihem

    Bonjour et merci pour ce tuto qui à fonctionné du 1er coup!
    A chaque fois que j’essaye de faire un « update-rc.d, j’ai le message:
    « insserv: warning: script ‘noip’ missing LSB tags and overrides
    insserv: warning: script ‘mathkernel’ missing LSB tags and overrides »
    pour NOIP ça n’a pas empêché le lancement au démarrage, pour d’autres scripts, si.
    j’ai chercher un peu partout et les réponses ne sont pas claires (à mes yeux); certains préconisent de supprimer « Wolfram » ce que j’ai essayé et qui a provoqué une erreur.
    Avez vous une idée sur le sujet?
    merci d’avance et encore bravo pour ces tutos qui simplifient bien la vie des pauvres linuxiens débutants

    Répondre
    1. François MOCQ Auteur de l’article

      Bonjour Jihem
      Ce n’est qu’un warning donc pas de souci
      Il manque les LSB tags quelque chose du genre :
      # LSB compliant service control script
      #
      ### BEGIN INIT INFO
      # Provides: $s
      # Required-Start: \$remote_fs \$all
      # Should-Start:
      # Required-Stop:
      # Should-Stop:
      # Default-Start: 3 5
      # Default-Stop: 0 1 2 6
      # Short-Description: $s
      # Description: Starts and stops $s
      ### END INIT INFO

      EOFLSB

      au début du script mais ça ne doit pas poser de souci majeur
      Cordialement
      François

      Répondre
  6. Frankynov

    Bonsoir,

    Merci pour l’article !
    Personnellement, pour la mise à jour de l’adresse vers NoiP, j’utilise « noiphp », un petit script php tout simple à mettre en place. Il suffit de l’appeler avec un cron toutes les 15 minutes et le tour est joué ! 🙂
    A noter l’installation au préalable de php et de php-curl

    Répondre
  7. Plopplip

    Bonjour, et merci pour ce tuto (et le site).

    Pour info, j’ai eu un souci lors de l’install (étape 7, après le sudo make) avec un message

    « Can’t connect to dynupdate.no-ip.com (Connection timed out)
    Network must be operational to create configfile. Ending! »

    Après recherche, il se trouve que no-IP a besoin de l’ouverture du port 8245 dans le firewall pour ceux qui en ont un.
    En espérant que ça puisse en aider certain .

    Répondre
  8. Loictetou

    Bonjour,
    je suis bloqué à la commande « make », cela me renvoie « -sh make not found », j’utilise mon rasp sous openelec, je n’ai pas besoin de la commande « sudo », j’ai tenté plusieurs solution mais rien.
    Si quelqu’un peux m’aider.
    Merci d’avance.

    Répondre
  9. lewis

    Salut merci pour votre tuto!
    J’ai rencontrer un pb avec ma box sfr qui ne reconnait pas no-ip dans la liste déroulante du champ service (onglet dyndns).
    Conclusion : je ne peux pas associer mon nom de domaine enregistré sur no-ip a ma box
    Merci pour votre réponse.

    Répondre
        1. Jihem

          Bonjour,
          Quelle est votre version de Box?
          Sur la NB6 il y a noip.com, ovh.fr, et d’autres encore. Peut-être faudrait-il faire une MAJ du firmware?
          De toute façon, je ne crois pas qu’il soit forcément nécessaire d’installer le dyndns sur la boxe si le programme tourne sur le Raspberry. Un seul accès à noip doit suffire pour mettre à jour la nouvelle adresse.
          À vérifier
          Bonne journée

          Répondre
  10. Pierre

    Bonjour,

    J’ai déjà un compte no-ip et je suis obligé de m’y connecter tous les 30j pour confirmer mes hosts.
    Est-ce que l’installation d’un client enlève cette contrainte ?

    Merci d’avance.

    Répondre
  11. Jihem

    Noip reste un des derniers services gratuit avec cette contrainte de renouveler tous les mois. Par contre je me demande si SFR ne fournit pas désormais une adresse fixe? Ça fait plusieurs fois que je redémarre ma Boxe et j’ai toujours la même adresse.
    À vérifier.

    Répondre
  12. Arsène

    Bonjour, j’ai bien suivi votre script et il fonctionne très bien, j’ai maintenant une question. Lorsque l’on coupe la box ou le raspberry à la reconnexion la date et l’heure ne se reconfigure que si l’on effectue un reboot, n’existe-t-il pas une solution permettant d’éviter cette étape? Par exemple un script effectuant un reboot automatique ou une autre réponse, j’ai cherché et je ne vois pas comment m’y prendre..
    Dans l’attente d’une réponse et en vous remerciant d’avance

    Cordialement

    Arsène

    Répondre
  13. Julien G

    Bonjour,

    Je viens de me heurter à quelques erreurs lors du »make install » et le problème à été résolu par la commande « apt-get install build-essential ». J’espère que cela pourra aider d’autres personnes.

    J’utilise la distribution de base de OSMC.

    Et un grand merci pour le tuto

    Répondre
  14. Ping : Raspberry Pi - Trucs | Pearltrees

  15. Chenko

    Bonjour,

    merci pour votre site intéressant!
    Mais: l’image de l’arrière plan le rend illisible.
    je suis étonné que ça ne choque personne d’autre!

    Répondre
    1. François MOCQ Auteur de l’article

      Bonjour
      vous utilisez quel navigateur?
      avec tous ceux que j’ai testés le fond du blog est blanc et la photo n’apparait que sur les cotés…
      je vous joins une copie d’écranCopie d'écran framboise314.fr - 8 octobre 2015 que je viens de faire
      vous ne voyez pas la même chose ?
      cordialement
      François

      Répondre
  16. Olivier

    Bon, j’utilise cette technique depuis plusieurs années, mais comme tu l’indiques dans ton article, cela n’est pas toujours sans soucis. Service devenant payant chez DynDns, adresses bloquées chez no-ip… Sans compter que j’ai passé l’age de croire qu’un service sur internet est éternel… Qu’il soit gratuit ou non, j’en ai vu pas mal disparaitre… Je me prépare donc à migrer vers une solution « maison » et durable dont voici le fonctionnement. Je dispose sur mon site internet de plusieurs répertoires dans lesquels je mets des scripts de deux types:
    – L’un est utilisé et lancé au départ du crontab de mon RPI et a pour but d’envoyer l’adresse ip du moment. Il vérifie donc si celle-ci a changé, si c’est le cas, il modifie une base de données sur mon site et y met sa nouvelle adresse. En gros, c’est ce que fait le logiciel DUC de No-IP
    – Le deuxième, je l’utilise pour rediriger toute requête vers mon RPI. Une personne souhaitant se connecter sur le site hébergé par mon RPI se connecte d’abord sur http://www.monsite.com/MonRPI. A cette adresse, il y trouve un script qui le redirige immédiatement sur mon RPI grâce à une balise de redirection immédiate:
    Tout çà marche très bien pour tous les sites web que j’héberge sur mon RPI. Mon site web est fiable et fait donc très bien son boulot. Là où cela se complique, c’est lorsque je veux me connecter avec mon client ftp sur mon rpi ou dans le cas ou je veux établir une connexion rpi. Là, impossible d’introduire mon adresse http://www.monsite.com/RPI. Forcément, les redirections du genre, c’est du html et donc peu de chances qu’un logiciel SSL ou FTP puisse se débrouiller avec ca… As-tu une idée pour résoudre mon problème?
    D’avance merci

    Olivier

    Répondre
  17. Thibaud

    Bonjour,

    Merci pour ce très chouette tutoriel. C’est mon premier jour avec un raspberry qui doit à terme remplacer pas mal des fonctionnalités de mon pc server sous windows afin de faire des économies d’énergie. Je suis donc débutant sous linux. J’ai mis en route le raspberry, installé un vnc, installé un serveur web php/mysql, configuré une adresse ip et pour terminé suivit votre tutoriel.

    L’application noip2 tourne bien et démarre correctement lors du boot mais elle ne fait pas son boulot de mis à jour. J’ai regardé le readme et je suis presque certain que c’est pour une question de droit sur les fichiers mais je ne sais pas comment mis prendre. Pour l’instant j’ai uniquement un utilisateur pi pour lequel j’ai définit un mot de passe et je dois éxécuter quasiment toutes mes commandes avec sudo sans quoi je n’ai pas les droits suffisants.

    Si j’exécute noip2 -S pour avoir un statut, j’ai les infos suivantes :

    l noip2 process active.

    Process 2899, started as noip2 (version 2.1.9)
    Using configuration from /usr/local/etc/no-ip2.conf
    Last IP Adresse set 0.0.0.0
    Account (mon user)
    configured for :
    host (mon adresse)
    executing username=(mon user)&pass=(mon mot de pass)&h[]=(mon adresse) upon successful update
    Updating every 5 minutes va /dev/eth0 with NAT enabled

    Je pense que le problème est clairement que l’adresse IP définie reste à 0.0.0.0. Dans le fichier readme, il est expliqué que la cause probable est un problème d’accès pour écrire dans le fichier de configuration et qu’il faut définir les droits permettre l’écriture. J’ai essayé de faire le chown root indiqué mais sans succès. Voici le texte du readme sur le sujet :

    IMPORTANT!! Please set the permissions correctly on your executable.
    If you start noip2 using one of the above methods, do the following:
    chmod 700 /usr/local/bin/noip2
    chown root:root /usr/local/bin/noip2
    If you start noip2 manually from a non-root account, do the chmod 700 as
    above but chown the executable to the owner:group of the non-root account, and
    you will need to substitute your new path if the executable is not in
    /usr/local/bin.

    ###########################################################################
    SAVED STATE

    Noip2 will save the last IP address that was set at no-ip.com when it ends.
    This setting will be read back in the next time noip2 is started. The
    configuration data file must be writable for this to happen! Nothing
    happens if it isn’t, the starting 0.0.0.0 address is left unchanged.
    If noip2 is started as root it will change to user ‘nobody’, group
    ‘nobody’. Therefore the file must be writeable by user ‘nobody’ or
    group ‘nobody’ in this case!

    Merci pour votre aide et bon succès pour la suite de ce site!

    Répondre
    1. François MOCQ Auteur de l’article

      Bonjour Thibaud
      si vous êtes sous Jessie sudo update-rc.d ne fonctionne plus
      ça va être un problème avec les tutos écrits sous Wheezy
      beaucoup de choses ont été modifiées avec Jessie à cause du passage en systemd
      bonne année 2016
      cordialement
      François

      Répondre
  18. Ping : Station Météo ++ | 8 bits, ça suffit ?

  19. Pagelot

    Bonsoir, je suis bloqué à l’étape 7 lorsqu’il faut entrer la commande « sudo make install », j’ai un message d’erreur me disant « Connect to dynupdate.no-ip.com timed out », que dois-je faire ??
    Merci d’avance

    Répondre
    1. François MOCQ Auteur de l’article

      Bonjour
      Difficile de répondre sans avoir d’autres infos 🙂 (ni sur ce qui s’est passé avant, ni sur votre installation réseau)
      voyez http://www.noip.com/support/knowledgebase/getting-started-with-no-ip-com/ (c’est en anglais)
      en particulier au step 6 vous pouvez tester les ports ouverts sur votre routeur avec http://www.portchecktool.com/

      le tutoriel date un peu (2014) et c’est possible également que des modifs soient intervenues chez No ip

      cordialement
      François

      Répondre
      1. Pagelot

        Merci de votre réponse rapide
        Tous les ports indiqués sont ouverts sur ma box et j’ai toujours ce message d’erreur
        Au tout départ je voulais donc transmettre les données de la raspberry sur mon html no-ip donc j’ai suivi ce tuto, mais lorsque qu’il faut exécuter la commande « sudo make install » j’ai ce message d’erreur qui apparaît
        Qu’entendez vous par mon installation réseau ?
        Je suis débutant dans la raspberry, j’ai 17 ans et je travaille sur un projet pour le bac.

        Répondre
        1. Pagelot

          C’est bon, ça fonctionne, j’ai réessayé et ça a marché, comment ? Je ne sais pas aha.
          Par contre maintenant lorsque je dois aller sur no-ip pour vérifier que la box a été mis à jour, je n’ai pas le deuxième hôte, aurais-je loupé quelque chose ?

          Répondre
  20. Ping : Envoyer l’adresse IP internet par email en Python ! | Blog de F8ASB

  21. Doudy

    Bonjour,
    J’ai suivi la procédure décrite ci-dessus
    En encodant mon Hostname de no-ip j’arrive sur la page « Apache2 Debian Default Page » qui me dit que le test est correct. Ouf!
    Ce fichier index.html se trouve dans /var/www/html/
    Et maintenant je fait quoi si je veux p.ex démarrer Domoticz ?

    Répondre
    1. François MOCQ Auteur de l’article

      bonjour
      je n’utilise pas domoticz mais s’il tourne sur le pi dans le serveur web ou si c’est lui le serveur web vous accéderez à sa page au lieu d’aller sur la page par défaut d’apache
      cordialement
      François

      Répondre
    1. François MOCQ Auteur de l’article

      si c est de l apache il faut que le chemin de la page par défaut soit celui de domoticz
      fichier de conf d apache
      normalement en vous connectant au RasPi en local sur le port 80 vous devez tomber sur domoticz
      cordialement
      François

      Répondre
  22. Doudy

    Pour info :
    Si vous avez un message d’erreur en lançant « sudo update-rc.d noip defaults » du syle
    insserv: warning: script ‘K01noip’ missing LSB tags and overrides
    insserv: warning: script ‘noip’ missing LSB tags and overrides

    Il faut modifier via sudo nano /etc/init.d/noip

    ### Début des informations d’entête par ### BEGIN INIT INFO
    ### Fin des informations d’entête par ### END INIT INFO

    Après, plus d’erreur :
    pi@raspberrypi:~ $ sudo update-rc.d noip defaults
    pi@raspberrypi:~ $

    Trouvé ici : http://forums.framboise314.fr/viewtopic.php?t=2325#p14590

    Répondre

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Complétez ce captcha SVP * Time limit is exhausted. Please reload CAPTCHA.