Подтвердить что ты не робот

Curl: (6) Не удалось разрешить хост: google.com; Имя или услуга неизвестны

когда я пытаюсь загрузить веб-страницу на терминал, она дает ошибку curl: (6) Could not resolve host.

У меня есть интернет на моем ПК и пытаюсь подключиться к домашнему интернету. Таким образом, я не вижу здесь никакого прокси.

[[email protected] kevin]# curl http://google.com
curl: (6) Could not resolve host: google.com; Name or service not known

clean all и попробовал снова, но не повезло.

Но если я использую IP вместо имени домена, он отлично работает.

[[email protected] kevin]# curl http://173.194.46.0

какая-нибудь подсказка?

4b9b3361

Ответ 1

Были проблемы:

  • IPV6 включен
  • Неверный DNS-сервер

Вот как я его исправил:

Отключение IPV6

  • Открытый терминал
  • Введите su и введите для входа в систему как суперпользователь
  • Введите пароль root
  • Введите cd /etc/modprobe.d/, чтобы сменить каталог на /etc/modprobe.d/
  • Введите vi disableipv6.conf, чтобы создать новый файл там
  • Нажмите Esc + i, чтобы вставить данные в файл
  • Введите install ipv6 /bin/true в файл, чтобы избежать загрузки модулей, связанных с IPV6.
  • Введите Esc + : и затем wq для сохранения и выхода
  • Введите reboot, чтобы перезагрузить Fedora
  • После перезагрузки откройте терминал и введите lsmod | grep ipv6
  • Если нет результата, это означает, что вы правильно отключили IPV6

Добавить сервер DNS Google

  • Открытый терминал
  • Введите su и введите для входа в систему как суперпользователь
  • Введите пароль root
  • Введите cat /etc/resolv.conf, чтобы проверить, какой DNS-сервер использует ваша Fedora. В основном это будет ваш IP-адрес модема.
  • Теперь нам нужно найти мощный DNS-сервер. К счастью, у Google есть поддерживаемый DNS-сервер.
  • Перейдите в эту страницу и узнайте, что такое "IP-адреса Google Public DNS"
  • Сегодня это 8.8.8.8 и 8.8.4.4. Но в будущем они могут измениться.
  • Введите vi /etc/resolv.conf для редактирования файла resolv.conf
  • Нажмите Esc + i для вставки данных в файл
  • Прокомментируйте все вещи в файле, вставив # в начало каждой строки. Не удаляйте ничего, потому что это может быть полезно в будущем.
  • Введите ниже двух строк в файле

    nameserver 8.8.8.8
    nameserver 8.8.4.4

    -Type Esc + :, а затем wq для сохранения и выхода

  • Теперь вы закончили, и все работает нормально (не нужно перезапускать).
  • Но каждый раз при перезагрузке компьютера ваш /etc/resolv.conf будет заменен по умолчанию. Поэтому я позволю вам найти способ избежать этого.

Вот мое сообщение в блоге об этом: http://codeketchup.blogspot.sg/2014/07/how-to-fix-curl-6-could-not-resolve.html

Ответ 2

Возможно, у вас есть очень странные и ограничительные правила SELinux?

Если нет, попробуйте strace -o /tmp/wtf -fF curl -v google.com и попытайтесь определить из выходного файла /tmp/wtf, что происходит.

Ответ 3

sudo systemctl restart docker для меня оказывается, что перезапуск демона docker устранил проблему с кэшированием DNS.

Ответ 4

Попробуйте nslookup google.com, чтобы определить, есть ли проблема с DNS. 192.168.1.254 - ваш локальный сетевой адрес, и похоже, что ваша система использует его как DNS-сервер. Это ваш маршрутизатор шлюза и модема? Что происходит, когда вы пытаетесь выполнить ping google.com. Можете ли вы просмотреть его в интернет-браузере?

Ответ 5

У нас была такая же проблема на нашем Linux-сервере, и мы просто перезапустили PHP и Apache. Мы считаем, что некоторые кеши DNS внутри кудри были неправильными, и только перезапуск PHP решил это.

Ответ 6

У меня сегодня подобная проблема. Но более странный.

  • хост - работает host pl.archive.ubuntu.com
  • dig - работает по умолчанию и по всем другим DNS dig pl.archive.ubuntu.com, dig @127.0.1.1 pl.archive.ubuntu.com
  • завиток - не работает! но для некоторых адресов он делает. WEIRD! То же самое в Ruby, APT и многих других.
$ 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

Откровение

В конце концов я использовал strace на curl и обнаружил, что это была связь с nscd deamon.

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

Решение

Я перезапустил службу nscd (Daewon Cache), и это помогло решить эту проблему!

systemctl restart nscd.service

Ответ 7

У меня была такая же проблема, кроме как на Ubuntu VM. Оказывается, мой WiFi отключился. Сначала я не думал проверять, потому что мой хост (Windows 10) работал нормально. Все, что мне нужно было сделать, это подключиться к Интернету.