O ISP em que trabalho está configurando uma rede IPv6 interna em preparação para, eventualmente, conectar-se à Internet IPv6. Como resultado, vários servidores nesta rede agora tentam se conectar ao security.debian.org por meio do endereço IPv6 por padrão durante a execução apt-get update
, e isso resulta em ter que esperar um longo tempo de espera sempre que estou baixando atualizações de qualquer tipo .
Existe uma maneira de dizer ao apt que prefere o IPv4 ou ignora completamente o IPv6?
/etc/gai.conf
de forma quesecurity.debian.org
é um registro são devolvidos antes do registro AAA, mas eu não sei exatamente o que colocar no arquivo.Respostas:
Adicionar
-o Acquire::ForceIPv4=true
ao executarapt-get
.Se você quiser tornar a configuração persistente, basta criar /etc/apt/apt.conf.d/99force-ipv4 e colocar
Acquire::ForceIPv4 "true";
nela:Opções de configuração
Acquire::ForceIPv4
eAcquire::ForceIPv6
foram adicionadas à versão 0.9.7.9 ~ exp1 (consulte o bug 611891 ), disponível desde o Ubuntu Saucy (lançado em outubro de 2013) e Debian Jessie (lançado em abril de 2015).fonte
apt.conf
você precisa escrevê-lo assim:Acquire::ForceIPv4 "true";
(com aspas duplas)sudo echo 'test' > file
não iria funcionar porque o redirecionamento é executado com as permissões do usuárioComo Gilles diz , use
gai.conf
. Notas:getaddrinfo
.gai.conf
, você deve fazer o backup e também ler (não se preocupe, é breve). As edições abaixo provavelmente já foram mencionadas no seu arquivo atual; se o arquivo atual indicar algo diferente do mencionado abaixo, você provavelmente deve preferir o que está no seu arquivo atual.Mas se é isso que você deseja (o que provavelmente é), vamos prosseguir. Digamos que temos dois hosts
www.he.net
ewww.ripe.net
:Caso 1: prefira IPV4 para todos os hosts
Anexe à
/etc/gai.conf
seguinte linha:Depois de salvar o arquivo editado (não é necessário reiniciar), você verá aplicativos de rede (por exemplo,
telnet
) usando IPV4: por exemplo,Caso 2: prefira o IPV6 para hosts específicos
Se quisermos preferir o IPV6 apenas para
www.he.net
ou sua rede, podemos anexar uma máscara / prefixo para todos, ou apenas parte do seu endereço IPV6/etc/gai.conf
. Por exemplo, a seguinte linha:(depois de salvar o arquivo editado) produz
Caso 3: prefira IPV4 para hosts específicos
Se invertermos a máscara, o inverso será verdadeiro? De acordo com @GrueMaster, anexando
trabalhou para ele depois de desativar o IPV6 para
security.ubuntu.com
(caso contrário, ele fica para sempre).Veja também:
fonte
#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
Adicionei 2 linhas ao meu /etc/gai.conf e o apt-get update funciona perfeito agora.Você pode configurar o apt-cacher-ng em uma máquina sobressalente para atuar como proxy / cache para todos os seus hosts. Você pode forçar a configuração a usar apenas hosts específicos ou usar o truque / etc / hosts sugerido por @badp nessa máquina.
Depois de ter configurado o apt-cache-ng, você só precisa soltar a seguinte linha (com o endereço IP / nome do host alterado para apontar para a sua máquina cacher) em /etc/apt/apt.aptf.d/90httpproxy
Eu uso essa configuração para reduzir o uso da largura de banda, mas deve solucionar o seu problema. Infelizmente, não conheço uma maneira de desabilitar diretamente as pesquisas do ipv6 para o apt-get.
fonte
Você pode contornar isso configurando um servidor proxy DNS que descarte as respostas ip6.
fonte
Que tal adicionar uma linha para
/etc/hosts
substituir os endereços relevantes? por exemplo,fonte
/etc/hosts
com endereços IP não me possui.Seqüestrando tópico antigo, mas confrontado com o mesmo problema recentemente. Portanto, com base nos conselhos fornecidos acima e na saída de host e whois :
Problema resolvido de uma maneira um pouco diferente - reduziu a precedência das redes IPv6 que contêm security.debian.org em /etc/gai.conf :
Portanto, o IPv6 ainda é o preferido, exceto pelo security.debian.org .
fonte
Em 08 de outubro de 2014, tive o mesmo problema, tentando atualizar o debian atrás de um proxy na rede local. Na esperança de que seja relevante para os outros, posto aqui a minha resposta. Como outros já mencionaram, a edição
/etc/hosts
é algo com o qual devemos ter cuidado.Mas, pessoalmente, eu só queria que a atualização fosse feita.
Conteúdo de /etc/apt/sources.list ao fazer a atualização (era diferente antes da atualização ..):
Conteúdo do /etc/apt/apt.conf:
Adição ao / etc / hosts:
Agora, rodar
apt-get update ; apt-get upgrade
como root funcionou bem.Conforme mencionado em outras respostas, use, execute o comando host no domínio para obter o ip correto para inserir no arquivo hosts.
Exemplo:
Isso atualizou com êxito o sistema para
Debian GNU/Linux testing (jessie)
. Você pode não querer executar com os repositórios de teste e simplesmente removê-lo das fontes. Os repositórios de teste oferecem atualizações mais recentes de vários pacotes, mas não são considerados estáveis.fonte
hosts
arquivo é uma solução altamente subótima.Eu encontrei uma maneira muito melhor de fazer isso. Abra seu
sources.list
arquivo e anote os nomes de host dos repositórios. Obtenha os endereços IPv4 e editesources.list
com os endereços IPv4 em vez dos nomes de host. Agora o Apt-get deve entrar em contato com os repositórios pelos endereços IPv4 que você especificou, ignorando o IPv6.Existe a desvantagem de que os repositórios geralmente têm algum tipo de balanceamento de carga e / ou localização geográfica de IP configurada, que esse método obviamente evita. No entanto, não importa se apenas algumas pessoas estão fazendo isso. Se você encontrar um espelho lento, tente obter outro endereço IP de repositório (por exemplo, usando um serviço de ping online) e use-o.
fonte
Você pode tentar isso se funcionar para você
-> substitua o nome da sua interface
fonte