Интернет-провайдер, над которым я работаю, настраивает внутреннюю сеть IPv6 для подготовки к последующему подключению к Интернету IPv6. В результате несколько серверов в этой сети теперь пытаются подключиться к security.debian.org через свой IPv6-адрес по умолчанию при запуске apt-get update
, и это приводит к необходимости ожидания продолжительного времени ожидания при загрузке обновлений любого рода. ,
Есть ли способ заставить apt либо предпочесть IPv4, либо вообще игнорировать IPv6?
/etc/gai.conf
так, чтобыsecurity.debian.org
запись A возвращалась до записи AAA, но я не знаю точно, что поместить в этот файл.Ответы:
Добавить
-o Acquire::ForceIPv4=true
при запускеapt-get
.Если вы хотите сделать настройку постоянной, просто создайте /etc/apt/apt.conf.d/99force-ipv4 и вставьте
Acquire::ForceIPv4 "true";
в нее:Параметры конфигурации
Acquire::ForceIPv4
иAcquire::ForceIPv6
были добавлены в версии 0.9.7.9 ~ exp1 (см ошибка 611891 ) , который доступен с Ubuntu Дерзкий (выпущен в октябре 2013 года ) и Debian Jessie (выпущен в апреле 2015 года).источник
apt.conf
нужно написать так:Acquire::ForceIPv4 "true";
(с двойными кавычками)sudo echo 'test' > file
он не будет работать, потому что перенаправление выполняется с разрешениями пользователяКак говорит Жиль , используйте
gai.conf
. Примечания:getaddrinfo
.gai.conf
, вы должны сделать его резервную копию, а также прочитать его (не волнуйтесь, он короткий). Изменения ниже, вероятно, уже упоминались в вашем текущем файле; если текущий файл указывает на что-то отличное от того, что упомянуто ниже, вы, вероятно, предпочтете, что находится в вашем текущем файле.Но если это то, что вы хотите (что, вероятно, так и есть), давайте продолжим. Скажем, у нас есть два хоста
www.he.net
иwww.ripe.net
:Случай 1: предпочитаю IPV4 для всех хостов
Добавить
/etc/gai.conf
в следующую строку:После сохранения отредактированного файла (не нужно перезапускать) вы должны увидеть сетевые приложения (например,
telnet
), использующие IPV4: например,Случай 2: предпочитаю IPV6 для конкретных хостов
Если мы хотим отдать предпочтение IPV6 только для
www.he.net
его или его сети, мы можем добавить маску / префикс для всех или только для части своего IPV6-адреса/etc/gai.conf
. Например, следующая строка:(после сохранения отредактированного файла) выдает
Случай 3: предпочитайте IPV4 для конкретных хостов
Если мы инвертируем маску, будет ли верно обратное? Согласно @GrueMaster, добавление
работал на него после отключения IPV6
security.ubuntu.com
(иначе он глохнет навсегда).Смотрите также:
источник
#security.debian.org has IPv6 address 2610:148:1f10:3::73 \n #security.debian.org has IPv6 address 2001:4f8:8:36::6 \n precedence 2001:4f8::/96 100 \n precedence 2610:148::/96 100
в мой /etc/gai.conf, и обновление apt-get теперь работает отлично.Вы можете настроить apt-cacher-ng на запасной машине, чтобы она действовала как прокси / кеш для всех ваших хостов. Вы можете заставить конфигурацию использовать только определенные хосты или использовать трюк / etc / hosts, предложенный @badp на этой одной машине.
После настройки apt-cache-ng вам просто нужно удалить следующую строку (с измененным IP-адресом / именем хоста, чтобы она указала на ваш компьютер с кэшированием) в /etc/apt/apt.conf.d/90httpproxy
Я использую эту настройку, чтобы уменьшить использование полосы пропускания, но это должно обойти вашу проблему. К сожалению, я не знаю, как напрямую отключить поиск ipv6 для apt-get.
источник
Вы можете обойти это, настроив прокси-сервер DNS, который отбрасывал ответы ip6.
источник
Как насчет добавления строки в
/etc/hosts
переопределение соответствующих адресов? например,источник
/etc/hosts
IP-адреса, которые я сам не имею.Угоняю старую тему, но столкнулся с той же проблемой в последнее время. Итак, исходя из приведенных выше советов и выводов host и whois :
Решил проблему немного другим способом - снизил приоритет сетей IPv6, которые содержат security.debian.org в /etc/gai.conf :
Итак, IPv6 по-прежнему предпочтительнее, за исключением security.debian.org .
источник
По состоянию на 08 октября 2014 года у меня возникла та же проблема: я пытался обновить Debian за прокси-сервером в локальной сети. В надежде, что это будет актуально для других, я публикую свой ответ здесь. Как уже упоминалось, редактирование
/etc/hosts
- это то, с чем следует быть осторожным.Но лично я просто хотел сделать обновление.
Содержимое файла /etc/apt/sources.list при обновлении (до обновления оно было другим):
Содержимое /etc/apt/apt.conf:
Дополнение к / etc / hosts:
Теперь запуск
apt-get update ; apt-get upgrade
от имени root работал хорошо.Как упоминалось в других ответах, используйте команду host в домене, чтобы получить правильный ip для вставки в файл hosts.
Пример:
Это успешно обновило систему до
Debian GNU/Linux testing (jessie)
. Возможно, вы не захотите запускать тестовые репозитории, а затем просто удалите его из исходных кодов. Репозитории тестирования дают вам более свежие обновления нескольких пакетов, но не считаются стабильными.источник
hosts
файла является крайне неоптимальным решением.Я нашел гораздо лучший способ сделать это. Откройте свой
sources.list
файл и запишите имена хостов репозиториев. Получите их IPv4- адреса, затем отредактируйте ихsources.list
с помощью IPv4-адресов, а не имен хостов. Теперь apt-get должен связываться с репозиториями по указанным вами адресам IPv4, минуя IPv6.Недостатком является то, что репозитории обычно имеют своего рода балансировку нагрузки и / или настройку IP-геолокации, которую этот метод, конечно, обходит. Тем не менее, это не должно иметь значения, если только несколько человек делают это. Если вы обнаружите, что одно зеркало работает медленно, попробуйте получить другой IP-адрес репо (например, с помощью службы онлайн-пинга) и используйте его.
источник
Вы можете попробовать это, если работает для вас
-> заменить название вашего интерфейса
источник