Quelqu'un peut-il me dire ce que Sudo echo nameserver 8.8.8.8 > /etc/resolv.conf
fait?
J'avais l'habitude de perdre ma connexion Internet de manière aléatoire pendant 15 secondes à 3 minutes, mais après avoir utilisé cette commande, la connexion Internet fonctionne à merveille. Je suis simplement curieux de savoir ce que cette ligne de commande magique a fait.
Il remplace le serveur de noms (DNS) utilisé sur votre ordinateur par service DNS public Google . Si l'exécution de cette commande vous aide, vous rencontrez probablement des problèmes DNS dans les paramètres par défaut fournis par votre réseau (DHCP). S'il serait préférable de résoudre la cause première du problème, voici une réponse générale à votre question.
Sudo echo nameserver 8.8.8.8 > /etc/resolv.conf
Sudo
élève les privilèges pour qu'ils soient root dans ce cas.echo
ne sort que les arguments qui suivent la sortie standard (dans ce cas, il affiche nameserver 8.8.8.8
)>
redirige la sortie standard vers un fichier (le remplace) dans un shell Unix standard./etc/resolv.conf
est le fichier dans lequel la sortie est écrite.nameserver 8.8.8.8
dans /etc/resolv.conf
fait que le système utilisant le serveur de noms a l'adresse IP 8.8.8.8
pour la résolution des noms de domaine en adresses IP. (version très courte de ce qui se passe réellement) 8.8.8.8
est l’une des adresses publiées par Google indiquant où leurs services DNS publics écoutent.Sudo
errorBien que cette explication semble plausible, cela ne fonctionnera pas. En raison d'une erreur , vous obtiendrez:
bash: /etc/resolv.conf: Permission denied
Pourquoi? La redirection de sortie est gérée par votre shell (ici: Bash) et n'est pas prise en compte pour la commande utilisée pour Sudo
name__. Semblable à la façon dont la multiplication en maths a la priorité sur l'ajout. Donc, c'est simplement echo
qui a des privilèges élevés, mais votre shell n'a pas! Pour résoudre ce problème, exécutez cette commande comme suit:
Sudo sh -c "echo nameserver 8.8.8.8 > /etc/resolv.conf"
ou, en utilisant un tube et tee
pour le sortir dans un fichier:
echo nameserver 8.8.8.8 | Sudo tee /etc/resolv.conf #prints to screen as well
Sur Ubuntu, il ne s'agit que d'une modification temporaire, car Network Manager "gère" le fichier /etc/resolv.conf
. Les modifications locales seront écrasées. C'est pourquoi vous devez le configurer dans Network Manager pour qu'il soit persistant.
Je recommanderais de configurer votre PC correctement à l'aide de Network Manager. Je suppose que vous utilisez DHCP sur votre réseau ici (le plus courant). Ensuite, procédez de la même manière que la commande que vous utilisiez:
Ouvrir Modifier les connexions :
Modifiez le profil de connexion que vous utilisez.
Sur l'onglet Paramètres IPv4 :
Méthode: Adresses automatiques (DHCP) uniquement
Ce paramètre lui permet de faire une demande DHCP régulière pour la configuration de l'adresse IP de votre hôte, mais ignore d'autres options non obligatoires, telles que les serveurs DNS suggérées.
8.8.8.8
Terminé.
Dans un réseau local ou d'entreprise, le serveur DNS local peut être utilisé pour les hôtes locaux. Vous perdrez cette fonctionnalité en demandant directement aux serveurs de Google de résoudre les noms pour vous. Ainsi, si, par exemple, le serveur DNS local sait ce qu'est "une imprimante", vous perdrez l'utilisation de votre imprimante sous ce nom.
Alors, s'il vous plaît, corrigez votre serveur DNS local à la place. S'il ne s'agit que d'un simple expéditeur vers un serveur DNS endommagé de votre fournisseur de services Internet et que vous ne pouvez pas le modifier (routeur tout-en-un géré par un fournisseur de services Internet, par exemple), cette solution 8.8.8.8
peut être votre seule option.