Comment configurer mon DNS lorsque resolv.conf est écrasé?

La plupart des informations que je vois en ligne indiquent quil faut éditer /etc/resolv.conf, mais toutes les modifications que jy apporte sont simplement annulées .

$ cat /etc/resolv.conf # Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8) # DO NOT EDIT THIS FILE BY HAND -- # YOUR CHANGES WILL BE OVERWRITTEN nameserver 127.0.1.1 

Il semble que 127.0.1.1 soit une instance locale de dnsmasq. La documentation dnsmasq dit de modifier /etc/resolv.conf. Jai essayé de mettre des serveurs de noms personnalisés dans /etc/resolv.conf.d/base, mais les changements ne sont pas apparus dans /etc/resolv.conf après avoir exécuté sudo resolvconf -u.

Pour info, je ne veux pas changer le DNS par connexion, je veux définir les paramètres DNS par défaut à utiliser pour toutes les connexions, sauf indication contraire.

MISE À JOUR:

Jai moi-même répondu à cette question: https://unix.stackexchange.com/a/163506/67024

Je pense que cest la meilleure solution depuis:

  1. Cela fonctionne.
  2. Cela nécessite le moins de modifications et
  3. Cela fonctionne toujours en conjonction avec le cache DNS de dnsmasq, plutôt que de le contourner.

Commentaires

  • Mieux vaut répondre à votre question au lieu de mettre à jour votre question je pense … sera plus facile de trouver la bonne réponse que vous avez donnée à votre problème
  • Il semble que la plupart des réponses soient orientées Ubuntu et trop compliquées. Une solution universelle pour les utilisateurs de NetworkManager consiste simplement à ajouter dns=none dans /etc/NetworkManager/NetworkManager.conf (voir les détails dans ma réponse ci-dessous).
  • Je pense que cette réponse clarifie pourquoi le resol.conf est écrasé, alors vous savez comment le configurer.

Réponse

Je crois que si vous voulez remplacer le serveur de noms DNS, vous ajoutez simplement une ligne similaire à celle-ci dans votre base fichier sous resolv.conf.d.

Exemple

$ sudo vim /etc/resolvconf/resolv.conf.d/base 

Ensuite, mettez votre liste de serveurs de noms comme donc:

nameserver 8.8.8.8 nameserver 8.8.4.4 

Enfin, mettez à jour resolvconf:

$ sudo resolvconf -u 

Si vous regardez la page de manuel de resolvconf, elle décrit les différents fichiers sous /etc/resolvconf/resolv.conf.d/.

 /etc/resolvconf/resolv.conf.d/base File containing basic resolver information. The lines in this file are included in the resolver configuration file even when no interfaces are configured. /etc/resolvconf/resolv.conf.d/head File to be prepended to the dynamically generated resolver configuration file. Normally this is just a comment line. /etc/resolvconf/resolv.conf.d/tail File to be appended to the dynamically generated resolver configuration file. To append nothing, make this an empty file. This file is a good place to put a resolver options line if one is needed, e.g., options inet6 

Même sil y a « un avertissement en haut du fichier head:

cet avertissement est là pour que lorsque ces fichiers sont construits, lavertissement finira par se frayer un chemin dans le fichier resolv.conf résultant indiquant que ces fichiers seront être utilisé pour faire. Vous auriez donc pu tout aussi facilement ajouter les lignes nameserver décrites ci-dessus pour le fichier base, au head également.

Références

Commentaires

  • Ubuntu 14.04 – lorsque jai mis les serveurs de noms dans base et exécutez resolvconf -u, les serveurs de noms étaient pas mis dans resolv.conf – quand jai mis les serveurs de noms dans head, ils étaient
  • Ubuntu 14.04 – Jai également dû commenter configuration définie dans /run/resolvconf/interface/NetworkManager
  • type nslookup google.com et la première adresse IP de la liste doit être votre nouveau serveur de noms, sinon , vous lavez mal fait
  • Ubuntu 16.04: fonctionnait si ajouté à /etc/resolvconf/resolv.conf.d/head uniquement, pas avec base. Confirmé avec nslookup google.com.
  • Au départ, vous devez avoir resolvconf installé. Vous pouvez linstaller en faisant sudo apt-get install resolvconf.

Answer

Je suis également intéressé par cette question et jai essayé la solution proposée @sim.

Pour la tester, jai mis

nameserver 8.8.8.8 

dans /etc/resolvconf/resolv.conf.d/base et

nameserver 8.8.4.4 

in /etc/resolvconf/resolv.conf.d/head

Ensuite, jai redémarré le réseau avec

sudo service network-manager restart 

Le résultat est que /etc/resolv.conf ressemble à

# Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8) # DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN nameserver 8.8.4.4 nameserver 127.0.1.1 

et nm-tool indique que les dnsserver sont

DNS: 208.67.222.222 DNS: 208.67.220.220 

qui sont ceux fournis par mon routeur. Par contre creuser une adresse indique que

;; Query time: 28 msec ;; SERVER: 8.8.4.4#53(8.8.4.4) 

Si jai raison, je conclus de tout cela que

  1. seulement la partie « head » est lue par resolvonf: la partie « base » est en quelque sorte contrôlée par dnsmasq
  2. le dnsserver est en fait forcé à 8.8.4.4 quel que soit le serveur fourni par dhcp, MAIS vous perdez la mise en cache fournie par dnsmasq, puisque la requête est toujours envoyée vers 8.8.4.4
  3. dnsmasq utilise encore UNIQUEMENT le serveur dnsserver fourni par dhcp.

Dans lensemble, cela fonctionne mais je ne pensez pas que cest le résultat attendu demandé.Une solution plus proche je pense est la suivante. Modifiez

sudo vim /etc/dhcp/dhclient.conf 

puis ajoutez

supersede domain-name-servers 8.8.8.8; 

Le résultat est le suivant: resolv.conf contient seulement 127.0.0.1, ce qui signifie que le cache dnsmasq est appelé et nm-tool dit

DNS: 8.8.8.8 

ce qui signifie que si le nom recherché nest pas dans le cache , alors il est demandé en 8.8.8.8 et non sur le serveur fourni par dhcp.

Une autre option (peut-être meilleure) est dutiliser « prepend » au lieu de « supersede »: de cette façon, si le nom nest pas résolu par 8.8.8.8, alors la requête revient sur lautre serveur. En fait, nm-tool dit

DNS: 8.8.8.8 DNS: 208.67.222.222 DNS: 208.67.220.220 

Commentaires

  • Une bien meilleure réponse que le piratage NS configs. Surtout loption de préfixer un serveur devant ceux fournis par DHCP. Cela semble être l’équilibre parfait pour résoudre le problème, sans en créer de nouveaux!
  • Il est ‘ de noter que nm-tool a été remplacé par nmcli

Réponse

Jai découvert que vous pouvez changer les serveurs de noms utilisés par dnsmasq en ajoutant les lignes suivantes à /etc/dnsmasq.conf:

server=8.8.8.8 server=8.8.4.4 

Je navais pas de /etc/dnsmasq.conf cependant, car il est installé par le paquet dnsmasq, mais Ubuntu nest fourni quavec dnsmasq-base. Jai couru sudo apt-get install dnsmasq, puis modifié /etc/dnsmasq.conf, puis sudo service dnsmasq restart et sudo service network-manager restart.

Jai exécuté sudo tail -n 200 /var/log/syslog pour vérifier mon journal système et vérifier que dnsmasq utilisait le nameservers que jai spécifiés:

Oct 21 23:00:54 mylaptop dnsmasq[8611]: using nameserver 8.8.8.8#53 Oct 21 23:00:54 mylaptop dnsmasq[8611]: using nameserver 8.8.4.4#53 

Commentaires

  • Il y a une raison pour laquelle il est marqué comme le meilleur réponse … parce que cest en effet! Merci beaucoup! Jajouterais quaprès toutes les étapes que vous avez mentionnées, un redémarrage du réseau peut être nécessaire pour que tout fonctionne correctement (cétait pour moi …. sudo service network-manager restart)
  • Sur le serveur Ubuntu 14.04, environ la moitié du temps, un démarrage à froid nentraînerait aucune connectivité Internet à laide dune URL, mais une adresse IP fonctionnerait. Jai passé beaucoup de temps à essayer de le réparer en vain, jai abandonné pendant des mois, puis jai trouvé cette solution. Moi aussi, je pense que cest la meilleure réponse.
  • Il est ‘ curieux que dnsmasq doive être installé. Cela a en effet corrigé mon DNS dans une situation normale, mais cela a totalement cassé ma configuration VPN (la connexion VPN échoue maintenant …)
  • il ny a pas de fichier de ce type sur Centos
  • ubuntu 16: les modifications de la procédure avec dnsmasq ne sont pas propagées dans /etc/resolv.conf. La conséquence est que nslookup utilise toujours son hôte local 127.0.0.1 défini à lorigine. Bien que je puisse confirmer vos syslogs mentionnés.

Réponse

Pour les situations IP statiques, le Guide du serveur Ubuntu dit: changez le fichier / etc / network / interfaces, qui peut ressembler à ceci:

iface eth0 inet static address 192.168.3.3 netmask 255.255.255.0 gateway 192.168.3.1 dns-search example.com dns-nameservers 192.168.3.45 192.168.8.10 

Vous changez les IP 192.168.3.45 192.168.8.10 pour celles que vous voulez , comme 8.8.8.8

https://help.ubuntu.com/14.04/serverguide/serverguide.pdf Page 38

Commentaires

  • Cela semble certainement correct, mais comment puis-je maintenant régénérer resolv.conf?!
  • @JoelBerger ifdown eth0; ifup eth0.
  • pas de / etc / network / interfaces sur Centos

Réponse

  1. Recherchez « Connexion réseau »

  2. Ouvrez-le

    saisissez la description de limage ici

  3. Ensuite, sélectionnez WiFi ou Ethernet, ou ce que vous utilisez, et cliquez sur modifier. Vous obtiendrez ceci:

    entrez la description de limage ici

  4. Sélectionnez ipv4 dans les onglets

  5. Sélectionnez les adresses uniquement dans la méthode

  6. Entrez votre nom DNS ci-dessous et enregistrez-le

  7. Vous avez terminé

Commentaires

  • I ‘ Je dois le faire pour chaque connexion réseau. Dans le passé, vous pouviez changer la valeur par défaut pour toutes les connexions, ce que je cherchais à faire ici.
  • Je taime! ce paramètre dinterface utilisateur ma sauvé le cul de sudo et vim mess: ‘ (
  • Utilisation de Mint (sur Ubuntu 14.04) – mais vu cela aussi avec KDE – pour certains raison, la configuration des serveurs DNS dans le GUI Network Manager naffecte pas ‘ les paramètres DNS utilisés dans un terminal
  • Meilleure réponse à mon avis. Sur Ubuntu 14.04, jai 2 externes Adresses IP pour DNS qui ne reconnaîtraient pas ‘ les clients de mon réseau domestique. Laisser la méthode sur ‘ Automatique (DHCP) ‘ pour la connexion filaire ajouté ladresse IP de mon routeur ‘ à la liste existante.Pour la connexion sans fil via wlan0, cela na ‘ t fonctionner, mais la méthode sur ‘ Adresses automatiques (DHCP) uniquement ‘ a remplacé les adresses externes par ladresse IP de mon routeur et cela a également fonctionné. Appliquez les modifications avec sudo service network-manager restart, attendez un peu, vérifiez avec nmcli d list | grep 'DNS\|IP-IFACE'. Et envoyez un ping à votre client interne par son nom.
  • cest la bonne réponse

Réponse

Une solution de contournement rapide et sale qui na pas encore été mentionnée consiste à définir lindicateur immuable sur le fichier resolv.conf juste après sa modification.

$ sudo nano /etc/resolv.conf 

Ajoutez ceci et enregistrez:

nameserver 8.8.8.8 

Puis:

$ sudo chattr +i /etc/resolv.conf 

Cela devrait faire laffaire. Je le fais aussi sur mon système.

Commentaires

  • Chaque fois que votre solution implique chattr, elle ‘ nest pas vraiment une solution.
  • cest ce que je fais sur les systèmes où je dois changer temporairement le DNS pour une raison quelconque et ne pas ‘ t veux modifier la configuration. En tant que solution permanente, je ne le recommanderais ‘.
  •  » solution de contournement rapide et sale  »
  • Ce nest pas ‘ t sale. Programmes qui détruisent la configuration locale parce quils pensent quils savent mieux sont sales.

Réponse

Mon problème était un peu différent , Je voulais remplacer les serveurs DNS de mes routeurs. Jai trouvé ce lien dUbuntu: https://wiki.ubuntu.com/OverrideDNSServers

Il dit: Si vous souhaitez remplacer les paramètres DNS qui vous sont fournis par un serveur DHCP, ouvrez

/etc/dhcp3/dhclient.conf 

et ajoutez la ligne suivante:

supersede domain-name-servers <dns_ip_address1>,<dns_ip_address2>; 

remplacement des éléments <dns_ip_address*> par le contenu approprié.

Commentaires

  • Cest la réponse qui a résolu mon problème.
  • Parfait. En ajoutant simplement que vous devez redémarrer le réseau du service sudo pour activer les modifications.
  • Et si nous ne ‘ que dhcp3 dossier? Jai Xubuntu 17.10, a-t-il été déplacé vers /etc/dhcp simplement?
  • @PlasmaBinturong dans mon cas, cétait /etc/dhcp/dhclient.conf sur dernières versions de Debian et Ubuntu.

Réponse

Essayez dajouter dns-nameservers XXX.XXX.XXX.X dans votre fichier /etc/networking/interfaces.

Commentaires

  • Laissez un commentaire lorsque vous votez contre, sil vous plaît. Cest la méthode donnée dans le manuel , page 38.
  • Le manuel non mentionné montre toutes les adresses IP sur une seule ligne. Cette réponse semble suggérer dajouter une ligne. Et pourquoi le dernier numéro na-t-il quun X de large? Je pense que cest surtout la courte rédaction extrêmement informelle et incertaine de style chat qui a recueilli les votes négatifs, @Zook.

Réponse

Il me manque peut-être quelque chose, mais selon les instructions de configuration à https://help.ubuntu.com/14.04/serverguide/network-configuration.html tout ce que vous faites est mettre à jour ce qui suit. Je nutilise pas de proxy – juste une machine derrière un pare-feu et un DNS local (lexemple montre Googles, mais définissez-le sur ce dont vous avez besoin).

nano /etc/network/interfaces 

Par défaut:

# This file... # and how to activate... # The loopback... auto local iface lo inet loopback # The primary network interface auto eth0 iface eth0 inet dhcp 

MISE À JOUR:

# This file... # and how to activate... # The loopback... auto local iface lo inet loopback # The primary network interface #iface eth0 inet dhcp iface eth0 inet static address x.x.x.x netmask 255.255.255.0 gateway x.x.x.x #nameservers # you may not need dns-search # I use it because I"m running this on a Windows network # so its useful to have # dns-search x.y dns-nameservers 4.4.4.4 8.8.8.8 

Redémarrez, si vous le pouvez.

Réponse

Certaines des réponses ici fonctionnent très bien. Cependant, je nétais pas satisfait du fait que je devais parcourir manuellement fichiers de configuration juste pour définir le « bon » DNS que je alre ady je reçois plus de DHCP avec NetworkManager.

Jai creusé un peu et jai remarqué que le fichier /etc/resolv.conf est en fait un lien et il « pointe vers /run/systemd/resolve/stub-resolv.conf. Après quelques essais, il semble que le répertoire /run/systemd/resolve/ contient un autre fichier nommé resolv.conf qui contient déjà les paramètres que vous « avez reçus via DHCP. Ainsi, au lieu davoir à écraser / créer manuellement les fichiers de configuration dans /etc/, vous pouvez simplement relier /etc/resolv.conf pour pointer vers le /run/systemd/resolve/resolv.conf et tout devrait bien se passer:

# sudo ln -sf /run/systemd/resolve/resolv.conf /etc/resolv.conf 

Vous devriez maintenant pouvoir modifier les paramètres même à partir du réseau Manager dans Gnome. 🙂

Je ne sais pas si cela fonctionnera sur les anciens ubuntu mais cest le cas sur Ubuntu 17.10.

Commentaires

  • lorsque nous exécutons systemd-resolve --flush-cache le fichier lié dorigine est apparemment coupé, la réponse ci-dessus restaure la fonctionnalité dorigine

Réponse

MODIFIER LE 6 MAI, 2016

Jai écrit un script pour mettre à jour tous les paramètres des connexions système dans le répertoire /etc/Network-Manager/system-connections/. Le Linterface graphique que vous utilisez pour modifier les connexions individuelles, édite un fichier particulier dans ce répertoire. Le script met à jour tous les fichiers – il recherche simplement ceux qui nont pas de DNS défini avec grep et le définit avec awk.

Étant donné que laccès à ces fichiers nécessite un accès sudo, exécutez ce script avec sudo puis – redémarrez le gestionnaire de réseau

#!/bin/bash # Author: Serg Kolo # Date: May 6, 2015 # Description: this script checks all settings for connections in # /etc/NetworkManager/system-connections/ , and if there"s no custom # dns set , this script sets it; # NOTE: run sudo service network-manager restart after running this script set -x for file in /etc/NetworkManager/system-connections/* ; do grep "dns=208.67.220.220;" "$file" || ( awk "{print;if ($1=="[ipv4]"){getline; print "method=auto\ndns=208.67.220. 220;\nignore-auto-dns=true"}}" "$file" > .tmpfile && ( cat .tmpfile > "$file") ) done 

Script en action:

entrez la description de limage ici

ORIGINAL POST Certains utilisateurs ont souligné ici que le DNS est en quelque sorte contrôlé par dnsmasq. Cest en effet vrai. Jai été confronté à un problème un peu plus petit, où peu importe comment jai changé head ou body dans /etc/resolvconf/resolv.conf.d, mon ordinateur ne pouvait pas réellement accéder en interne par nom de domaine – ne fonctionnant quavec des adresses IP.

Ce que jai fait, cest de modifier le fichier /etc/NetworkManager/NetworkManager.conf. À lorigine, il disait dns=dnsmasq mais je lai changé en: dns=208.67.222.222. Bien que de cette façon, nm-tool ne mentionne pas 208.67.222.222, jai quand même pu utiliser des noms de domaine, pas seulement des adresses IP.

Voici comment NetworkManager.conf le fichier ressemble maintenant à:

[main] plugins=ifupdown,keyfile,ofono #dns=dnsmasq dns=208.67.222.222 [ifupdown] managed=false 

REMARQUE: Pour plus de détails sur mon problème et cette solution, reportez-vous à mon message sur askubuntu.com .

MISE À JOUR # 1

De retour de luniversité aujourdhui, jai découvert que je ne pouvais pas me connecter à mon réseau Wi-Fi domestique. Jai lu un peu sur man NetworkManager.conf et il savère que dns= in [main] est en fait une ligne pour les plug-ins, donc la ligne dns=dnsmasq est en train dajouter le plugin dnsmasq au NetworkManager, apparemment.

Ma solution fonctionnait donc toujours, mais pas comme je my attendais. Voici un extrait de la page de manuel:

dns=plugin1,plugin2, ... List DNS plugin names separated by ",". 

Les plugins DNS sont utilisés pour fournir la fonctionnalité de serveur de noms de cache local (ce qui accélère les requêtes DNS) et pour pousser les données DNS vers les applications qui lutilisent.

Donc en définissant dns=208.67.222.222 Jai peut-être, en gros, empêché NetworkManager dutiliser ce plugin, qui autrement utiliserait le serveur DNS local (qui apparemment ne fonctionne pas).

Réponse

Il existe deux méthodes

Méthode 1

Le serveur DNS à utiliser peut être modifié en mettant à jour le fichier head sous resolv.conf.d

$ echo "nameserver 1.1.1.1" | sudo tee /etc/resolvconf/resolv.conf.d/base 

puis exécutez

$ sudo resolvconf -u 

Ce qui précède va générer un fichier resolv.conf générique dans le répertoire /etc. Toutes vos demandes de résolution seront envoyées au serveur de noms ci-dessus. Résolu.

Cependant, cela a des implications. Lorsque vous utilisez resolvconf pour interroger directement 1.1.1.1 pour les résolutions dadresses, la puissance de la mise en cache fournie par dnsmasq a disparu. Chaque requête ira à la 1.1.1.1

Méthode 2

Si vous ne voulez pas que ci-dessus se produise et utilisez dnsmasq pour les résolutions DNS, reportez-vous à cette réponse. La réponse est simplement décrite ici.

Ajoutez le contenu suivant dans le fichier /etc/dnsmasq.conf .

server = 1.1.1.1

Ensuite, redémarrez le service dnsmasq

$ sudo systemctl restart dnsmasq.service 

Les choses fonctionneront bien. Résolu.

Réponse

La manière simple de changer de DNS:

$ sudo nano /etc/network/interfaces 

Si des problèmes surviennent, installez nano:

$ sudo apt-get install nano -y 

then ..

  1. trouver ceci: dns-nameservers
  2. si vous ne le trouvez pas, saisissez-le simplement ici
  3. Jai fait le mien comme ceci: dns-nameservers 199.85.126.10 199.85.127.10

Jespère que cest la meilleure façon, je lai fait comme ça sur un VPS au fait.

Réponse

à la racine:

  1. comment dns=dnsmasq sur /etc/NetworkManager/NetworkManager.conf
  2. ajoutez supersede domain-name-servers 4.2.2.1,4.2.2.3,4.2.2.5,4.2.2.4,4.2.2.1,4.2.2.2; à la fin de /etc/dhcp/dhclient.conf
  3. sudo service network-manager restart

Ce qui suit apporte les modifications ci-dessus:

$ sudo sed -i "s/dns\x3Ddnsmasq/\x23dns\x3Ddnsmasq/" \ /etc/NetworkManager/NetworkManager.conf $ echo "supersede domain-name-servers 4.2.2.1,4.2.2.3,4.2.2.5,4.2.2.4,4.2.2.1,4.2.2.2;" | \ sudo tee --append /etc/dhcp/dhclient.conf $ sudo service network-manager restart 

Attendez 7/10 secondes pour terminer le processus de redémarrage, vérifiez votre configuration avec » nslookup nist.gov « . Fonctionne bien sur Ubuntu LTS 14.04.

Réponse

NB: Comme la plupart des réponses, celle-ci suppose lutilisation de NetworkManager . Cependant, contrairement à la plupart des autres réponses, cela ne suppose pas lutilisation de resolvconf, dhclient ou quoi que ce soit dautre – sachez quils peuvent prendre le relais, (voir mise à jour).

Compte tenu du nombre de vues de cette question, il « est assez incroyable que ce 8 caractères la solution na pas encore été publiée: selon man NetworkManager.conf,

dns: […] none: NetworkManager ne modifiera pas resolv.conf. Cela implique rc-manager non géré

Par conséquent, ajoutez

dns=none 

dans la section [main] de /etc/NetworkManager/NetworkManager.conf puis redémarrez NetworkManager et il « ne modifiera pas /etc/resolv.conf.

Notez que le paramètre rc-manager=unmanaged doit être équivalent à dns=none , et ce paramètre rc-manager=symlink avec /etc/resolv.conf comme symb Le lien olic peut être une meilleure idée (lire la page de manuel mentionnée ci-dessus).

Mise à jour:

Après que NetworkManager a cessé décraser /etc/resolv.conf, jai pensé dhcpcd remplaçait déjà /etc/resolv.conf par un fichier vide inutile au démarrage. La page de manuel de dhcpcd.conf a aidé, il suffit dajouter

nohook resolv.conf 

dans votre dhcpcd.conf (le mien est dans /etc/dhcpcd.conf).

Réponse

Que « s parce quune application installée particulière gère ce fichier. Vous pouvez soit désinstaller cette application, soit définir les options souhaitées directement via cette application.

Dans mon cas (serveur minimal Linux centos7) ayant la même situation que moi # Generated by NetworkManager en haut du fichier resolv.conf donc la meilleure façon de changer cette option était dutiliser

nmtui

. Vous pouvez modifier les serveurs de noms dans cet outil et lorsque vous modifiez les options de networkmanager à partir de cet utilitaire, ils seront automatiquement appliqués à /etc/resolv.conf après le redémarrage. Vous trouverez ici plus dinformations .

Réponse

Rien à tout sur Internet il lped me, parce que lutilitaire CLI de NordVPN a continué à écraser /etc/resolv.conf chaque fois que je me connectais et me déconnectais du VPN. Il a même dépassé chattr +i, ce qui était super ennuyeux !!

Ce qui a fonctionné pour moi était de désactiver complètement resolvconf !

Modifiez /etc/resolvconf.conf et faites-en la seule entrée:

resolv_conf=NO 

Ceci désactive spécifiquement resolvconf, ce qui signifie que votre /etc/resolv.conf ne sera jamais modifié. Alors continuez et sudo chattr +i /etc/resolv.conf pour faire bonne mesure.

Testé sur Arch Linux.

Réponse

Sur Centos 7, en utilisant NetworkManager, la solution la plus propre et la plus efficace que jai pu trouver est de créer un script NetworkManager qui utilise nmcli pour définir les valeurs que je souhaite.

Par exemple

Créez /etc/NetworkManager/dispatcher.d/mydns.sh avec les autorisations 755 et le contenu suivant:

#!/usr/bin/sh if [ $1 == "enp0s11" -a $2 == "up" ] then echo "Setting my DNS ($1 is $2)" | logger # disable default DNS nmcli device mod enp0s11 ipv4.ignore-auto-dns yes # Substitute our own DNS, in the desired order nmcli device mod enp0s11 ipv4.dns "10.0.1.101 10.0.1.1" fi 

Et pour tester, sans redémarrer:

systemctl restart NetworkManager.service cat /etc/resolv.conf 

YMMV, mais cest le seul moyen que jai trouvé qui permette à mon /etc/resolv.conf de « survivre » à un redémarrage sans être écrasé par des valeurs que je ne veux pas.

Laisser un commentaire

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