Aujourd’hui nous allons voir comment mettre en place une solution no-ip sur notre serveur afin de facilement et rapidement avoir un nom de domaine gratuit. Cette solution permet surtout de pouvoir contacter notre serveur depuis l’extérieur et de mettre à jour automatiquement le DNS si nous disposons d’une adresse ip dynamique.
Ce tuto ce déroulera en trois parties :
- Création d’un compte no-ip (https://www.noip.com) : Afin d’obtenir un nom de domaine gratuit (Voir condition sur le site)
- Installation d’un client sur votre serveur : afin de mettre automatiquement à jour le dns si votre adresse ip publique change.
- Configuration du client.
Création d’un compte No-Ip
Pour commencer rendez-vous sur le site https://www.noip.com, et créer un compte.
Une fois votre compte validé, connectez vous à la plateforme et cliquer sur menu « Dynamic DNS » puis sélectionner « Hostnames » et enfin cliquer sur « Add Hostnames » .
Il vous sera proposé de créer votre nom de domaine gratuit et une adresse ip publique sera alors automatiquement proposer (celle sur laquelle vous êtes à ce moment). Si celle-ci n’ai pas la bonne vous pouvez modifier l’adresse directement.
Installation du client No-Ip sur notre serveur Linux.
Récupérer et reconfigurer les sources
Pour installer ce client sur votre machine linux il suffit de récupérer les sources sur le site officiel : https://www.noip.com/client/linux/noip-duc-linux.tar.gz et de les recompiler.
Sur votre machine entrer les commandes suivantes
cd /usr/local/src/
Puis télécharger la source officiel sur votre serveur linux avec la commande wget
sudo wget https://www.noip.com/client/linux/noip-duc-linux.tar.gz
Décompresser le fichier téléchargé
sudo tar xf noip-duc-linux.tar.gz
Entrer dans le dossier no-ip avec la commande cd. Ici il s’agit de no-ip version 2.1.9-1
cd noip-2.1.9-1/
Il ne vous reste plus qu’à recompiler les sources
sudo make install
Il vous sera alors demandé d’entrer votre identifiant et mot de passe no-ip (celui du compte créé à la première étape.
Attention : Si un message d’erreur “make not found” ou “missing gcc” apparait, c’est que vous ne possédez pas de compilateur gcc. Il vous faut alors l’installer avec par exemple la commande suivante:
sudo apt-get install gcc
Configuration du client no-ip
Pour configurer votre client no-ip (pour par exemple définir de quelle machine il s’agit) il faut utiliser la commande suivante. Celle-ci va auto-générer un fichier de configuration pour votre machine.
sudo /usr/local/bin/noip2 -C
Il vous sera alors demandé d’entrer l’adresse de votre compte et votre mot de passe.
Si vous possédez plusieurs hosts enregistrés, il vous sera demandé si vous souhaitez les mettre tous à jours, sélectionner non, puis sélectionner le bon dans la liste qui vous est proposé. Il vous est ensuite demandé l’intervalle d’update du client, de base celui-ci est configuré sur 30 jours. Puis il vous est demandé si vous souhaitez démarrer quelque chose lors de la mise à jour, ce qui peut être très utile pour configurer un script automatique d’envoi d’e-mail par exemple.
A la fin de cette étape un fichier de configuration est alors créé /usr/local/etc/no-ip2.conf
Démarrage automatique du client no-ip
A cette étape il faut encore lancer le client No-ip, et celui-ci ne ce démarre pas automatiquement.
Pour le lancer taper la commande suivante :
sudo /usr/local/bin/noip2
Pour savoir comment lancer le client en automatique il est conseillé de lire le fichier README présent dans le dossier no-ip.
Pour notre machine sous debian/Raspbian il existe déjà un script appelé debian.noip2.sh dans le fichier /usr/local/bin/noip2
Copier celui-ci dans /etc/init.d/, dans mon cas j’en profite pour le renommer noip.sh
sudo cp debian.noip2.sh /etc/init.d/noip.sh
Comme avec tous les scripts, il faut encore le rendre exécutable par le système avec la commande chmod
sudo chmod 755 /etc/init.d/noip.sh
Si nous désirons arrêter ou lancer noip à la main, nous pourrions maintenant taper les deux commande suivante.
sudo /etc/init.d/noip.sh start sudo /etc/init.d/noip.sh stop
Pour que le système exécute le script automatiquement au changement de runlevel (démarrage et fermeture de la machine), nous devons créer des liens symboliques vers notre script dans les dossiers /etc/rcX.d (avec X le niveau correspondant). C’est à ça que nous sert la commande update-rc.d. Ici nous l’utiliserons avec les options par défaut.
sudo update-rc.d noip.sh defaults
Si un message d’erreur « insserv » apparait il faut suivre la documentation LSBInitScript de chez debian
insserv: warning: script 'noip.sh' missing LSB tags and overrides
Pour ma part j’ai ajouter cette partie au tout début du script noip.sh et cela fonctionne parfaitement.
### BEGIN INIT INFO # Provides: noip # Required-Start: $local_fs $network # Required-Stop: # Default-Start: 2 3 4 5 # Default-Stop: 0 1 6 # Short-Description: Start daemon noip at boot time # Description: Enable service noip. ### END INIT INFO
Conclusion
Cette solution permet de mettre facilement en place un nom de domaine pour une de nos machine et de mettre à jour automatiquement le dns pour la contacter si nous disposons d’une adresse ip dynamique.
Il existe aussi une solution pour les machines sous Windows (http://www.noip.com/download?page=win) ou Mac (http://www.noip.com/download?page=mac).
Bonjour,
Lors de la manip:
————————-
sudo make install
Il vous sera alors demandé d’entrer votre identifiant et mot de passe no-ip (celui du compte créé à la première étape.
————————
J’ai fais une erreur de frappe dans mon adresse mail puis malheureusement validé.
Je voulais savoir quelle manip effectuer pour modifier l’adresse .
Merci
Bonjour Antoine,
Je n’ai jamais eu ce soucis pour tout dire…
Peut être que le fait de refaire un make install pourrais écraser l’ancienne config.
Le compte et mot de passe est de nouveau demandé lors de la configuration du client (voir le reste du tuto).
Je vais faire des tests dans le weekend et je reviens vers toi.
Merci Christian,
Je viens de refaire la manip ce soir et cela fonctionne a merveille 😉
Comme tu l’as indiqué il faut reprendre la procédure au:
make install
Par contre une petite question je suis sous raspberry, je voulais savoir si tu peux voir l’application run en mode fenêtre ou seulement cas partir du gestionnaire de taches ?
Si c’est le cas quel nom porte le processus car je ne le vois pas .
(Malgré que quand je relance le start il me dit que le processus tourne déjà).
Merci d’avance
Hello Antoine,
Je ne manipule que la ligne de commande, et je crois bien, malheureusement, que sous linux, seul la ligne de commande est possible pour NoIp.
En ce qui concerne le processus, je viens de le réinstaller sur un VPS pour refaire des tests, et il celui-ci ce nomme noip2.
Si tu veut être certain que celui-ci tourne sans avoir à le relancer, tu peux taper la commande suivante :
ps -aux | grep noip.
Si celui-ci tourne tu dois avoir deux lignes en résultat, une pour ta commande grep noip et l’autre pour le processus qui tourne (voir exemple ci dessous) :
nobody 6475 0.0 0.0 16896 1916 ? Ss 21:45 0:00 /usr/local/bin/noip2
root 6513 0.0 0.0 11184 1688 pts/0 R+ 21:52 0:00 grep noip
Si tu n’es pas trop familiarisé avec les ligne de commande, mais que tu souhaite voir facilement les processus qui tournent sur ta machine, je te conseil d’installe htop (sudo apt-get install htop)
C’est une visualiseur interactif en temps réel des processus.
Je reste avec plaisir à disposition
Merci!! Excellente explication! Fonctionne sans problème sur serveur!
4.9.0-6-amd64 GNU/Linux;
Distributor ID: Debian;Release: 9.4;Codename: stretch
Bonne journée!
Super 🙂 Merci
Bonjour,
Ça marche super !!! Je voulais pouvoir faire de l’aide à distance.
Seule la commande sudo cd*** n’a pas fonctionné ; je suis passé en root et ensuite j’ai fait cd****.
Je m’attendais à ce que la modification du script ne fonctionne pas…. # = commentaire ? OK avec un simple copier/coller !
Merci !
Maurice
sudo n’est pas nécessaire pour cd, il ne faut pas demander les privilèges.