On m'a donné les fichiers d'un mini linux
, qui démarre directement dans firefox
. Cela fonctionne pour tout ce qu'il devrait faire, seulement que je n'ai pas de connexion Internet.
Nous avons 3 serveurs DNS dans le réseau, qui fonctionnent tous. Je peux aussi les cingler. Mais en essayant de ping google.de
ou wget google.de
J'ai un bad address
Erreur.
nslookup google.de
fonctionne pour une raison quelconque.
J'ai suivi le problème jusqu'à mon resolv.conf
sur le système démarré n'ayant pas le même contenu que le resolv.conf
que j'ai mis dans le .iso
fichier.
J'ai essayé de comprendre tous les facteurs qui entrent dans la création et la modification de resolv.conf
. Je ne suis pas sûr d'avoir tout compris, mais je n'ai certainement pas trouvé ma solution là-bas.
Donc, comme dernier effort, j'ai essayé de faire le resolv.conf
fichier immuable utilisant
:~# chattr +i /etc/resolv.conf
Lors de la reconstruction et du redémarrage à ma grande surprise, mon fichier a été renommé en resolv.conf~
et à sa place était le même fichier standard qui me hante.
Le contenu du fichier me fait croire qu'il obtient les informations du réseau lui-même. Lors du démarrage de .iso
dans Virtualbox sans accès à Internet, mon fichier est conservé tel quel.
J'ai essayé de changer /etc/dhcp/dhclient.conf
pour ne pas obtenir les informations du net, en supprimant domain-name-server
et domain-name-search
à partir de la partie request
du fichier.
Cela n'a pas fonctionné malheureusement.
Je n'ai pas le NetworkManager installé. L'iso est basé sur Ubuntu 14.04.
Il manque probablement des informations vitales. Je suis heureux de vous le fournir.
MISE À JOUR:
Je pense avoir trouvé le fichier qui efface resolv.conf
.
Il semble que /usr/share/udhcpc/default.script
#!/bin/sh
# udhcpc script edited by Tim Riker <[email protected]>
[ -z "$1" ] && echo "Error: should be called from udhcpc" && exit 1
RESOLV_CONF="/etc/resolv.conf"
[ - n "$broadcast" ] && BROADCAST="broadcast $broadcast"
[ -n "$subnet" ] && NETMASK="netmask $subnet"
case "$1" in
deconfig)
/bin/ifconfig $interface 0.0.0.0
for i in /etc/ipdown.d/*; do
[ -e $i ] && . $i $interface
done
;;
renew|bound)
/bin/ifconfig $interface $ip $BROADCAST $NETMASK
if [ -n "$router" ] ; then
echo "deleting routers"
while route del default gw 0.0.0.0 dev $interface ; do
:
done
metric=0
for i in $router ; do
route add default gw $i dev $interface metric $((metric++))
done
fi
echo -n > $RESOLV_CONF # Start ----------------
[ -n "$domain" ] && echo search $domain >> $RESOLV_CONF
for i in $dns ; do
echo adding dns $i
echo nameserver $i >> $RESOLV_CONF
done
for i in /etc/ipup.d/*; do
[ -e $i ] && . $i $interface $ip $dns
done # End ------------------
;;
esac
exit 0
Cela fait partie du programme udhcpc
. Un petit client DHCP, qui fait partie de busybox
Enquêtera plus avant.
MISE À JOUR2 ET SOLUTION:
J'ai commenté la partie (#Start to #End), qui écrase apparemment le /etc/resolv.conf
fichier et bien sûr. C'était le coupable. Un script obscur a donc causé tous ces ennuis.
J'ai changé la question pour refléter ce qui devait réellement être connu pour résoudre mon problème, il serait donc plus facile de trouver pour les personnes ayant le même problème et donc je pourrais accepter une réponse.
Merci pour l'aide ici à comprendre les choses.
1) Vous ne devez pas mettre à jour manuellement votre resolv.conf
, car toutes les modifications seront écrasées par les données fournies par votre serveur DHCP local. Si vous souhaitez qu'il soit statique, exécutez Sudo dpkg-reconfigure resolvconf
et répondez "non" aux mises à jour dynamiques. Si vous souhaitez y ajouter de nouvelles entrées, modifiez /etc/resolvconf/resolv.conf.d/base
et courir Sudo resolvconf -u
, il ajoutera vos entrées et celles du serveur DHCP.
2) Essayez de modifier vos/etc/network/interfaces et ajoutez-y vos entrées, comme
auto eth0
iface eth0 inet dhcp
dns-search google.com
dns-nameservers dnsserverip
puis redémarrez /etc/init.d/networking restart
ou Sudo ifdown -a
et Sudo ifup -a
3) Votre système utilise dhcp qui est un très petit programme client DHCP. Le client udhcp négocie un bail avec le serveur DHCP et notifie un ensemble de scripts lorsqu'un bail est obtenu ou perdu. Vous pouvez en lire plus sur son utilisation ici ou simplement éditer ce script (comme vous l'avez fait).
Ubuntu 16.04
Si les interfaces réseau de votre instance de serveur sont contrôlées par DHCP, le programme dhclient écrasera votre /etc/resolv.conf
fichier à chaque redémarrage du service réseau.
Vous pouvez résoudre le problème en modifiant le /etc/dhcp/dhclient.conf
fichier et en ajoutant des instructions "remplacent" pour nom-domaine, recherche-domaine et serveurs-nom-domaine comme suit:
supersede domain-name "local.com";
supersede domain-search "local.com";
supersede domain-name-servers 192.168.56.103;
Dans ce cas particulier, le serveur de noms est situé à "192.168.56.103" et le nom de domaine est "local.com"
Notez que chaque ligne se termine par un point-virgule et que le nom de domaine est placé entre guillemets.
J'ai rencontré ça aussi. Commenter domain-name-server
Ne l'a pas corrigé non plus.
De plus, je n'utilise pas resolvconf
, simplement /etc/resolv.conf
.
Je n'ai pas essayé d'utiliser chattr +i
Pour verrouiller resolv.conf
Car il semble trop hacky. De plus, je veux que Puppet puisse modifier resolv.conf
Si nécessaire.
La meilleure solution que j'ai trouvée remplace le comportement par défaut de dhclient
en utilisant ses hooks documentés.
Créez un nouveau fichier dans /etc/dhcp/dhclient-enter-hooks.d/nodnsupdate
Avec le contenu suivant:
#!/bin/sh
make_resolv_conf() {
:
}
Rendez ensuite le fichier exécutable:
chmod +x /etc/dhcp/dhclient-enter-hooks.d/nodnsupdate
Maintenant, lorsque dhclient s'exécute - soit au redémarrage, soit lorsque vous exécutez manuellement Sudo ifdown -a ; Sudo ifup -a
- il charge ce script nodnsupdate
. Ce script remplace une fonction interne appelée make_resolv_conf()
qui écraserait normalement resolv.conf
Et ne fait rien.
Cela a fonctionné pour moi sur Ubuntu 12.04.
Pour effectuer les modifications liées au DNS dans resolv.conf
permanent, vous devez modifier le fichier de configuration DHCP nommé dhclient.conf
. Vous pouvez trouver le fichier dans /etc/dhcp/dhclient.conf
.
Ouvrez le fichier pour le modifier (n'oubliez pas d'utiliser Sudo). Vous verrez des lignes comme celles-ci:
#supersede domain-name "fugue.com home.vix.com";
#prepend domain-name-servers 127.0.0.1;
Supprimez le "#" précédent et utilisez les serveurs de nom de domaine et/ou de nom de domaine souhaités. Sauvegarde le. Maintenant, les modifications liées au DNS seront permanentes.
Les crédits vont à: https://itsfoss.com/resolvconf-permanent-ubuntu/
allez dans ce répertoire:
cd /etc/resolvconf/resolv.conf.d
Ouvrez le fichier nommé head et insérez-y les adresses IP ou les noms DNS. Ouvrez le fichier nommé tail et placez-y le domaine. Redémarrez.
Sur Ubuntu 18.04 à l'aide de NetworkManager. Vous devez supprimer le fichier "resolv.conf" et laisser NetworkManager en générer un pour vous.
Pour supprimer le fichier dans le type de terminal Sudo rm -f /etc/resolv.conf
; cela supprimera le fichier pour vous.
Redémarrez le système et NetworkManager générera un fichier resolv.conf pour vous.
Utilisez la commande ci-dessous pour empêcher le resolv.conf
ou tout fichier écrasé après le redémarrage:
chattr -V +i filename e.g chattr -V +i /etc/resolv.conf
Pour annuler la modification, utilisez la commande ci-dessous:
chattr -i filename - to re-enable insert to the file
chattr
(Changer l'attribut) est un utilitaire Linux en ligne de commande qui est utilisé pour définir/annuler certains attributs d'un fichier dans le système Linux pour sécuriser la suppression accidentelle ou la modification de fichiers et dossiers importants, même si vous êtes connecté en tant que un utilisateur root.
Dans les machines virtuelles Azure /etc/resolv.conf
n'est pas directement modifiable.
Essayez d'ajouter les entrées DNS dans vos fichiers de configuration réseau /etc/sysconfig/network-scripts/ifcfg-eth0
et ainsi de suite comme ci-dessous:
DOMAIN=example.com
DNS1=10.*.*.*
DNS2=10.*.*.*
DNS3=10.*.*.*
et redémarrez le service réseau après avoir enregistré les fichiers. vous verrez que la configuration sera également ajoutée dans le fichier resol.conf également.