apt-get update bloccato su "Waiting for Headers" quando si utilizza Windows XP ICS


13

Sto configurando un server Maverick su un PC di riserva. L'installazione si completa correttamente e il sistema si avvia nella shell. Tuttavia, quando provo a fare un apt-get update, apt si blocca su quasi ogni voce con il messaggio a 99% [Waiting for headers]volte 96 b/sappare un messaggio di all'estrema destra. Anche la percentuale effettiva che afferma varia.

Cercando in giro online ha dato una potenziale soluzione utilizzando l'opzione di Acquire::http::Pipeline-Depth="0"questo in qualche modo allevia il problema, cioè bancarelle su ogni altra voce con lo stesso messaggio di cui sopra.

Se lo aspetti (l'intero aggiornamento è durato circa 4 ore), l'aggiornamento ha comunque esito negativo poiché una buona parte degli hit mostra un messaggio "impossibile connettersi" o simile, nonostante il fatto che posso eseguire il ping del server dal PC solo bene.

Il problema non ha nulla a che vedere con il mirror utilizzato poiché ho provato una dozzina di mirror senza successo, ho anche provato a commentare tutto tranne la mainvoce in sources.list e si rifiuta ancora di aggiornare.

La connessione di rete va bene dato che posso fare ping e wget (apt non mi permette di installare lynx fino a quando non eseguo un aggiornamento riuscito). Ho anche reinstallato la distribuzione senza fortuna.

L'unica cosa strana della configurazione è che il PC si sta connettendo a Internet tramite il mio laptop Windows con ICS configurato correttamente, ma come ho detto prima, la connessione di rete va bene.


Prova a eseguire i seguenti comandi nel tuo terminale sudo dpkg --configure -aesudo apt-get update && sudo apt-get upgrade
karthick87

Una connessione tramite ICS suona come un problema in attesa di accadere, soprattutto se uno dei collegamenti è WiFi. È possibile connettersi più direttamente?
risposta

@msw non è attualmente, ma avevo l'impressione che ICS fosse solo l'equivalente dell'inoltro di iptables per Linux, quali problemi potrebbe davvero causare? Supponendo che funzioni bene altrimenti (cosa che è).
crasic

Ho poca esperienza con ICS perché non l'ho mai pensato abbastanza robusto per qualsiasi scopo, e dato il scarso accesso amministrativo (di debug) a tutto il supporto di rete di Microsoft, ho pensato che avrebbe portato mal di testa. La tua esperienza di seguito sembra confermare un po 'la mia ipotesi.
msw,

Risposte:


9

Sembra esserci un problema fondamentale con l'implementazione di ICS e IP forwarding in generale su Windows XP che semplicemente non è in grado di gestire più connessioni allo stesso server, forse è una strana combinazione di un bug con incompetenza intenzionale (come mi piace chiamarlo) , ma il risultato finale è che XP non può funzionare come un router / proxy competente per un sistema Linux (forse le limitazioni sono intenzionalmente messe in atto per i sistemi non Windows).

È interessante notare che questo non è solo limitato a ICS. Esiste un'opzione nascosta nel registro di Windows che consente l'inoltro IP per le interfacce di rete e presenta lo stesso problema.

L'unica soluzione, a quanto pare, è quella di modificare la topologia di rete per evitare di utilizzare ICS (connettendosi direttamente o acquistando uno switch / punto di accesso dedicato) o di utilizzare un sistema operativo diverso per configurare il bridge temporaneo. Ho usato un cd live di Ubuntu (non era il mio computer o sarebbe stato in esecuzione un po '* nix per cominciare) e ho abilitato l'inoltro di pacchetti e l'IP masquerading in modo che il computer si comportasse come un router in buona fede.


3

Ci sono alcune voci nel web (non riesco a verificarle) sui problemi ICS con IP6. Hanno detto che quando ICS riceve più di una connessione IP6 si ferma per un po '. Questo potrebbe spiegare perché wget funziona (solo una connessione) e l'aggiornamento apt-get fallisce (molte connessioni simultanee).

Puoi provare a disabilitare IP6 nel tuo server per verificare se questo è il problema.

È possibile disabilitare IP6 dal terminale con:

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

Quindi riavviare e verificare se è possibile aggiornare. Se funziona almeno sai dove si trova il problema. È possibile disabilitare IP6 permanente o pianificare una nuova configurazione. Si noti che la disabilitazione di IP6 sarà un hack temporale, IP6 sembra inevitabile nel prossimo futuro.

Per abilitare nuovamente IP6, eliminare le righe precedenti da /etc/sysctl.conf e riavviare.


ICS sembra essere il colpevole qui, tuttavia il tuo suggerimento non è stato risolto. Dopo aver collegato direttamente il computer, tutto ha funzionato come previsto. Ora che ho i repository aggiornati, non posso nemmeno fare un apt-get installpassaggio attraverso l'ICS ... hmmm.
crasic

Forse ICS ha un problema con un numero elevato (o forse modesto) di connessioni simultanee allo stesso server.
Javier Rivera,

È dont necessario il riavvio: dopo aver modificato sysctl.conf, tipo sysctl -ae si sta bene ad andare. puoi anche ridurre la digitazione usando un documento qui invece di eseguire continuamente il piping da echo.
Mei,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.