apt-get update hängt: Verbindung zu security.ubuntu.com wird hergestellt


79

Wenn ich apt-get updateauf meiner Maschine laufe, bleibt sie stecken bei:

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

Ich habe in letzter Zeit keine Änderungen am System vorgenommen und verwende mein Heimnetzwerk, das zuvor einwandfrei funktioniert hat.

Ich kann nicht erklären, warum es auf IPv6 umgestellt hat.
Ich habe IPv6 ignorefür das drahtlose Netzwerk eingestellt:

Bildbeschreibung hier eingeben

Ausgabe von 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

Ändern Sie die IP-
Adresse

Warum verwenden Sie IPv6? Wie er sagte, wechseln Sie zu IPv4 unter Netzwerkeinstellungen> [Adapter]> Erweitert.
TheWanderer

1
Es sieht so aus, als hätten Sie einen Host, der Routerwerbung mit sendet 0:0:0:d5::/64. Dieser Bereich wird von der IETF als reserviert aufgeführt, sodass dies definitiv kein gültiges Präfix für Werbung ist. Wenn diese RAs bereits gestoppt haben, kann es unmöglich sein, herauszufinden, woher sie kamen. In diesem Fall müssen Sie nur die Netzwerkschnittstelle neu starten, und das Problem ist behoben. Wenn die RAs noch gesendet werden, können Sie anhand einer Paketerfassung feststellen, von welchem ​​MAC sie stammen.
Kasperd

1
Abgesehen von der falsch konfigurierten IPv6-Konnektivität ist ein weiterer Grund für Ihr Problem das Fehlen der RFC 6555-Unterstützung in apt-get. Wenn Sie apt-getRFC 6555 gefolgt wären, hätten Sie nie ein Problem bemerkt.
Kasperd

1
Ihr lokaler Router macht etwas falsch und gibt Ihnen ungültige IPv6-Adressen. Überprüfen und korrigieren Sie die Konfiguration des Routers.
Michael Hampton

Antworten:


168

Dies funktionierte für mich mit freundlicher Genehmigung von Zach Adams ( https://zach-adams.com/2015/01/apt-get-cant-connect-to-security-ubuntu-fix/ ):

Es stellte sich heraus, dass dies ein Problem ist, bei dem die Verbindung über IPv6 auf einigen Servern dazu führt, dass sie an diesem Punkt hängen bleiben. Das Update ist wirklich einfach.

Öffne /etc/gai.conf

Unter der Linie

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

Kommentieren Sie die folgende Zeile aus, indem Sie das entfernen #:

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

Auf diese Weise können Sie weiterhin IPv6 verwenden, aber IPv4 als Priorität festlegen, damit apt-get nicht hängen bleibt.


16
Vielen Dank! Diese Antwort ist viel besser, als nur ipv6 sklavisch zu deaktivieren.
Cyrusmith

2
Wenn Sie damit kein Glück haben, versuchen Sie Folgendes
Gauthier

1
OMG das hat so viel geholfen!
GaTechThomas

4
Hinweis: Dies gilt weiterhin für die LTS-Versionen 14.04 und 16.04
Elder Geek,

1
Arbeitete für mich unter Linux Mint 18.1 & 18.2. Dies sollte Standard sein.
mat

23

Die IPv6-Einstellungen für das Netzwerk wurden ignoriert, das Deaktivieren von IPv6 über /etc/sysctl.conffunktionierte jedoch:

Fügen Sie die folgenden Zeilen am Ende von hinzu /etc/sysctl.conf:

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

Führen Sie aus sudo sysctl -p, um die /etc/sysctl.confEinstellungen neu zu laden .


6
So solltest du es nicht machen. Diese Leitungen bedeuten, dass Sie nach dem Herstellen einer Verbindung zu einem Netzwerk mit IPv6 eine weniger zuverlässige Verbindung erhalten als erwartet. Außerdem beheben diese Zeilen nicht die Grundursache Ihres Problems, die Sie noch nicht einmal identifiziert haben.
Kasperd

Ich brauche nirgendwo IPv6, das funktioniert also einwandfrei.
Pabi

4
Das ist einfach albern, denn für das Herstellen einer Verbindung zu Hosts im selben Netzwerksegment bieten IPv6-Link-Local-Adressen im Vergleich zu IPv4 mehrere Vorteile.
Kasperd

1
Kann das nicht von meinem Telefon aus machen;) Lass uns einfach zustimmen, dass wir nicht einverstanden sind.
Pabi

4
Mach was du machen willst. Ich möchte nur darauf hinweisen, dass jeder andere, der auf dasselbe Problem stößt, weiß, dass das Vornehmen der vorgeschlagenen Änderungen sysctl.confletztendlich Probleme verursachen wird.
Kasperd

15

Ein besserer Ansatz ist, apt-get wie folgt zu verwenden, anstatt die Datei gai.conf zu bearbeiten.

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

Wenn Sie dies dauerhaft machen möchten, fügen Sie einfach einen Alias ​​für 'apt-get' in Ihre Bash-Datei ein.


Aber würde dies nicht Verbindungen herstellen, bei denen es sich ausschließlich um IPv6-Verbindungen handelt?
Metame

@metame das ist der springende Punkt. Laut OP ist sein IPv6 deaktiviert, und der Versuch, es zu verwenden, verursacht Probleme.
Francesco Dondi

0

Andere Lösungen haben nicht geholfen ... in meinem Fall habe ich eine aws ec2-Instanz mit Ubuntu 18.04 erstellt

Auto-assign Public IP -> no pick disable

nachdem ich alle vorgeschlagenen lösungen ausprobiert hatte, warf ich meine hände hoch und tötete das und erstellte eine neue ec2-instanz mit

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

und es hat gut funktioniert ... apt-get update && apt-get upgradebin jetzt glücklich

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.