web-dev-qa-db-fra.com

curl: (6) Impossible de résoudre l'hôte: google.com; Nom ou service inconnu

lorsque j'essaie de charger une page Web sur un terminal, l'erreur curl: (6) Could not resolve Host est générée. 

J'ai Internet dans mon PC et j'essaie depuis ma connexion Internet à la maison. Donc, comme je ne suis pas impliqué par procuration ici. 

[root@localhost kevin]# curl http://google.com
curl: (6) Could not resolve Host: google.com; Name or service not known

clean all et réessayé mais pas de chance. 

Mais si j'utilise IP au lieu du nom de domaine, cela fonctionne bien. 

[root@localhost kevin]# curl http://173.194.46.0

un indice s'il vous plaît?

32
Nayana Adassuriya

Les problèmes étaient:

  1. IPV6 activé
  2. Mauvais serveur DNS 

Voici comment je l'ai corrigé:

IPV6 Désactivation

  • Terminal ouvert
  • Tapez su et entrez pour vous connecter en tant que super utilisateur
  • Entrez le mot de passe root
  • Tapez cd /etc/modprobe.d/ pour changer le répertoire en /etc/modprobe.d/
  • Tapez vi disableipv6.conf pour créer un nouveau fichier ici
  • Appuyez sur Esc + i pour insérer des données dans un fichier.
  • Tapez install ipv6 /bin/true sur le fichier pour éviter de charger des modules liés à IPV6
  • Tapez Esc + : puis wq pour enregistrer et quitter.
  • Tapez reboot pour redémarrer Fedora
  • Après le redémarrage, ouvrez le terminal et tapez lsmod | grep ipv6
  • Si aucun résultat, cela signifie que vous avez correctement désactivé IPV6

Ajouter un serveur DNS Google

  • Terminal ouvert
  • Tapez su et entrez pour vous connecter en tant que super utilisateur
  • Entrez le mot de passe root
  • Tapez cat /etc/resolv.conf pour vérifier le serveur DNS utilisé par votre Fedora. Ce sera principalement votre adresse IP de modem.
  • Nous devons maintenant trouver un serveur DNS puissant. Heureusement, il existe un serveur DNS ouvert géré par Google.
  • Allez sur cette page et découvrez quelles sont les "adresses IP de Google Public DNS"
  • Aujourd'hui, ce sont 8.8.8.8 et 8.8.4.4. Mais à l'avenir, ceux-ci pourraient changer.
  • Tapez vi /etc/resolv.conf pour éditer le fichier resolv.conf
  • Appuyez sur Esc + i pour insérer des données dans un fichier.
  • Commentez tout le contenu du fichier en insérant # au début de chaque ligne. Ne supprimez rien car cela peut être utile dans le futur.
  • Tapez ci-dessous deux lignes dans le fichier

    serveur de noms 8.8.8.8
    serveur de noms 8.8.4.4

    -Type Esc + : puis wq pour enregistrer et quitter

  • Maintenant vous avez terminé et tout fonctionne correctement (il n'est pas nécessaire de redémarrer).
  • Mais chaque fois que vous redémarrez votre ordinateur, votre /etc/resolv.conf sera remplacé par défaut. Je vais donc vous laisser trouver un moyen d'éviter cela. 

Voici mon article sur ce blog: http://codeketchup.blogspot.sg/2014/07/how-to-fix-curl-6-could-not-resolve.html

47
Nayana Adassuriya

Peut-être avez-vous des règles SELinux très étranges et restrictives?

Sinon, essayez strace -o /tmp/wtf -fF curl -v google.com et essayez de repérer à partir du fichier de sortie /tmp/wtf ce qui se passe.

6
Sathish

J'ai aujourd'hui le même problème. Mais plus étrange.

  • Hôte - fonctionne Host pl.archive.ubuntu.com
  • Dig - fonctionne par défaut et sur tous les autres DNS Dig pl.archive.ubuntu.com, Dig @127.0.1.1 pl.archive.ubuntu.com
  • curl - ne fonctionne pas! mais pour certaines adresses, c'est le cas. BIZARRE! Même chose en Ruby, APT et beaucoup d'autres.
$ curl -v http://google.com/
*   Trying 172.217.18.78...
* Connected to google.com (172.217.18.78) port 80 (#0)
> GET / HTTP/1.1
> Host: google.com
> User-Agent: curl/7.47.0
> Accept: */*
>
< HTTP/1.1 302 Found
< Cache-Control: private
< Content-Type: text/html; charset=UTF-8
< Referrer-Policy: no-referrer
< Location: http://www.google.pl/?gfe_rd=cr&ei=pt9UWfqXL4uBX_W5n8gB
< Content-Length: 256
< Date: Thu, 29 Jun 2017 11:08:22 GMT
<
<HTML><HEAD><meta http-equiv="content-type" content="text/html;charset=utf-8">
<TITLE>302 Moved</TITLE></HEAD><BODY>
<H1>302 Moved</H1>
The document has moved
<A HREF="http://www.google.pl/?gfe_rd=cr&ei=pt9UWfqXL4uBX_W5n8gB">here</A>.
</BODY></HTML>
* Connection #0 to Host google.com left intact

$ curl -v http://pl.archive.ubuntu.com/
* Could not resolve Host: pl.archive.ubuntu.com
* Closing connection 0
curl: (6) Could not resolve Host: pl.archive.ubuntu.com

Révélation

Finalement, j’ai utilisé strace sur curl et découvert qu’il s’agissait d’une connexion à nscd deamon.

connect(4, {sa_family=AF_LOCAL, Sun_path="/var/run/nscd/socket"}, 110) = 0

Solution

J'ai redémarré le service nscd (Name Service Cache Daemon) et cela a aidé à résoudre ce problème!

systemctl restart nscd.service
0
cardil

Nous avons eu le même problème sur notre serveur Linux et nous venons de redémarrer PHP ainsi qu'Apache. Nous pensons que certains cache DNS à l'intérieur des boucles étaient erronés et le simple redémarrage de PHP a résolu ce problème 

0
Pascal Klein

Essayez nslookup google.com pour déterminer s’il existe un problème DNS. 192.168.1.254 est votre adresse réseau locale et il semble que votre système l’utilise comme serveur DNS. Est-ce également votre routeur passerelle/modem? Que se passe-t-il lorsque vous essayez d'effectuer un ping sur google.com? Pouvez-vous y accéder sur un navigateur Web? 

0
Benjamin B