J'ai un serveur Linux (Rasperry Pi utilisant Raspbian comme système d'exploitation) qui devrait utiliser uniquement une adresse IP statique.
Cependant, j'ai remarqué qu'il avait aussi une adresse IP du serveur DHCP (l'adresse IP donnée par DHCP est 192.168.111.2
). Selon les paramètres réseau, le serveur doit utiliser uniquement une adresse IP statique (192.168.111.100
).
Le contenu de /etc/network/interfaces
:
auto lo
iface lo inet loopback
auto eth0
iface eth0 inet static
address 192.168.111.100
netmask 255.255.255.0
gateway 192.168.111.1
dns-nameservers ip1 ip2
Malgré l'utilisation d'une configuration statique, je peux utiliser SSH sur le périphérique en utilisant également l'adresse IP donnée par DHCP. De plus, il semble que ntpd
utilise la mauvaise adresse IP ainsi que la bonne.
Sortie de Netstat:
udp 0 0 192.168.111.2:123 0.0.0.0:* 2774/ntpd
udp 0 0 192.168.111.100:123 0.0.0.0:* 2774/ntpd
Selon ifconfig
, l'IP 192.168.111.2
n'est pas utilisé:
eth0 Link encap:Ethernet HWaddr b8:27:eb:be:18:1c
inet addr:192.168.111.100 Bcast:192.168.111.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:138099 errors:0 dropped:0 overruns:0 frame:0
TX packets:81146 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:95954711 (91.5 MiB) TX bytes:27076870 (25.8 MiB)
ps -ef | grep dhcp
indique que j'ai un démon DHCP en cours d'exécution:
root 2000 1 0 Oct07 ? 00:00:06 /sbin/dhcpcd
Comment désactiver le démon DHCP
du démarrage et m'assurer que mon serveur utilise uniquement le paramètre static?
Ce scénario semble vraiment bizarre car votre configuration devrait fonctionner comme vous le décrivez - et espérer que cela fonctionnerait - si une adresse IP statique est définie dans /etc/network/interfaces
. Cela dit, cette discussion sur le site officiel de Raspberry Pi est centrée sur le problème. L'utilisateur "rpdom" l'indique sur le message daté du "28 mai, 2015 6h21 ":
Cela se produit dans les dernières mises à jour. Cela est dû au fait que le nouveau client DHCP ignore ce que font les fichiers d'interface et fait sa propre chose en plus ... ça me rend dingue. Je regarderais comment reconfigurer le client DHCP (je ne peux pas me rappeler lequel ou comment le faire, je suis toujours sur l'ancien qui fonctionne pour moi), le désactiver ou le supprimer (si possible).
Plus profondément dans le fil, l'utilisateur "KLL" suggère l'autre article suivant dans sa réponse datée du "lundi 10 août 2015 à 12 h 59". Selon " knute ”:
Quelque part en cours de route, une mise à niveau a modifié mon fichier
/etc/network/interfaces
avec le mot "manuel" au lieu de dhcp ou static et je me suis retrouvé avec deux adresses IP, mon adresse statique et une adresse dhcp. J'ai finalement eu le temps de jouer avec et j'ai découvert quedhcpcd5
fonctionnait différemment de ce qu'il y avait auparavant. Pour obtenir uniquement votre adresse statique, ne modifiez pas/etc/network/interfaces
. Remettez le mot 'manuel' si vous l'avez changé et modifiez plutôt le/etc/dhcpcd.conf
comme indiqué dans l'exemple de la documentation.
L’idée est donc que le comportement de dhcpcd5
a changé dans l’une des mises à niveau. Et la solution pour résoudre le problème est de supprimer toutes les modifications de /etc/network/interfaces
et d’ajuster les paramètres dans /etc/dhcpcd.conf
pour obtenir une adresse IP statique; exemple de configuration ci-dessous:
static <value>
Configures a static <value>. If you set ip_address then dhcpcd
will not attempt to obtain a lease and just use the value for the
address with an infinite lease time.
Here is an example which configures a static address, routes and
dns.
interface eth0
static ip_address=192.168.0.10/24
static routers=192.168.0.1
static domain_name_servers=192.168.0.1
Vous trouverez plus d'informations sur le contenu de dhcpcd.conf
sur la page de manuel officielle correspondante .
Cela dit, une autre idée est de conserver les paramètres que vous avez dans /etc/network/interfaces
, puis éditez /etc/dhcpcd.conf
pour ajouter la ligne denyinterfaces eth0
afin d'indiquer au démon DHCP d'ignorer complètement eth0
. L'une ou l'autre solution devrait fonctionner, mais une solution pourrait être une solution préférable en fonction de vos besoins/exigences globaux en matière de réseau.
ce qui a fonctionné pour moi est d’utiliser un fichier/etc/network/interfaces comme dans la question initiale et de simplement supprimer le client DHCP:
apt-get remove dhcpcd5 isc-dhcp-client isc-dhcp-common
Je dois dire que, malheureusement, aucune des solutions proposées ici n’a fonctionné pour moi. Mais après une longue bataille avec DHCP, j'ai finalement réussi à résoudre le problème:
vi /etc/systemd/network/eth0.network
changement:
[Match]
Name=eth0
[Network]
DHCP=yes
à:
[Network]
DHCP=no
j'espère que cela t'aides.
Essayé quelques choses et a constaté que
apt list --installed | grep dhcp
a trouvé:
dhcpcd5
isc-dhcp-client
isc-dhcp-common
Je viens de désactiver dhcpcd5
et cela a été corrigé en utilisant:
Sudo apt-get remove dhcpcd5
fait un redémarrage et tout était dandy
Le meilleur moyen de désactiver tout service tel que dhcpcd consiste à utiliser les fonctions de gestion du système. Vous aurez besoin de redémarrer pour que cela prenne effet, à moins que vous n'interrompiez également le service.
Pour Jessie (qui utilise la gestion systemd
):
Sudo systemctl disable dhcpcd.service
Et pour l’ancien Wheezy (gestion System-V
):
Sudo update-rc.d dhcpcd disable
Mais si vous le désactivez, vous devez vous assurer que vous avez une configuration IP statique dans /etc/network/interfaces
, sinon vos interfaces ne recevront pas d'adresse IP.
Voici un résumé de ce que je devais faire pour Raspbian Jessie 2017-01-11:
Éditez/etc/network/interfaces et ajoutez la section d'adresse statique, supprimez les autres références à l'interface statique (eth0 dans ce cas). La ligne auto est importante sinon l'interface ne démarrera pas au démarrage:
auto eth0
iface eth0 inet static
address 192.168.44.17
netmask 255.255.255.0
gateway 192.168.44.27
Ensuite, désactivez dhcpcd et activez la mise en réseau standard:
systemctl disable dhcpcd.service
systemctl enable networking
Raspbian Jessie depuis la publication du 2017-01-11 ne semble pas utiliser le réseau de systemd