В моем файле /etc /hosts у меня есть пользовательская запись, поскольку имя на самом деле не существует, как это:

5.5.5.5 someinternalserver.thing.net #thats a fake IP for this post

Используя curl, вот так:

curl -o /dev/null http://someinternalserver.thing.net/img/panda.jpg

Занимает 6 секунд. 5,5 для поиска DNS и 0,5 для фактической загрузки файла.

Если я заставлю curl использовать IPV4, он будет работать без задержки

curl -4 -o /dev/null http://someinternalserver.thing.net/img/panda.jpg

Это работало прекрасно до сегодняшнего утра. Как мне вообще решить проблему с этим?

Я не могу добавить IPV6-адрес в /etc /hosts, поскольку внутренняя сеть здесь не поддерживает его. Принудительное использование curl для IPV4 работает нормально, если я хочу использовать терминал, но настоящая проблема заключается в скриптах / приложениях, использующих curl.

1 ответ1

0

Ваш DNS-распознаватель (библиотека), вероятно, выполняет параллельные запросы для IPv4 и IPv6. Он ожидает завершения обоих запросов до получения ответа.

Запрос IPv6 истекает через 5 секунд, а затем curl получает IP-адрес из библиотеки.

См. Https://askubuntu.com/a/32312/15110, в котором рекомендуется добавить в /etc/resolv.conf следующее:

options single-request

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .