web-dev-qa-db-fra.com

Que fait "Sudo echo nameserver 8.8.8.8> /etc/resolv.conf"?

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.

11
Jeanno

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.


Explication de la commande

Sudo echo nameserver 8.8.8.8 > /etc/resolv.conf
  • Sudoélève les privilèges pour qu'ils soient root dans ce cas.
  • echone 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.
  • Le fait d'avoir une ligne 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.

Sudoerror

Bien 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 Sudoname__. Semblable à la façon dont la multiplication en maths a la priorité sur l'ajout. Donc, c'est simplement echoqui 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 teepour le sortir dans un fichier:

echo nameserver 8.8.8.8 | Sudo tee /etc/resolv.conf  #prints to screen as well

Ubuntu et Network Manager

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.


Configuration à l'aide de Network Manager

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:

  1. Ouvrir Modifier les connexions :

    enter image description here

  2. Modifiez le profil de connexion que vous utilisez.

    enter image description here

  3. 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.

    • Serveurs DNS: 8.8.8.8
    • Hit Enregistrer

    enter image description here

Terminé.


Notes IMPORTANTES

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.

25
gertvdijk