Question 1.) Désolé, il semble que vous ayez mal compris certaines choses.
dhcpcd
est un client DHCP démon, qui est normalement lancé par NetworkManager ou ifupdown
, pas directement par systemd
. C'est ce qui va gérer l'attribution de l'adresse IP pour votre wlan0
.
Vous pouvez utilisez dhcpcd
comme commencé par systemd
si vous le souhaitez, cependant, cela nécessitera de désactiver toute la logique de configuration normale de l'interface réseau (c'est-à-dire /etc/network/interfaces
doit être vide de lignes sans commentaires) de la distribution et en le remplaçant par votre propre script personnalisé si nécessaire. C'est pour des usages spéciaux seulement; si vous n'êtes pas absolument certain de devoir le faire, vous ne devriez pas.
dhcpcd
ne servira jamais d'adresses IP à d'autres hôtes. Cette partie que vous avez ajoutée à dhcpcd.conf
semble appartenir au fichier de configuration du serveur DHCP ISC démon, dhcpd
(oui, c'est juste une différence d'une lettre) à la place :
host Accountant {
hardware ethernet 10:60:4b:68:03:21;
fixed-address 192.168.2.83;
}
host Accountant1 {
hardware ethernet 00:0c:29:35:95:ed;
fixed-address 192.168.2.66;
}
host Accountant3 {
hardware ethernet 30:85:A9:1B:C4:8B;
fixed-address 192.168.2.70;
}
Mais si vous suivez le tutoriel YouTube que vous avez mentionné, vous n'avez peut-être même pas dhcpd
installé, depuis dnsmasq
est censé faire ce travail.
Autant que je sache, la syntaxe équivalente pour dnsmasq.conf
serait :
dhcp-host=10:60:4b:68:03:21,192.168.2.83,Accountant
dhcp-host=00:0c:29:35:95:ed,192.168.2.66,Accountant1
dhcp-host=30:85:A9:1B:C4:8B,192.168.2.70,Accountant3
Avis de non-responsabilité :je n'ai pas utilisé dnsmasq
, donc ceci est basé sur une simple recherche rapide sur Google de sa page de manuel.
Question 2.) Dans le tutoriel que vous avez mentionné, dnsmasq
était censé agir en tant que serveur DHCP sur eth0
. Vous n'avez rien dit à ce sujet, donc je ne sais pas s'il fonctionnait ou non. Sinon, le seul client qui obtenait toujours la même adresse IP aurait peut-être simplement recouru à un ancien bail DHCP précédemment reçu qui n'était pas encore expiré. Oui, les clients DHCP peuvent stocker un bail DHCP de manière persistante et continuer à l'utiliser si un réseau ne semble pas disposer d'un serveur DHCP fonctionnel.
Question 3.) :/etc/network/interfaces
est un fichier de configuration d'interface réseau de style Debian/Ubuntu classique. Utilisez man interfaces
pour voir la documentation à ce sujet, ou regardez ici.
Dans Debian, *Ubuntu, Raspbian etc., NetworkManager aura un plug-in qui va lire /etc/network/interfaces
mais ne veut pas écrire à elle.
Si les outils de configuration de NetworkManager comme nmcli
, nmtui
ou les outils de configuration NetworkManager basés sur l'interface graphique de votre environnement de bureau de choix sont utilisés, la configuration sera enregistrée dans des fichiers dans /etc/NetworkManager/system-connections/
répertoire à la place.
Si NetworkManager n'est pas installé, le /etc/network/interfaces
le fichier est utilisé par le ifupdown
package, qui inclut les commandes ifup
et ifdown
. Le package comprend également un script de démarrage du système qui exécutera ifup -a
au démarrage, activant toutes les interfaces réseau qui ont auto <interface name>
en /etc/network/interfaces
. Il existe également une règle udev qui exécutera ifup <interface name>
si un pilote pour une nouvelle interface réseau est chargé automatiquement et /etc/network/interfaces
a un allow-hotplug <interface name>
ligne pour cela.
J'ai trouvé la raison de cette "erreur".
dhcpcd
utilise une sorte de "noob/newbie protection", qui garantit un moyen sûr de gérer la gestion du réseau, si un "noob/newbie" essaie d'utiliser les deux dhcpcd
et /etc/interfaces
.
dhcpcd
vérifie le /etc/interfaces
avec le script shell suivant /usr/lib/dhcpcd5/dhcpcd
:
#!/bin/sh -e
DHCPCD=/sbin/dhcpcd
INTERFACES=/etc/network/interfaces
if grep -q -E "^[[:space:]]*iface[[:space:]]*.*[[:space:]]*inet[[:space:]]*(dhcp|static)" \
$INTERFACES; then
echo "Not running dhcpcd because $INTERFACES"
echo "defines some interfaces that will use a"
echo "DHCP client or static address"
exit 6
fi
exec $DHCPCD [email protected]
J'ai simplement alterné la ligne
if grep -q -E "^[[:space:]]*iface[[:space:]]*.*[[:space:]]*inet[[:space:]]*(dhcp|static)" \
en supprimant le |static
argument, pour
if grep -q -E "^[[:space:]]*iface[[:space:]]*.*[[:space:]]*inet[[:space:]]*(dhcp)" \
et ajusté la dernière ligne d'écho à :
echo "DHCP client"
PS assurez-vous d'ajouter un denyinterfaces "NAME OF YOUR STATIC INTERFACE, WHICH SHALL BE CONTROLLED ONLY BY /etc/interfaces"
, par exemple denyinterfaces eth0
à votre /etc/dhcpcd.conf
.