Après avoir mis /etc/network/interfaces
à jour avec quelque chose de très similaire à ci-dessous, comment puis-je mettre /etc/resolv.conf
à jour? J'ai essayé (en tant que root) resolver -u
, service networking restart
mais ils n'ont pas fonctionné. J'ai également corrigé le lien symbolique resolv.conf
et réessayé resolver -u
. Finalement, frustré, j'ai redémarré, ce qui a résolu le problème en reconstruisant /etc/resolv.conf
.
Ubuntu 12.04, serveur 64 bits, tous les derniers correctifs installés.
Exemple /etc/network/interfaces
:
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
server
dns
resolv.conf
nslntmnx
la source
la source
Réponses:
service networking restart
n’est pas toujours un moyen fiable de réduire toutes les interfaces.La
resolvconf -u
commande ne metresolv.conf
à jour que depuis la propre base de données de resolvconf. Vous devez mettre à jour la base de données.Pour mettre à jour la base de données, vous devez appeler resolvconf avec l' option
-a
ou-d
. Cela se produit dans les coulisses lorsque vous exécutez ifup ou ifdown. Ainsi, normalement, comme pour toute autre modification apportée à/etc/network/interfaces
, pour activer les modifications des options dns- *, vous devez désactiver l'interface en question et la réactiver. Ou vous pouvez redémarrer.Si vous souhaitez modifier une interface sans la supprimer (peut-être parce que vous administrez la machine à distance et que vous êtes connecté via cette interface, natch), vous pouvez obtenir le même résultat en exécutant resolvconf directement à partir de la ligne de commande. Cela nécessite un peu plus de connaissance de la sémantique de resolvconf. Supposons que la strophe / e / n / i pertinente est
où FFFF est une famille d'adresses ("inet" ou "inet6").
Pour activer ces options dns- *, exécutez resolvconf comme suit (oui, avec des lignes nouvelles dans la chaîne acheminée vers resolvconf).
Pour la strophe donnée dans la question, ce serait la suivante.
Consultez la page de manuel resolvconf (8) et le fichier README du paquet resolvconf (/usr/share/doc/resolvconf/README.gz) pour plus d'informations.
la source
resolvconf
:)/etc/network/interfaces
, vous pouvez le faire:ifdown eth0 && ifup eth0
; cela fonctionne même dans une session ssh distante.Bien que la page de manuel ne soit pas installée par défaut, elle est documentée via l'option de mise à jour des scripts, il suffit d'exécuter:
la source
Pour ceux d'entre vous qui gèrent vos serveurs à distance, vous pouvez:
dns-nameservers
ligne dans/etc/network/interfaces
# ifdown eth01; ifup eth01
Notez que cela doit être sur une ligne divisée avec; (le séparateur de ligne de commande linux). Vous ne devriez même pas perdre votre connexion actuelle. L'exception fait une faute de frappe dans le fichier d'interfaces. Si cela se produit
ifup
échouera et vous devrez avoir un accès physique ou une autreethxx
connexion.la source
service resolvconf restart
va régénérer le/etc/resolv.conf
fichier sans grande difficulté.la source
Failed to restart resolvconf.service: Unit resolvconf.service not found.
/etc/resolv.conf
sur le serveur ubuntu 14.04Cette réponse est similaire à celle ci-dessus, mais utilise l'exemple de configuration des questions pour répondre à la question. De plus, cela explique pourquoi les deux commandes sont nécessaires.
Modifier
/etc/network/interfaces
:Ces modifications ne seront effectuées que si vous redémarrez ou rechargez le fichier de configuration:
Pour mettre à jour le fichier d'interface en direct, il est nécessaire d'exécuter la commande suivante:
Cela permet une mise à jour de l'interface sans redémarrage ni rechargement.
Toutefois, les modifications de commande ci-dessus seront perdues après un redémarrage si les modifications
/etc/network/interfaces
ne sont pas apportées.A propos, la dernière réponse de BDenis dans cette liste fonctionne réellement à la place de la dernière commande en analysant le
/etc/network/interfaces
fichier et en canalisant ces lignes dans la commande.sudo resolvconf -a eth0
C'est en fait la moitié de la réponse et un très bon exemple d'analyse inline sed. Si vous voulez voir comment cela fonctionne, exécutez simplement la première partie de la commande et regardez-la analyser le/etc/network/interfaces
fichier et extraire toutes les informations nécessaires pour exécuter lasudo resolvconf -a eth0
commande:Notez que cela produirait le même résultat que la commande:
Si le
/etc/network/interfaces
fichier est configuré avec ces informations:la source
/etc/network/interfaces
n’est donc pas une option valide dans ce cas. (Ubuntu 14.04)Réponse simple:
Installez simplement resolvconf.
apt install resolvconf
Après cela,
ifup eth0
met à jour le DNS dansetc/resolv.conf
, en fonction de ladns-nameservers
ligne/etc/network/interfaces
.la source
Le 18.04, fonctionne comme suit de manière fiable (exécuté en tant que root):
Important: Assurez-vous que le paquet est
resolvconf
installé.Cela ne semble pas être le cas par défaut, et sans elle, certains changements (!)
/etc/network/interfaces
Sont ignorés en silence (par exempledns-*
).la source
Cela a fonctionné pour moi:
Ajuste en accord.
la source
Sur la version de bureau d'Ubuntu 18.04, où il n'y a pas de service
networking
etresolvconf
n'est pas installé par défaut, j'ai réussi à régénérerresolv.conf
en redémarrantnetwork-manager
:la source
Aussi, vous pouvez essayer cette commande:
la source
dns-nameserver IP1 IP2
. La ligne doit alors être répétéeresolv.conf
, mais ne l’est pas./etc/network/interfaces
utilisedns-nameservers
(notez les
à la fin) tout enresolvconf
utilisantnameserver
. La commande ne s'en occupe pas. Et même si tout était correct, le pipelinesed | grep | sed
ne serait certainement pas le moyen le plus efficace.