Atualização do apt-get bloqueada em “Aguardando Cabeçalhos” ao usar o Windows XP ICS

13

Estou configurando um servidor Maverick em um PC sobressalente. A instalação é concluída e o sistema é inicializado no shell. No entanto, quando tento fazer um apt-get update, o apt trava em quase todas as entradas com a mensagem, 99% [Waiting for headers]às vezes uma mensagem 96 b/saparece na extrema direita. A porcentagem real que afirma também varia.

Pesquisando em torno on-line deu uma solução potencial usando a opção Acquire::http::Pipeline-Depth="0"este pouco alivia o problema, ou seja, barracas em todos os outros entrada com a mesma mensagem como acima.

Se você esperar (a atualização inteira demorou cerca de 4 horas), a atualização ainda falha, pois boa parte dos hits mostra uma mensagem "incapaz de conectar" ou semelhante, apesar do fato de que eu posso executar ping no servidor a partir do PC. bem.

O problema também não tem relação com o espelho usado, já que tentei cerca de uma dúzia de espelhos sem sucesso, tentei comentar tudo, menos a mainentrada em sources.list, e ela ainda se recusa a atualizar.

A conexão de rede está correta, pois consigo executar o ping e o wget (o apt não me permite instalar o lynx até executar uma atualização bem-sucedida). Também reinstalei a distribuição sem sorte.

A única coisa estranha na configuração é que o PC está se conectando à Internet através do meu laptop Windows com o ICS configurado corretamente, mas como eu disse antes, a conexão de rede está correta.

crasic
fonte
Tente executar os seguintes comandos no seu terminal sudo dpkg --configure -aesudo apt-get update && sudo apt-get upgrade
karthick87
Uma conexão via ICS parece um problema esperando para acontecer, especialmente se um dos links for WiFi. É possível conectar-se mais diretamente?
msw
@msw não atualmente, mas fiquei com a impressão de que o ICS é apenas o equivalente ao encaminhamento de iptables para linux, que problemas isso realmente poderia causar? Supondo que ele esteja funcionando bem de outra forma (qual é).
crasic
Tenho pouca experiência com o ICS porque nunca o achei robusto o suficiente para qualquer finalidade e, devido ao pouco acesso administrativo (depuração) a todo o suporte de rede da Microsoft, presumimos que isso traria dores de cabeça. Sua experiência abaixo parece confirmar um pouco minha suposição.
msw

Respostas:

9

Parece haver um problema fundamental com a implementação do encaminhamento de ICS e IP em geral no Windows XP, ele simplesmente não pode lidar com várias conexões com o mesmo servidor, talvez seja uma combinação estranha de um bug com incompetência intencional (como eu gosto de chamar) , mas o resultado final é que o XP não pode funcionar como um roteador / proxy competente para um sistema Linux (talvez as limitações sejam intencionalmente implementadas para sistemas não Windows).

É interessante notar que isso não se limita apenas ao ICS. Há uma opção oculta no registro do Windows que permite o encaminhamento de IP para interfaces de rede e sofre o mesmo problema.

A única solução - ao que parece - é alterar a topologia da rede para evitar o uso do ICS (conectar-se diretamente ou comprar um switch / ponto de acesso dedicado) ou usar um sistema operacional diferente para configurar a ponte temporária. Eu usei um live-cd do ubuntu (não era meu computador ou estaria executando alguns * nix para começar) e habilitei o encaminhamento de pacotes e o mascaramento de ip para que o computador se comporte como um roteador de boa-fé.

crasic
fonte
3

Existem alguns rumores na web (não os posso verificar) sobre problemas de ICS no IP6. Eles disseram que quando o ICS recebe mais de uma conexão IP6, ele pára por um tempo. Isso pode explicar por que o wget funciona (apenas uma conexão) e a atualização do apt-get falha (muitas conexões simultâneas).

Você pode tentar desativar o IP6 no servidor para testar se esse é o problema.

Você pode desativar o IP6 do terminal com:

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

Em seguida, reinicie e verifique se você pode atualizar. Se funcionar, pelo menos, você sabe onde está o problema. Você pode desativar o IP6 permanente ou planejar uma nova configuração. Observe que a desativação do IP6 será um corte temporal; o IP6 parece inevitável no futuro próximo.

Para ativar o IP6 de volta, exclua as linhas anteriores do /etc/sysctl.conf e reinicie.

Javier Rivera
fonte
O ICS parece ser o culpado aqui, mas sua sugestão não foi corrigida. Depois de conectar o computador diretamente, tudo funcionou conforme o esperado. Agora que tenho os repositórios atualizados, não posso nem fazer um apt-get installICS ... hmmm.
crasic
Talvez o ICS tenha um problema com um número grande (ou talvez modesto) de conexões simultâneas com o mesmo servidor.
Javier Rivera
Você não precisa reiniciar: após modificar o sysctl.conf, digite sysctl -ae você estará pronto . você também pode reduzir a digitação usando um documento aqui em vez de canalizar o eco o tempo todo.
Mei