La actualización de apt-get se atascó en "Esperando encabezados" cuando se usa Windows XP ICS

13

Estoy configurando un servidor Maverick en una PC de repuesto. La instalación se completa bien y el sistema se inicia en el shell. Sin embargo, cuando trato de hacer un apt-get update, apt cuelga en casi todas las entradas con el mensaje, a 99% [Waiting for headers]veces 96 b/saparece un mensaje de en el extremo derecho. El porcentaje real que afirma también varía.

Buscando en línea dio una posible solución mediante el uso de la opción Acquire::http::Pipeline-Depth="0"esta un tanto alivia el problema, es decir, que se ahogue en cada otra entrada con el mismo mensaje que el anterior.

Si lo espera (toda la actualización tardó aproximadamente 4 horas), la actualización aún falla ya que una buena parte de los resultados muestran un mensaje de "no se puede conectar" o similar, a pesar de que puedo hacer ping al servidor desde la PC solo multa.

El problema tampoco está relacionado con el espejo utilizado, ya que probé una docena de espejos sin éxito, incluso intenté comentar todo menos la mainentrada en sources.list y aún se niega a actualizarse.

La conexión de red está bien, ya que puedo hacer ping y wget (apt no me permite instalar lynx hasta que ejecute una actualización exitosa). También he reinstalado la distribución sin suerte.

Lo único extraño de la configuración es que la PC se conecta a Internet a través de mi computadora portátil con Windows con ICS configurado correctamente, pero como he dicho antes, la conexión de red está bien.

crasico
fuente
Intente ejecutar los siguientes comandos en su terminal sudo dpkg --configure -aysudo apt-get update && sudo apt-get upgrade
karthick87
Una conexión a través de ICS parece problemas para esperar, especialmente si uno de los enlaces es WiFi. ¿Es posible conectarse más directamente?
msw
@msw no actualmente, pero tenía la impresión de que ICS es solo el equivalente del reenvío de iptables para Linux, ¿qué problemas podría causar realmente? Asumiendo que está funcionando bien de lo contrario (que es).
crasic
Tengo poca experiencia con ICS porque nunca pensé que fuera lo suficientemente robusto para ningún propósito, y dado el pobre acceso administrativo (depuración) a todo el soporte de redes de Microsoft, he asumido que traería dolores de cabeza. Su experiencia a continuación parece confirmar un poco mi suposición.
msw

Respuestas:

9

Parece que hay un problema fundamental con la implementación de ICS y el reenvío de IP en general en Windows XP, simplemente no puede manejar múltiples conexiones al mismo servidor, tal vez sea una combinación extraña de un error con incompetencia intencional (como me gusta llamarlo) , pero el resultado final es que XP no puede funcionar como un enrutador / proxy competente para un sistema Linux (tal vez las limitaciones se establecen intencionalmente para sistemas que no son Windows).

Es interesante observar que esto no solo se limita a ICS. Hay una opción oculta en el registro de Windows que permite el reenvío de IP para las interfaces de red y tiene el mismo problema.

Parece que la única solución es cambiar la topología de la red para evitar el uso de ICS (ya sea conectarse directamente o comprar un conmutador / punto de acceso dedicado), o utilizar un sistema operativo diferente para configurar el puente temporal. Utilicé un ubuntu live-cd (para empezar no era mi computadora o habría estado ejecutando * nix) y habilité el reenvío de paquetes y el enmascaramiento de ip para que la computadora se comporte como un enrutador de buena fe.

crasico
fuente
3

Hay algunos rumores en la web (no puedo verificarlos) sobre los problemas de ICS con IP6. Dijeron que cuando ICS recibe más de una conexión IP6, se detiene por un tiempo. Esto podría explicar por qué funciona wget (solo una conexión) y falla la actualización de apt-get (muchas conexiones simultáneas).

Puede intentar deshabilitar IP6 en su servidor para probar si este es el problema.

Puede deshabilitar IP6 desde el terminal 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

Luego reinicie y verifique si puede actualizar. Si funciona, al menos sabes dónde está el problema. Puede deshabilitar IP6 permanente o planificar una nueva configuración. Tenga en cuenta que la desactivación de IP6 será un hack temporal, IP6 parece inevitable en el futuro cercano.

Para volver a habilitar IP6, elimine las líneas anteriores de /etc/sysctl.conf y reinicie.

Javier Rivera
fuente
ICS parece ser el culpable aquí, sin embargo, su sugerencia no lo solucionó. Después de conectar la computadora directamente, todo funcionó como se esperaba. Ahora que tengo los repositorios actualizados, ni siquiera puedo hacerlo a apt-get installtravés del ICS ... hmmm.
crasic
Tal vez ICS tenga un problema con una gran cantidad (o quizás modesta) de conexiones simultáneas al mismo servidor.
Javier Rivera
Usted dont tiene que reiniciar el sistema: después de modificar sysctl.conf, el tipo sysctl -ay ya está bueno para ir. También puede reducir la escritura utilizando un documento aquí en lugar de tuberías de eco todo el tiempo.
Mei