Ошибка cURL (6): Не удалось разрешить имя хоста

Вопрос или проблема

У меня проблема с резолвингом DNS в моем WSL1, вот пример:

[rootname@hostname ~]# yum update
CentOS Stream 8 - AppStream                                                             0.0  B/s |   0  B     00:00
Ошибки при загрузке метаданных для репозитория 'appstream':
  - Ошибка Curl (6): Не удалось разрешить имя хоста для https://vault.centos.org/centos/8-stream/AppStream/x86_64/os/repodata/repomd.xml [Не удалось разрешить хост: vault.centos.org]
Ошибка: Не удалось загрузить метаданные для репозитория 'appstream': Не удается загрузить repomd.xml: Не удается загрузить repodata/repomd.xml: Все зеркала были проверены

Ping к vault.centos.org возвращает:

64 байта от server-18-66-27-78.vie50.r.cloudfront.net (18.66.27.78): icmp_seq=4 ttl=246 время=54.6 мс

curl -G www.example.net возвращает содержимое html:

<html>
<<ANY_CONTENT>>
<body>
<div>
    <h1>Пример домена</h1>
    <p>Этот домен предназначен для использования в иллюстративных примерах в документах. Вы можете использовать этот
    домен в литературе без предварительной координации или запроса на разрешение.</p>
    <p><a href="https://www.iana.org/domains/example">Больше информации...</a></p>
</div>
</body>
</html>

Где проблема этой ошибки, если резолвинг DNS де-факто работает? Как это решить? Спасибо

Ответ или решение

Ошибка cURL (6): Не удалось разрешить имя хоста

Ошибка cURL error (6): Couldn't resolve host name в WSL1 (Windows Subsystem for Linux) может возникать по нескольким причинам, несмотря на то что DNS разрешение осуществляется нормально. В вашем случае, интересное поведение наблюдается в том, что команда ping возвращает ответ от vault.centos.org, но при выполнении yum update возникает ошибка разрешения имени хоста.

Причины проблемы

  1. DNS конфигурация:

    • Некоторые программные компоненты могут использовать разные механизмы для разрешения DNS. Например, yum может использовать системный DNS, который настроен некорректно, в отличие от команд ping или curl, которые могут использовать кэшированные DNS-записи.
  2. Проблемы с файлом /etc/resolv.conf:

    • Убедитесь, что файл /etc/resolv.conf правильно настроен. Часто в WSL он может либо отсутствовать, либо содержать неправильные DNS-серверы.
    • Проверьте, что в нём указаны корректные DNS-серверы (например, 8.8.8.8 для Google DNS).
  3. Сетевые проблемы:

    • Возможно, вы столкнулись с проблемами сетевого соединения, которые затрудняют вашему дистрибутиву WSL доступ к интернету для некоторых программ.
    • Проверьте, есть ли у вас блокировки или фильтры на уровне маршрутизатора или брандмауэра, которые могут препятствовать запросам DNS.
  4. Кэш DNS:

    • Иногда кэши DNS могут хранить устаревшую информацию. Попробуйте очистить кэш DNS на уровне системы Windows:
      ipconfig /flushdns
  5. Проблемы с репозиториями:

    • Возможно, источник, с которым пытается соединиться yum, временно недоступен или перемещён. Попробуйте протестировать доступ к другим зеркалам или репозиториям.

Решения:

  1. Проверьте и обновите /etc/resolv.conf:
    Откройте файл с помощью текстового редактора и добавьте следующие строки (при необходимости):

    nameserver 8.8.8.8
    nameserver 8.8.4.4

    Сохраните изменения и закройте редактор.

  2. Проверьте сетевые настройки WSL:

    • Убедитесь, что WSL имеет доступ к интернету. Попробуйте перезапустить WSL, чтобы обновить сетевые настройки:
      wsl --shutdown
  3. Обновите репозитории:

    • После изменения конфигурации попробуйте снова выполнить:
      yum clean all
      yum update
  4. Проверьте конфигурацию Windows:

    • В Windows проверьте настройки прокси, так как они могут блокировать соединение. Убедитесь, что в WSL нет настроек прокси, которые могут препятствовать доступу.
  5. Используйте альтернативные инструменты:

    • Если проблема не решается, рассмотрите возможность использования dnf (если доступен) вместо yum, так как он имеет более современные алгоритмы работы с зависимостями и пакетами.

Заключение

Проблема с cURL error (6) может быть вызвана множеством факторов, связанных как с конфигурацией DNS, так и с сетевыми настройками. Применяя вышеуказанные шаги, вы сможете диагностировать и, надеюсь, решить проблему. Если же проблема всё ещё сохраняется, возможно, стоит обратиться к сообществу CentOS или WSL для более детального анализа вашей ситуации.

Оцените материал
Добавить комментарий

Капча загружается...