On m'a donné les fichiers pour 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 lorsque j'essaye ping google.de
ou wget google.de
j'obtiens une bad address
erreur.
nslookup google.de
fonctionne pour une raison quelconque.
J'ai suivi le problème jusqu'à ce que resolv.conf
le système démarré n'ait pas le même contenu que celui 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 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 rendre le resolv.conf
fichier immuable en utilisant
:~# chattr +i /etc/resolv.conf
Lors de la reconstruction et du redémarrage à ma grande surprise, mon fichier a été renommé 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 la .iso
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 sur le net, en supprimant domain-name-server
et domain-name-search
de la request
partie 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 udhcpc
programme. Un petit client DHCP, qui fait partie debusybox
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 être connu pour résoudre mon problème, il serait donc plus facile à trouver pour les personnes ayant le même problème et je pourrais donc accepter une réponse.
Merci pour l'aide ici à comprendre les choses.
Réponses:
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, les modifier/etc/resolvconf/resolv.conf.d/base
et les exécutersudo 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
puis redémarrez
/etc/init.d/networking restart
ousudo ifdown -a
etsudo ifup -a
3) Votre système utilise udhcp 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 savoir plus sur son utilisation ici ou simplement modifier ce script (comme vous l'avez fait).
la source
/etc/resolvconf/resolv.conf.d/base
et j'ai coururesolvconf -u
. Cela n'a pas fonctionné, malheureusement.dpkg-reconfigure resolvconf
. Les entrées n'étaient pas là. Et j'ai des entrées avecnameserver ip
etsearch domain
.dpkg-reconfigure resolvconf
n'ajoutera pas d'entrées, mais vous pouvez désactiver les mises à jour automatiques. Si vous désactivez les mises à jour, vous pouvez modifier resolv.conf manuellement et il ne doit pas être remplacé.resolvconf -u
les entrées n'ont pas été ajoutées.J'ai rencontré ça aussi. Commenter
domain-name-server
ne l'a pas corrigé non plus.De plus, je n'utilise pas
resolvconf
, tout simplement/etc/resolv.conf
.Je n'ai pas essayé d'utiliser
chattr +i
pour verrouillerresolv.conf
car cela semble trop hacky. De plus, je veux que Puppet puisse modifierresolv.conf
si nécessaire.La meilleure solution que j'ai trouvée remplace le comportement par défaut de l'
dhclient
utilisation de ses crochets documentés.Créez un nouveau fichier
/etc/dhcp/dhclient-enter-hooks.d/nodnsupdate
avec le contenu suivant:Rendez ensuite le fichier exécutable:
Maintenant, lorsque dhclient s'exécute - soit au redémarrage, soit lorsque vous l'exécutez manuellement
sudo ifdown -a ; sudo ifup -a
- il charge ce scriptnodnsupdate
. Ce script remplace une fonction interne appeléemake_resolv_conf()
qui écraserait normalementresolv.conf
et ne fait rien.Cela a fonctionné pour moi sur Ubuntu 12.04.
la source
/etc/resolv.conf
été remplacé après le redémarrage.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 éditant le
/etc/dhcp/dhclient.conf
fichier et en ajoutant « annulent et remplacent » les déclarations de noms de domaine , domaine recherche et domain-name-serveurs comme suit: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.
la source
/etc/resolv.conf
été remplacé par 127.0.0.53.dnsmasq
allez dans ce répertoire:
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.
la source
Dans Azure VMs /etc/resolv.conf n'est pas directement modifiable.
Essayez d'ajouter les DNS complets dans vos fichiers de configuration réseau / etc / sysconfig / network-scripts / ifcfg-eth0 et ainsi de suite comme ci-dessous:
DOMAINE = exemple.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.
la source
Pour que les modifications liées au DNS soient
resolv.conf
permanentes, 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:
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/
la source
Utilisez la commande ci-dessous pour empêcher le resolv.conf ou tout fichier de remplacer après le redémarrage
chattr -V + i nom de fichier par exemple chattr -V + i /etc/resolv.conf
Pour annuler la modification, utilisez la commande ci-dessous:
chattr -i filename - pour réactiver l'insertion dans le fichier
chattr (Change Attribute) 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 ou la modification accidentelle de fichiers et dossiers importants, même si vous êtes connecté en tant qu'utilisateur root.
la source
chattr
, mais a observé que cela n'avait aucun effet.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.
la source