Pour les utilisateurs DHCP, il peut arriver que vous deviez modifier /etc/resolv.conf
pour utiliser d'autres serveurs de noms. Ensuite, après un certain temps (ou après un redémarrage du système), vous découvrez que vos modifications /etc/resolv.conf
ont été annulées.
Ce tutoriel montre trois méthodes pour empêcher DHCP de changer le /etc/resolv.conf
sur Debian ou Ubuntu.
Méthode 1: modifier les paramètres d'interface en statique
- Sur un cloud vps, je ne suggère pas d'utiliser cette méthode.
- Si vous utilisez cette méthode, vous pouvez constater que le processus de redémarrage (jusqu'à ce que vous puissiez vous connecter via ssh) prend plus de temps.
Tout d'abord, nous devons obtenir l' IP / le masque de réseau / la passerelle du serveur. Exécutez la commande suivante.
ifconfig | grep "inet addr" | head -n 1 | awk '{print $2, $4}'
Cela fournit l'IP du serveur et le masque de réseau. En regardant l'exemple de sortie ...
addr:1.2.3.4 Mask:255.255.254.0
... l'adresse IP du serveur est 1.2.3.4 et le masque est 255.255.254.0 .
Pour obtenir l'adresse de passerelle, exécutez la commande suivante.
netstat -rn | grep '^0.0.0.0' | awk '{print $2}'
Dans cet exemple, j'utiliserai l'adresse de passerelle 1.2.3.1 .
Maintenant que nous avons l' IP / netmask / gateway , éditez /etc/network/interfaces
.
vim /etc/network/interfaces
Apportez les modifications suivantes:
# Comment out this line
# iface eth0 inet dhcp
# Add these contents
iface eth0 inet static
address 1.2.3.4
mask 255.255.254.0
gateway 1.2.3.1
N'oubliez pas que vous devez remplacer ces valeurs par l' IP / masque de réseau / passerelle approprié du serveur.
Enregistrez et quittez, puis redémarrez.
Méthode 2: protéger en écriture vos serveurs de noms
Modifiez vos serveurs de noms en les modifiant /etc/resolv.conf
. Une fois vos modifications effectuées, protégez ce fichier en écriture.
chattr +i /etc/resolv.conf
L' +i
option (attribut) d'écriture protège le /etc/resolv.conf
fichier sous Linux afin que personne ne puisse le modifier - pas même l'utilisateur root.
Si vous devez supprimer l'attribut de protection en écriture, utilisez la commande suivante.
chattr -i /etc/resolv.conf
Méthode 3: utiliser des crochets DHCP
C'est la méthode que je recommande le plus.
Modifier /etc/dhcp/dhclient-enter-hooks.d/nodnsupdate
.
vim /etc/dhcp/dhclient-enter-hooks.d/nodnsupdate
Apportez les modifications suivantes:
#!/bin/sh
make_resolv_conf(){
:
}
Sauvegarder et quitter.
Mettez à jour les autorisations sur le nodnsupdate
fichier.
chmod +x /etc/dhcp/dhclient-enter-hooks.d/nodnsupdate
Redémarrez votre serveur. Vous pouvez désormais mettre à jour les serveurs de noms en les modifiant /etc/resolv.conf
sans vous soucier de la restauration.