Убедите склонный - заставляют *не* использовать метод IPv6

tail -f /var/log/logname | source-highlight -f esc -s log
240
07.05.2014, 22:32
9 ответов

Добавить -o Acquire::ForceIPv4=true при выполнении apt-get.

Если Вы хотите установить настройку, персистентную, просто создают/etc/apt/apt.conf.d/99force-ipv4 и помещают Acquire::ForceIPv4 "true"; в нем:

echo 'Acquire::ForceIPv4 "true";' | sudo tee /etc/apt/apt.conf.d/99force-ipv4

Опции конфигурации Acquire::ForceIPv4 и Acquire::ForceIPv6 были добавлены к версии 0.9.7.9~exp1 (см. ошибку 611891), который доступен начиная с Дерзкой Ubuntu (выпущенный в октябре 2013) и Debian Jessie (выпущенный в апреле 2015).

320
27.01.2020, 19:27
  • 1
    Перемещение "принятого" этому; в то время как исходный ответ с 30 точками совершенно корректен, это применимо в намного более широком масштабе, в то время как это предоставляет возможность просто ограничивать склонный - добираются. –  Shadur 12.11.2013, 20:21
  • 2
    Будьте правильно описательными в своем ответе.-o Получают:: ForceIPv4=true является дополнением к команде, чтобы позволить пользователю использовать ipv4 –  Kendrick 23.05.2014, 04:42
  • 3
    Ответ обновил после предложения –  mmoya 23.05.2014, 11:02
  • 4
    Оценка от остальной части моего apt.conf необходимо записать это как это: Acquire::ForceIPv4 "true"; (с двойными кавычками) –  mirabilos 13.12.2014, 17:09
  • 5
    @ZAB, потому что, если у Вас нет доступа для записи к файлу, sudo echo 'test' > file не работал бы, потому что перенаправление выполняется с полномочиями пользователя –  LeartS 30.09.2016, 12:54

Как Gilles говорит, использовать gai.conf.Примечания:

  1. Это работает на намного более низком уровне (DNS и сети IP), чем APT, таким образом, это изменится как вся Ваша сеть приложений - по крайней мере, все то использование getaddrinfo.
  2. Прежде, чем отредактировать Ваш gai.conf, необходимо создать резервную копию его и также читать, это (не волнуйтесь, это коротко). Редактирования ниже, вероятно, уже упоминаются в Вашем текущем файле; если текущий файл указывает на что-то другое от того, что упоминается ниже, необходимо, вероятно, предпочесть то, что находится в текущем файле.

Но если это - то, что Вы хотите (который это, вероятно), давайте продолжим двигаться. Скажите, что у нас есть два хоста www.he.net и www.ripe.net :

$ host www.he.net
www.he.net is an alias for he.net.
he.net has address 216.218.186.2
he.net has IPv6 address 2001:470:0:76::2

$ host www.ripe.net
www.ripe.net has address 193.0.6.139
www.ripe.net has IPv6 address 2001:67c:2e8:22::c100:68b

Случай 1: предпочтите IPv4 для всех хостов

Добавьте к /etc/gai.conf следующая строка:

precedence ::ffff:0:0/96  100

После того, чтобы сохранить отредактированный файл (никакая потребность перезапустить), необходимо видеть сетевые приложения (например, telnet) использование IPv4: например,

$ telnet www.ripe.net 81
Trying 193.0.6.139...
^C
$ telnet www.he.net 81
Trying 216.218.186.2...

Случай 2: предпочтите IPv6 для определенных хостов

Если мы хотим предпочесть IPv6 только для www.he.net или его сеть, мы можем добавить маску/префикс для всех, или просто некоторая часть, ее IPv6 адресуют к /etc/gai.conf. Например, следующая строка:

precedence 2001:470::/32 100

(после того, чтобы сохранить отредактированный файл), производит

$ telnet www.ripe.net 81
Trying 193.0.6.139...
^C
$ telnet www.he.net 81
Trying 2001:470:0:76::2...
^C

Случай 3: предпочтите IPv4 для определенных хостов

Если мы инвертируем маску, то реверс будет верен? Согласно @GrueMaster, добавляя

precedence 2001:470::/96 100

работавший для него после отключения IPv6 для security.ubuntu.com (иначе это останавливается навсегда).


См. также:

84
27.01.2020, 19:27
  • 1
    Возможно, суммируйте содержание в случае, если вышеупомянутые ссылки исчезают? –  Faheem Mitha 16.05.2011, 18:04
  • 2
    Так, что синтаксис должен отключить IPv6 для конкретного имени, или по крайней мере для конкретного адреса (диапазон)? Если Вы добавляете, что к Вашему сообщению, это будет лучший ответ здесь. –  Gilles 'SO- stop being evil' 16.05.2011, 19:16
  • 3
    Спасибо. Я добавил 2 строки #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 и склонный - получают работы обновления, прекрасные теперь. –  don bright 01.06.2015, 03:49

Вы могли установить apt-cacher-ng на запасной машине для действия как прокси/кэш для всех хостов. Можно вынудить конфигурацию только использовать определенные хосты или использовать прием/etc/hosts, предложенный @badp на той одной машине.

apt-get install apt-cacher-ng

После того как у Вас есть установка apt-cache-ng, просто необходимо отбросить следующую строку (с IP-адресом / имя хоста, измененное для указания на машину ловца) в/etc/apt/apt.conf.d/90httpproxy

Acquire::http { Proxy "http://[192.168.1.254]:3142"; };

Я использую ту установку для сокращения использования пропускной способности, но это должно обходное решение проблема. К сожалению, я не знаю о способе непосредственно отключить ipv6 поиски для Кв. - вовлекают себя.

10
27.01.2020, 19:27
  • 1
    Все еще идеальное решение, но столь же хороший, как это, вероятно, собирается добраться.Спасибо. –  Shadur 24.03.2011, 12:49

Вы могли работать вокруг этого путем установки прокси-сервера DNS, который отбросил ip6 ответы.

5
27.01.2020, 19:27
  • 1
    Ваш локальный сопоставитель все еще не попытается получить запись AAAA? И испытайте таймаут? –  Mikel 15.05.2012, 17:32

Как насчет того, чтобы включить строку /etc/hosts переопределение соответствующих адресов? например,

130.89.149.226  ftp.debian.org      
195.20.242.89   security.debian.org 
4
27.01.2020, 19:27
  • 1
    я сохраню это решение для последнего, если там не окажется другим путем; мне действительно не нравится создавать помехи /etc/hosts с IP-адресами я не владею мной. –  Shadur 23.03.2011, 13:34
  • 2
    @Shadur Да, я могу полностью видеть Ваш :) –  badp 23.03.2011, 14:49

Я нашел намного лучший способ сделать это. Откройте Ваш sources.list файл и записывает имена хостов repos. Получите их адреса IPv4, затем отредактируйте sources.list с адресами IPv4, а не именами хостов. Кв. - добирается, должен теперь связаться, репозитории по IPv4 обращается к Вам указанный, обходящий IPv6.

Существует недостаток, что repos обычно имеют своего рода выравнивание нагрузки и/или настроенную геолокацию IP, который, конечно, обходит этот метод. Однако не должно иметь значения, если только несколько человек делают его. Если Вы действительно находите, что одно зеркало является медленным, попытайтесь получить другой repo IP-адрес (например, при помощи сервиса ping онлайн) и использование это.

0
27.01.2020, 19:27
  • 1
    Это - действительно плохое решение, на самом деле, по причинам, которые Вы уже описываете. –  Shadur 18.04.2013, 07:46
[1130377] Захват старой темы, но недавно столкнулся с той же проблемой. Итак, на основании приведенных выше советов и результатов работы [1130788]хоста[1130789] и [1130790]whois[1130791]:

Решили проблему несколько иначе - снизили приоритет сетей IPv6, которые содержат [1130792]безопасность. debian.org[1130793] в [1130794]/etc/gai.conf[1130795]:

Таким образом, IPv6 всё ещё предпочтительнее, за исключением [1130796]security.debian.org[1130797].[1130382].

1
27.01.2020, 19:27

По состоянию на 08 октября 2014 года у меня была та же проблема, пытаясь обновить Debian за прокси в локальной сети. В надежде это будет актуально для других, я публикую свой ответ здесь. Как упомянули другие, редактирование / etc / hosts - это то, что нужно быть осторожным.

Но лично я просто хотел получить обновление.

Содержание /etc/apt/sources.blist при выполнении обновления (он отличался до обновления.):

deb http://http.debian.net/debian/ testing main
deb-src http://http.debian.net/debian/ testing main

deb http://mirrors.kernel.org/debian/ wheezy main
deb-src http://mirrors.kernel.org/debian/ wheezy main

deb http://security.debian.org/ wheezy/updates main
deb-src http://security.debian.org/ wheezy/updates main

Содержание /etc/apt/apt.conf:

Acquire::http::proxy "http://192.168.1.10:7777/";
Acquire::http::Timeout "10";
Acquire::ftp::Timeout "10";

Ddition к / etc / Хозяевы:

#Workaround for making apt-get work (08-10-2014)
195.20.242.89 security.debian.org
130.89.148.12 ftp.debian.org

Теперь работает APT-Get Update; UPT-Get Upgrade как root работает хорошо.

Как уже упоминалось в других ответах, используйте, запустите команду хоста в домене, чтобы получить правильный IP, чтобы вставить в файл хоста.

Пример:

$ host ftp.debian.org
ftp.debian.org has address 130.89.148.12

Это успешно обновило систему в Debian GNU / Linux Testing (Jessie) . Возможно, вы не захотите бегать с репозиториями тестирования, а затем просто удалите его из источников. Репозитории тестирования дают вам более последние обновления нескольких пакетов, но не считаются стабильными.

1
27.01.2020, 19:27

Вы можете попробовать это, если работает для вас

user@ubuntuvm:~$ sudo bash
root@ubuntuvm:~# echo 1 > /proc/sys/net/ipv6/conf/eth0/disable_ipv6 

-- > замените имя интерфейса

-4
27.01.2020, 19:27

Теги

Похожие вопросы