В данный момент RHEL7 (Red Hat Enterprise Linux 7 ).
https://www.redhat.com/en/services/training/ex200-red-hat-certified-system-administrator-rhcsa-exam
Примечание. :RedHat — логотип торговой марки, Red Hat — название компании. Red Hat Entreprise Linux текущее название выделенного сервера дистрибутива Red Hat
Не видя вашего curl --version
, позвольте мне рискнуть в темноте, основываясь на том, что я столкнулся именно с этой проблемой. Ваша версия curl собрана без c -are? Первая строка curl --version
должна сказать вам:
curl 7.71.0-DEV (x86_64-unknown-linux-gnu) libcurl/7.71.0-DEV c-ares/1.10.0
Недавно я столкнулся с той же проблемой, когда тайм-ауты DNS приводили к тому, что curl превышал указанные тайм-ауты. При включенном подробном отображении тайм-аут DID поиска DNS будет равен 5 секундам, но затем он будет ждать до 20 секунд, чтобы полностью истечь время ожидания и закрыться. Мы root вызвали его к версиям без c -ares(библиотеки асинхронного преобразователя DNS ).
Я собрал его из исходного кода, взятого с их github , используя эти инструкции , но добавив./configure --enable-ares
Здесь вы можете увидеть, как он построен с помощью c -ares c-ares/1.10.0
в информации о версии
$ /usr/local/bin/curl --version
curl 7.71.0-DEV (x86_64-unknown-linux-gnu) libcurl/7.71.0-DEV c-ares/1.10.0
Release-Date: [unreleased]
Protocols: dict file ftp gopher http imap pop3 rtsp smtp telnet tftp
Features: AsynchDNS IPv6 Largefile UnixSockets
и ведет себя так, как ожидалось
$ time /usr/local/bin/curl --max-time 5 google.com -v
* Resolving timed out after 5000 milliseconds
* Closing connection 0
curl: (28) Resolving timed out after 5000 milliseconds
real 0m5.002s
user 0m0.000s
sys 0m0.002s
И построен без ц -ар
/usr/local/bin/curl --version
curl 7.71.0-DEV (x86_64-unknown-linux-gnu) libcurl/7.71.0-DEV
Release-Date: [unreleased]
Protocols: dict file ftp gopher http imap pop3 rtsp smtp telnet tftp
Features: AsynchDNS IPv6 Largefile UnixSockets
Тайм-аут не работает:
time /usr/local/bin/curl --max-time 5 google.com -v
* Resolving timed out after 5000 milliseconds
* Closing connection 0
curl: (28) Resolving timed out after 5000 milliseconds
real 0m20.023s
user 0m0.003s
sys 0m0.000s
Если вы собираете curl из исходного кода или это вариант, вам, вероятно, просто нужно включить этот параметр.
Редактировать :JamesTheAwesomeDude прекрасно заметил, что стоит выяснить, откуда взялся этот cURL. В моем случае это был свежий инстанс EC2 под управлением Amazon Linux 2.
$ cat /etc/*-release | grep PRETTY_NAME
PRETTY_NAME="Amazon Linux 2"