wget использует адрес ipv6 и занимает слишком много времени, чтобы завершить

На сервере wget-1.16 требуется 8 минут:

 $ wget http://http.debian.net/debian/dists/stable/Release -O - --2017-06-12 23:44:40-- http://http.debian.net/debian/dists/stable/Release [4693/5569] Resolving http.debian.net (http.debian.net)... 2001:4f8:1:c::15, 2605:bc80:3010:b00:0:deb:166:202, 2001:610:1908:b000::148:14, ... Connecting to http.debian.net (http.debian.net)|2001:4f8:1:c::15|:80... failed: Connection timed out. Connecting to http.debian.net (http.debian.net)|2605:bc80:3010:b00:0:deb:166:202|:80... failed: Connection timed out. Connecting to http.debian.net (http.debian.net)|2001:610:1908:b000::148:14|:80... failed: Connection timed out. Connecting to http.debian.net (http.debian.net)|140.211.166.202|:80... connected. HTTP request sent, awaiting response... 302 Found Location: http://cdn-fastly.deb.debian.org/debian/dists/stable/Release [following] --2017-06-12 23:51:02-- http://cdn-fastly.deb.debian.org/debian/dists/stable/Release Resolving cdn-fastly.deb.debian.org (cdn-fastly.deb.debian.org)... 2a04:4e42:3::204, 151.101.12.204 Connecting to cdn-fastly.deb.debian.org (cdn-fastly.deb.debian.org)|2a04:4e42:3::204|:80... failed: Connection timed out. Connecting to cdn-fastly.deb.debian.org (cdn-fastly.deb.debian.org)|151.101.12.204|:80... connected. ... 

Потому что он пытается подключиться с помощью IPv6-адреса. curl-7.38.0 на той же машине отвечает мгновенно. Потому что он использует адрес IPv4. Они разрешают домен по-разному? Как они это делают? Как заставить wget использовать IPv4-адрес?

UPD

 $ ip a ... 2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000 link/ether d8:cb:8a:37:cf:57 brd ff:ff:ff:ff:ff:ff inet 188.40.99.4/26 brd 188.40.99.63 scope global eth0 valid_lft forever preferred_lft forever inet6 2a01:4f8:100:738b::2/64 scope global valid_lft forever preferred_lft forever inet6 fe80::dacb:8aff:fe37:cf57/64 scope link valid_lft forever preferred_lft forever $ ip route default via 188.40.99.1 dev eth0 10.0.0.0/24 dev br0 proto kernel scope link src 10.0.0.1 188.40.99.0/26 via 188.40.99.1 dev eth0 188.40.99.0/26 dev eth0 proto kernel scope link src 188.40.99.4 

One Solution collect form web for “wget использует адрес ipv6 и занимает слишком много времени, чтобы завершить”

curl и wget не используют разные механизмы для разрешения доменов (они используют getaddrinfo() ). Тем не менее, curl реализует быстрый алгоритм резервного копирования, чтобы улучшить работу пользователя в случаях, когда подключение IPv6 меньше, чем хорошее.

Этот алгоритм подробно описан в RFC 6555 (Happy Eyeballs): https://tools.ietf.org/html/rfc6555

Согласно curl/lib/connect.h этот таймаут установлен на 200 мс: https://github.com/curl/curl/blob/a8e523f086c12e7bb9acb18d1ac84d92dde0605b/lib/connect.h#L43

Оба параметра curl и wget поддерживают параметры -4 / -6 , которые будут принудительно подключаться к IPv4 или IPv6 соответственно.

  • Объединить аргумент xargs с некоторым текстом
  • Как отобразить все URL-адреса в цепочке перенаправления?
  • Несколько учетных данных пользователя в wget
  • Запуск тысяч параллельных фоновых процессов в сценарии bash
  • Использование даты -1day с помощью wget
  • Wget regex не удается получить файлы через ftp
  • wget для получения списка файлов
  • Загрузите файл yesterdays с FTP-сервера
  • Загружайте данные на веб-сайте (http) рекурсивно с помощью wget
  • Альтернативы wget
  • установка dropbox (для просмотра файлов)
  • Interesting Posts

    Могу ли я сделать общий каталог в частном каталоге?

    Что означает эта ошибка python2 и что мне делать с этим?

    Как изменить имя логического тома в группе томов

    Почему tr -sc 'A-Za-z' '' содержит пустую строку?

    Извлеките первые две части каждой линии, используя awk

    Постоянное решение: файлы, строки без добавления \ n в командной строке

    Как найти память кучи работающего процесса?

    systemd с таймером как пользователь

    Возьмите максимальное значение из столбца и извлеките все строки с не менее чем 20% этого значения

    git diff копий, которые добавили только строки

    Найти файл во многих zip-файлах (например, найти команду для каталогов)

    Я хочу, чтобы procmail задерживал электронное письмо одного пользователя через 10 секунд, а затем продолжал обработку

    перенаправлять vpn-трафик на другой сервер vpn

    Новая система SL6: нет имени хоста?

    Объединение расширения скобок и перенаправления вывода

    Linux и Unix - лучшая ОС в мире.