apt-get update bleibt bei Verwendung von Windows XP ICS bei "Warten auf Header" hängen

13

Ich richte einen Maverick-Server auf einem Ersatz-PC ein. Die Installation ist abgeschlossen und das System startet in der Shell. Wenn ich jedoch versuche, a zu tun apt-get update, hängt apt an fast jedem Eintrag mit der Nachricht, 99% [Waiting for headers]manchmal erscheint eine Nachricht von 96 b/sganz rechts. Der tatsächliche Prozentsatz, den es behauptet, variiert ebenfalls.

Die Suche ergab rund um Online eine mögliche Lösung mit der Option Acquire::http::Pipeline-Depth="0"diese etwas das Problem mildert, dh es auf jedem anderen Eintrag mit der gleichen Botschaft Stände wie oben.

Wenn Sie abwarten (das gesamte Update dauerte ca. 4 Stunden), schlägt das Update immer noch fehl, da ein Großteil der Treffer die Meldung "Verbindung nicht möglich" oder ähnliches anzeigt, obwohl ich den Server nur vom PC aus anpingen kann fein.

Das Problem hat auch nichts mit dem verwendeten Spiegel zu tun, da ich ungefähr ein Dutzend Spiegel ohne Erfolg ausprobiert habe. Ich habe sogar versucht, alles außer dem mainEintrag in der sources.list auszukommentieren, und es lehnt immer noch die Aktualisierung ab.

Die Netzwerkverbindung ist in Ordnung, da ich pingen und wget kann (apt lässt mich nicht lynx installieren, bis ich ein erfolgreiches Update ausgeführt habe). Ich habe auch die Distribution ohne Glück neu installiert.

Das einzige seltsame an der Einrichtung ist, dass der PC über meinen Windows-Laptop eine Verbindung zum Internet herstellt, wobei ICS ordnungsgemäß konfiguriert ist. Wie ich bereits sagte, ist die Netzwerkverbindung in Ordnung.

crasic
quelle
Versuchen Sie, die folgenden Befehle in Ihrem Terminal sudo dpkg --configure -aundsudo apt-get update && sudo apt-get upgrade
karthick87
Eine Verbindung über ICS klingt wie ein Problem, auf das man warten muss, besonders wenn eine der Verbindungen über WLAN besteht. Ist es möglich, direkter zu verbinden?
msw
@msw derzeit nicht, aber ich hatte den Eindruck, dass ICS nur das Äquivalent von Iptables-Weiterleitung für Linux ist. Welche Probleme könnte es wirklich verursachen? Unter der Annahme, dass es ansonsten gut funktioniert (was es ist).
Crasic
Ich habe wenig Erfahrung mit ICS, weil ich es nie für robust genug gehalten habe und angesichts des schlechten administrativen (Debug-) Zugriffs auf die gesamte Microsoft-Netzwerkunterstützung angenommen habe, dass es Kopfschmerzen verursachen würde. Ihre Erfahrungen unten scheinen meine Vermutung ein wenig zu bestätigen.
msw

Antworten:

9

Es scheint ein grundlegendes Problem bei der Implementierung von ICS und IP-Weiterleitung unter Windows XP zu geben. Es kann einfach nicht mit mehreren Verbindungen zum gleichen Server umgehen. Das Endergebnis ist jedoch, dass XP nicht als kompetenter Router / Proxy für ein Linux-System fungieren kann (möglicherweise wurden die Einschränkungen absichtlich für Nicht-Windows-Systeme eingeführt).

Es ist interessant festzustellen, dass dies nicht nur auf ICS beschränkt ist. Es gibt eine versteckte Option in der Windows-Registrierung, die die IP-Weiterleitung für Netzwerkschnittstellen ermöglicht und unter demselben Problem leidet.

Die einzige Lösung - so scheint es - besteht darin, entweder die Netzwerktopologie zu ändern, um die Verwendung von ICS zu vermeiden (entweder eine direkte Verbindung herzustellen oder einen dedizierten Switch / Access Point zu kaufen), oder ein anderes Betriebssystem zum Einrichten der temporären Brücke zu verwenden. Ich habe eine Ubuntu-Live-CD verwendet (es war nicht mein Computer, oder es hätte anfangs ein wenig * nix ausgeführt) und die Paketweiterleitung und IP-Maskierung aktiviert, damit der Computer sich wie ein echter Router verhält.

crasic
quelle
3

Es gibt einige Gerüchte im Internet (ich kann sie nicht verifizieren) über ICS-Probleme mit IP6. Sie sagten, wenn ICS mehr als eine IP6-Verbindung empfängt, wird sie für eine Weile unterbrochen. Dies könnte erklären, warum wget funktioniert (nur eine Verbindung) und apt-get update fehlschlägt (viele gleichzeitige Verbindungen).

Sie können versuchen, IP6 auf Ihrem Server zu deaktivieren, um zu testen, ob dies das Problem ist.

Sie können IP6 vom Terminal aus deaktivieren mit:

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

Starten Sie dann neu und prüfen Sie, ob Sie ein Update durchführen können. Wenn es zumindest funktioniert, wissen Sie, wo das Problem liegt. Sie können entweder IP6 permanent deaktivieren oder ein neues Setup planen. Beachten Sie, dass die Deaktivierung von IP6 ein vorübergehender Hack sein wird. IP6 scheint in naher Zukunft unvermeidbar zu sein.

Um IP6 wieder zu aktivieren, löschen Sie die vorherigen Zeilen aus /etc/sysctl.conf und starten Sie neu.

Javier Rivera
quelle
ICS scheint hier der Schuldige zu sein, aber Ihr Vorschlag hat es nicht geschafft. Nach der Verkabelung des Computers funktionierte alles wie erwartet. Jetzt, da ich die Repositories aktualisiert habe, kann ich nicht einmal mehr apt-get installüber das ICS ... hmmm.
Crasic
Möglicherweise hat ICS ein Problem mit einer großen (oder möglicherweise bescheidenen) Anzahl gleichzeitiger Verbindungen zu demselben Server.
Javier Rivera
Sie Dont zu Neustart müssen: nach sysctl.conf, geben Sie Modifizieren sysctl -aund du bist gut zu gehen. Sie können die Eingabe auch reduzieren, indem Sie ein Here-Dokument verwenden, anstatt die ganze Zeit über vom Echo abzuleiten.
Mei