подключение к archive.ubuntu.com занимает слишком много времени

50

У меня есть сервер Ubuntu 11.10, который я только что установил заново. Теперь, если я пытаюсь что-то сделать apt-get, он пытается подключиться к archive.ubuntu.com... Он остается в [Connecting to archive.ubuntu.com (2001:67c:1360:8c01::1a)]фазе в течение примерно 2 минут, после чего он фактически начинает общаться и загружать вещи ...

В конце концов, он всегда подключается, но [Connecting to archive.ubuntu.com (2001:67c:1360:8c01::1a)]каждый раз на этапе ждет около 2 минут!

У меня не было этой проблемы ранее в Ubuntu 11.10, сразу после переустановки ОС ..

Есть идеи, в чем может быть проблема?

Ahmad
источник
Интересно, связано ли это с тем, что вы используете IPv6. Вы в сети IPv6?
Томас Уорд
Нет, я так не думаю. Я не настроил ничего подобного ..
Ахмад
IP-адрес во включенных вами сообщениях - IPv6. Это говорит о том, что он использует IPv6, и, если я не ошибаюсь, не так много серверов IPv6 для архива.
Томас Уорд
1
@ Ахмад Так как вы решили свою проблему и написали решение, пожалуйста, опубликуйте его как ответ (и затем вы также можете отредактировать его вне своего вопроса). Обратите внимание, что вам не нужно ждать, чтобы сделать это; только пользователи с репутацией менее 100 должны ждать, прежде чем ответить на свои вопросы. Вы даже можете пометить свой собственный ответ как принятый (хотя для этого вы должны подождать, пока не пройдет два дня после публикации вопроса).
Элия ​​Каган
Готово .. Теперь мне осталось подождать 22 часа, чтобы я мог принять мой собственный ответ :)
Ахмад,

Ответы:

87

Я решил это 12.10, отредактировав /etc/gai.conf и раскомментировав строку:

#
#    For sites which prefer IPv4 connections change the last line to
#
precedence ::ffff:0:0/96 100

Это позволяет вам поддерживать IPv6 включенным, но устанавливает порядок приоритета для предпочтения IPv4 по сравнению с IPv6.

UberSteve
источник
13
Я не должен писать ty в качестве комментария, но я думаю, что следует сказать, что мой герой tytytytytyty
MageProspero
1
Это ответ
kbuilds
3
Подтверждено также на Ubuntu 14.04 / ElementaryOS freya!
oikonomopo
2
идеальный! работал шарм!
Джон
2
Все еще действует для Xubuntu 15.04
Dag
16

Решение:

Я понял проблему. Мне пришлось отключить подключение по IPv6, как указал лорд времени.

Выполнение следующей команды в Терминале сообщает, включен ли IPv6:

cat /proc/sys/net/ipv6/conf/all/disable_ipv6

0означает, что он включен, а 1означает, что он отключен.

Чтобы отключить IPv6 из терминала, введите следующее:

echo "#disable ipv6" | sudo tee -a /etc/sysctl.conf
echo "net.ipv6.conf.all.disable_ipv6 = 1" | sudo tee -a /etc/sysctl.conf
echo "net.ipv6.conf.default.disable_ipv6 = 1" | sudo tee -a /etc/sysctl.conf
echo "net.ipv6.conf.lo.disable_ipv6 = 1" | sudo tee -a /etc/sysctl.conf
sudo sysctl -p

Повторите первую команду, и это должно быть 1сейчас.

Ahmad
источник
У меня нет этого файла ...
amadib
Отключение IPv6 не является решением. Это обходной путь. Нам нужен IPv6, и его отключение определенно не рекомендуется. Правильные решения либо заставляют APT использовать только ipv4, либо устанавливают приоритет, как показано в верхнем решении.
Mniess
7

Если вы хотите изменить только apt-get, вы можете форсировать IPv4 с помощью:

apt-get -o Acquire::ForceIPv4=true update

Чтобы сделать настройку постоянной, создайте файл 99force-ipv4 в /etc/apt/apt.conf.d/.

sudoedit /etc/apt/apt.conf.d/99force-ipv4

Поместите в него следующее содержимое:

Acquire::ForceIPv4 "true";

Сохраните файл, и все готово. Если вы хотите использовать IPv6 вместо этого, измените 4 на 6 в имени файла и настройках. Чтобы выбрать один из них, протестируйте быстрый метод и посмотрите, какой из них работает лучше.

Люк
источник