apt-get оновлення застрягло: підключення до security.ubuntu.com


79

Коли я працюю apt-get updateна своїй машині, вона застрягає у:

100% [Connecting to security.ubuntu.com (2001:67c:1562::15)] [Connecting to archive.canonical.com (2001:67c:1360:8c01::16)]

Я не вносив останніх змін у систему і використовую домашню мережу, яка працювала чудово раніше.

Я не можу пояснити, чому він перейшов на використання IPv6.
У мене встановлено IPv6 ignoreдля бездротової мережі:

введіть тут опис зображення

Вихід ip addr:

1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default 
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
   valid_lft forever preferred_lft forever
inet6 ::1/128 scope host 
   valid_lft forever preferred_lft forever
2: mlan0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
link/ether 4c:0b:be:22:0a:b4 brd ff:ff:ff:ff:ff:ff
inet 192.168.2.106/24 brd 192.168.2.255 scope global dynamic mlan0
   valid_lft 1814086sec preferred_lft 1814086sec
inet6 ::d5:b551:28db:2789:225/64 scope global temporary dynamic 
   valid_lft 604483sec preferred_lft 85483sec
inet6 ::d5:4e0b:beff:fe22:ab4/64 scope global mngtmpaddr dynamic 
   valid_lft 604779sec preferred_lft 86379sec
inet6 fe80::4e0b:beff:fe22:ab4/64 scope link 
   valid_lft forever preferred_lft forever

Змініть IP-адресу на IPv4 і повторіть спробу ..
heemayl

Чому ви використовуєте IPv6? Як сказав heemayl, перейдіть до IPv4 у розділі Налаштування мережі> [Адаптер]> Додатково.
The Wanderer

1
Схоже, у вас може бути розміщена реклама маршрутизатора з хостом 0:0:0:d5::/64. Цей діапазон вказаний як зарезервований IETF, так що, безумовно, не є коректним префіксом для реклами. Якщо ці РА вже зупинилися, дізнатися, звідки вони взялися, неможливо. У цьому випадку все, що ви дійсно можете зробити, це перезапустити мережевий інтерфейс, і проблема усунеться. Якщо RA все ще надсилаються, ви можете подивитися захоплення пакетів, щоб побачити, з якого MAC вони надходять.
kasperd

1
Крім помилково налаштованого підключення IPv6, ще одним фактором вашої проблеми є відсутність підтримки RFC 6555 в apt-get. Дотримуючись apt-getRFC 6555, ви ніколи не помітили б жодної проблеми.
kasperd

1
Ваш локальний маршрутизатор робить щось не так і дає вам недійсні адреси IPv6. Перевірте та виправте конфігурацію маршрутизатора.
Майкл Хемптон

Відповіді:


168

Це допомогло мені, з люб’язності Зака ​​Адамса ( https://zach-adams.com/2015/01/apt-get-cant-connect-to-security-ubuntu-fix/ ):

Виявляється, це проблема, коли підключення через IPv6 на деяких серверах змушує їх застрягти в цій точці. Виправити дійсно просто.

Відкрийте /etc/gai.conf

Під лінією

# For sites which prefer IPv4 connections change the last line to

Видаліть наступний рядок, видаливши #:

# precedence ::ffff:0:0/96 100

Це дозволить вам все-таки використовувати IPv6, але встановлює пріоритет IPv4, щоб apt-get не зациклювався.


16
Дякую! Ця відповідь набагато краща, ніж ipv6 просто по-рабськи відключити.
Сайрусміс

2
Якщо з цим не пощастило, спробуйте це: askubuntu.com/a/759540/4246
Готьє

1
OMG, який так допоміг!
GaTechThomas

4
Примітка. Це все ще дійсно версії 14.04 та 16.04 LTS
Elder Geek

1
Працював для мене на Linux Mint 18.1 та 18.2. Це має бути за замовчуванням.
мат

23

Налаштування IPv6 для мережі було проігноровано, але відключення IPv6 за допомогою /etc/sysctl.confроботи:

Додайте наступні рядки внизу /etc/sysctl.conf:

net.ipv6.conf.all.disable_ipv6 = 1
net.ipv6.conf.default.disable_ipv6 = 1
net.ipv6.conf.lo.disable_ipv6 = 1

Запустіть, sudo sysctl -pщоб перезавантажити /etc/sysctl.confналаштування.


6
Це не так, як вам слід робити. Ці лінії означають, що коли ви підключитесь до мережі, яка насправді має IPv6, ви отримаєте менш надійне з'єднання, ніж ви повинні були. Крім того, ці рядки нічого не роблять, щоб виправити першопричину вашої проблеми, яку ви навіть не визначили.
kasperd

Мені не потрібен IPv6 ніде, тому це працює чудово.
Пабі

4
Це просто нерозумно, адже для підключення до хостів одного і того ж сегменту мережі є кілька переваг у локальних адресах IPv6 посилання в порівнянні з IPv4.
kasperd

1
Не можу цього зробити з мого телефону;) Давайте просто погодимось, що ми не згодні.
Пабі

4
Робіть те, що хочете зробити. Я просто коментую, щоб переконатися, що будь-хто інший, хто може зіткнутися з тією ж проблемою, знає, що внесення запропонованих змін в sysctl.confкінцевому підсумку призведе до проблем.
kasperd

15

Кращим підходом є використання apt-get наступним чином замість редагування файлу gai.conf.

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

Якщо ви хочете зробити це стійким, просто додайте псевдонім "apt-get" у ваш файл bash.


Але хіба це не зробить з'єднання, яке може бути IPv6 усім IPv4?
метаме

@metame в цьому вся суть. ОП заявив, що його IPv6 вимкнено, а спроба його використання спричиняє проблеми.
Франческо Донді

0

Інші рішення не допомогли ... у моєму випадку я створив екземпляр aws ec2 Ubuntu 18.04 за допомогою

Auto-assign Public IP -> no pick disable

після спробу всіх запропонованих рішень я підвів руки і вбив це, і створив новий екземпляр ec2, використовуючи

Auto-assign Public IP -> yes  Use subnet setting (Enable) 

і це спрацювало чудово ... apt-get update && apt-get upgradeраді зараз

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.