Der ISP, bei dem ich arbeite, richtet ein internes IPv6-Netzwerk ein, um eine Verbindung zum IPv6-Internet herzustellen. Infolgedessen versuchen mehrere Server in diesem Netzwerk jetzt, während der Ausführung standardmäßig über ihre IPv6-Adresse eine Verbindung zu security.debian.org herzustellen. Daher muss beim apt-get update
Herunterladen von Updates jeder Art eine längere Zeit abgewartet werden .
Gibt es eine Möglichkeit, apt mitzuteilen, IPv4 zu bevorzugen oder IPv6 insgesamt zu ignorieren?
/etc/gai.conf
so einzurichten, dass siesecurity.debian.org
vor dem AAA-Eintrag zurückgegeben werden, aber ich weiß nicht genau, was ich in diese Datei einfügen soll.Antworten:
-o Acquire::ForceIPv4=true
Beim Laufen hinzufügenapt-get
.Wenn Sie die Einstellung dauerhaft machen möchten, erstellen Sie einfach /etc/apt/apt.conf.d/99force-ipv4 und geben Sie
Acquire::ForceIPv4 "true";
es ein:Konfigurationsoptionen
Acquire::ForceIPv4
undAcquire::ForceIPv6
wurden zu Version 0.9.7.9 ~ exp1 (siehe Fehler 611891 ) hinzugefügt, die seit Ubuntu Saucy (veröffentlicht im Oktober 2013) und Debian Jessie (veröffentlicht im April 2015) verfügbar ist.quelle
apt.conf
, müssen Sie es so schreiben:Acquire::ForceIPv4 "true";
(mit doppelten Anführungszeichen)sudo echo 'test' > file
würde nicht funktionieren, da die Umleitung mit den Benutzerberechtigungen ausgeführt wirdWie Gilles sagt , benutze
gai.conf
. Anmerkungen:getaddrinfo
.gai.conf
, sollten Sie sie sichern und auch lesen (keine Sorge, sie ist kurz). Die folgenden Änderungen sind wahrscheinlich bereits in Ihrer aktuellen Datei erwähnt. Wenn die aktuelle Datei etwas anderes anzeigt als das, was unten angegeben ist, sollten Sie wahrscheinlich den Inhalt Ihrer aktuellen Datei bevorzugen.Aber wenn es das ist, was Sie wollen (was es wahrscheinlich ist), lassen Sie uns fortfahren. Angenommen, wir haben zwei Gastgeber
www.he.net
undwww.ripe.net
:Fall 1: Bevorzugen Sie IPV4 für alle Hosts
An
/etc/gai.conf
folgende Zeile anhängen :Nach dem Speichern der bearbeiteten Datei (kein Neustart erforderlich) sollten Netzwerkanwendungen (z. B.
telnet
) mit IPV4 angezeigt werden: z.Fall 2: Bevorzugen Sie IPV6 für bestimmte Hosts
Wenn wir IPV6 nur für
www.he.net
oder sein Netzwerk bevorzugen möchten , können wir eine Maske / ein Präfix für alle oder nur einen Teil seiner IPV6-Adresse anhängen/etc/gai.conf
. ZB die folgende Zeile:(nach dem Speichern der bearbeiteten Datei) erzeugt
Fall 3: Bevorzugen Sie IPV4 für bestimmte Hosts
Wenn wir die Maske umkehren, ist das Gegenteil der Fall? Laut @GrueMaster, anhängend
arbeitete für ihn nach der Deaktivierung von IPV6 für
security.ubuntu.com
(sonst bleibt es für immer).Siehe auch:
quelle
#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
habe meiner /etc/gai.conf 2 Zeilen hinzugefügt und apt-get update funktioniert jetzt perfekt.Sie können apt-cacher-ng auf einem Ersatzcomputer einrichten, um als Proxy / Cache für alle Ihre Hosts zu fungieren. Sie können die Konfiguration zwingen, nur bestimmte Hosts zu verwenden, oder den von @badp vorgeschlagenen / etc / hosts-Trick auf diesem einen Computer anwenden.
Sobald Sie apt-cache-ng eingerichtet haben, müssen Sie nur die folgende Zeile (mit geänderter IP-Adresse / geändertem Hostnamen, um auf Ihren Cacher-Computer zu zeigen) in /etc/apt/apt.conf.d/90httpproxy einfügen
Ich benutze dieses Setup, um die Bandbreitennutzung zu reduzieren, aber es sollte Ihr Problem umgehen. Leider ist mir keine Möglichkeit bekannt, IPv6-Lookups für apt-get selbst direkt zu deaktivieren.
quelle
Sie können dies umgehen, indem Sie einen DNS-Proxyserver einrichten, der IP6-Antworten verwirft.
quelle
Wie wäre es mit dem Hinzufügen einer Zeile zum
/etc/hosts
Überschreiben der relevanten Adressen? z.B,quelle
/etc/hosts
mit IP-Adressen zu wuseln, die ich selbst nicht besitze.Hijacking altes Thema, aber vor kurzem mit dem gleichen Problem konfrontiert. Also, basierend auf den oben gegebenen Ratschlägen und der Ausgabe von host und whois :
Das Problem wurde auf eine etwas andere Art gelöst - die Priorität der IPv6-Netzwerke, die security.debian.org in /etc/gai.conf enthalten, wurde verringert :
Daher wird IPv6 mit Ausnahme von security.debian.org weiterhin bevorzugt .
quelle
Ab dem 08. Oktober 2014 hatte ich das gleiche Problem, als ich versuchte, Debian hinter einem Proxy im lokalen Netzwerk zu aktualisieren. In der Hoffnung, dass es für andere relevant ist, poste ich meine Antwort hier. Wie andere bereits erwähnt haben, ist das Bearbeiten
/etc/hosts
etwas, mit dem man vorsichtig sein sollte.Aber ich persönlich wollte nur das Update haben.
Inhalt von /etc/apt/sources.list beim Update (war vor dem Update anders ..):
Inhalt von /etc/apt/apt.conf:
Ergänzung zu / etc / hosts:
Jetzt hat es
apt-get update ; apt-get upgrade
gut funktioniert , als root zu laufen .Verwenden Sie, wie in anderen Antworten erwähnt, den Befehl host in der Domäne, um die richtige IP-Adresse zum Einfügen in die Datei hosts abzurufen.
Beispiel:
Dadurch wurde das System erfolgreich auf aktualisiert
Debian GNU/Linux testing (jessie)
. Möglicherweise möchten Sie nicht mit den Test-Repositorys ausgeführt werden, sondern diese einfach aus den Quellen entfernen. Das Test-Repository bietet Ihnen aktuellere Aktualisierungen mehrerer Pakete, wird jedoch nicht als stabil angesehen.quelle
hosts
Datei eine höchst suboptimale Lösung.Ich habe einen viel besseren Weg gefunden, dies zu tun. Öffnen Sie Ihre
sources.list
Datei und notieren Sie sich die Hostnamen der Repos. Rufen Sie ihre IPv4- Adressen ab und bearbeiten Sie siesources.list
mit den IPv4-Adressen und nicht mit den Hostnamen. Apt-get sollte sich nun über die von Ihnen angegebenen IPv4-Adressen mit den Repositorys in Verbindung setzen und IPv6 umgehen.Es gibt den Nachteil, dass Repos normalerweise eine Art von Lastausgleich und / oder IP-Geolokalisierung haben, die diese Methode natürlich umgeht. Es sollte jedoch keine Rolle spielen, wenn nur ein paar Leute es tun. Wenn Sie feststellen, dass ein Spiegel langsam ist, versuchen Sie, eine andere Repo-IP-Adresse abzurufen (z. B. mithilfe eines Online-Ping-Dienstes), und verwenden Sie diese.
quelle
Sie können dies versuchen, wenn es für Sie funktioniert
-> ersetzen Sie Ihren Schnittstellennamen
quelle