atualização do apt-get travada: Conectando ao security.ubuntu.com

79

Quando executo apt-get updateminha máquina, ela fica presa em:

100% [Connecting to security.ubuntu.com (2001:67c:1562::15)] [Connecting to archive.canonical.com (2001:67c:1360:8c01::16)]

Não fiz alterações recentes no sistema e usei minha rede doméstica que funcionava bem anteriormente.

Não sei explicar por que ele mudou para o IPv6.
Eu tenho o IPv6 definido ignorepara a rede sem fio:

insira a descrição da imagem aqui

Saída de ip addr:

1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default 
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
   valid_lft forever preferred_lft forever
inet6 ::1/128 scope host 
   valid_lft forever preferred_lft forever
2: mlan0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
link/ether 4c:0b:be:22:0a:b4 brd ff:ff:ff:ff:ff:ff
inet 192.168.2.106/24 brd 192.168.2.255 scope global dynamic mlan0
   valid_lft 1814086sec preferred_lft 1814086sec
inet6 ::d5:b551:28db:2789:225/64 scope global temporary dynamic 
   valid_lft 604483sec preferred_lft 85483sec
inet6 ::d5:4e0b:beff:fe22:ab4/64 scope global mngtmpaddr dynamic 
   valid_lft 604779sec preferred_lft 86379sec
inet6 fe80::4e0b:beff:fe22:ab4/64 scope link 
   valid_lft forever preferred_lft forever
Pabi
fonte
Alterar o endereçamento IP para IPv4 e tente novamente ..
heemayl
Por que você está usando IPv6? Como heemayl disse, mude para IPv4, em Configurações de rede> [Adaptador]> Avançado.
TheWanderer
1
Parece que você pode ter um host enviando anúncios de roteador com 0:0:0:d5::/64. Esse intervalo é listado como reservado pelo IETF, portanto esse definitivamente não é um prefixo válido para publicidade. Se esses RAs já pararam, pode ser impossível descobrir de onde eles vieram. Nesse caso, tudo o que você pode fazer é reiniciar a interface de rede e o problema desaparece. Se os RAs ainda estiverem sendo enviados, você poderá ver uma captura de pacotes para ver de qual MAC eles são originários.
Kasperd
1
Além da conectividade IPv6 mal configurada, outro colaborador do seu problema é a falta de suporte ao RFC 6555 apt-get. Se tivesse apt-getseguido a RFC 6555, você nunca teria notado nenhum problema.
Kasperd
1
Seu roteador local está fazendo algo errado e fornecendo endereços IPv6 inválidos. Verifique e corrija a configuração do roteador.
Michael Hampton

Respostas:

168

Isso funcionou para mim, cortesia de Zach Adams ( https://zach-adams.com/2015/01/apt-get-cant-connect-to-security-ubuntu-fix/ ):

Acontece que esse é um problema em que a conexão através do IPv6 em alguns servidores faz com que eles fiquem presos nesse momento. A correção é realmente simples.

Abra o /etc/gai.conf

Sob a linha

# For sites which prefer IPv4 connections change the last line to

Remova o comentário da seguinte linha removendo o #:

# precedence ::ffff:0:0/96 100

Isso permitirá que você ainda use o IPv6, mas define o IPv4 como a precedência para que o apt-get não fique preso.

billynoah
fonte
16
Obrigado! Esta resposta é muito melhor do que apenas desabilitar servilmente o ipv6.
Cyrusmith
2
Se você não tiver sorte com isso, tente o seguinte: askubuntu.com/a/759540/4246
Gauthier
1
OMG que ajudou muito!
GaTechThomas
4
Nota: Isso ainda é válido nas versões 14.04 e 16.04 LTS
Elder Geek
1
Trabalhou para mim no Linux Mint 18.1 e 18.2. Isso deve ser o padrão.
mat
23

A configuração do IPv6 para a rede foi ignorada, mas a desativação do IPv6 via /etc/sysctl.conffuncionou:

Adicione as seguintes linhas na parte inferior de /etc/sysctl.conf:

net.ipv6.conf.all.disable_ipv6 = 1
net.ipv6.conf.default.disable_ipv6 = 1
net.ipv6.conf.lo.disable_ipv6 = 1

Execute sudo sysctl -ppara recarregar as /etc/sysctl.confconfigurações.

Pabi
fonte
6
Não é assim que você deveria estar. Essas linhas significam que, quando você se conectar a uma rede, que realmente possui IPv6, você obterá uma conexão menos confiável do que deveria. Além disso, essas linhas não fazem nada para corrigir a causa raiz do seu problema, que você nem identificou.
Kasperd
Eu não preciso do IPv6 em lugar nenhum, então isso funciona muito bem.
Pabi
4
Isso é bobagem, porque para conectar-se a hosts no mesmo segmento de rede, há várias vantagens nos endereços locais de link IPv6 em comparação com o IPv4.
Kasperd #
1
Não é possível fazer isso no meu telefone;) Vamos apenas concordar que discordamos.
Pabi
4
Faça o que você quer fazer. Eu apenas comento para garantir que qualquer outra pessoa que possa encontrar o mesmo problema saiba que fazer as alterações sugeridas sysctl.confacabará causando problemas.
Kasperd
15

Uma abordagem melhor é usar o apt-get da seguinte maneira, em vez de editar o arquivo gai.conf.

sudo apt-get -o Acquire::ForceIPv4=true update

Se você quiser tornar isso persistente, adicione um alias para 'apt-get' no seu arquivo bash.

Vinay Sheshadri
fonte
Mas isso não faria conexões que poderiam ser IPv6 e IPv4?
metame 16/02
@ metame esse é o ponto. OP disse que seu IPv6 está desativado e tentar usá-lo causa problemas.
Francesco Dondi
0

Outras soluções não ajudaram ... no meu caso, criei uma instância do aws ec2 Ubuntu 18.04 usando

Auto-assign Public IP -> no pick disable

depois de tentar todas as soluções sugeridas, levantei minhas mãos e matei isso e criei uma nova instância ec2 usando

Auto-assign Public IP -> yes  Use subnet setting (Enable) 

e funcionou bem ... apt-get update && apt-get upgradeestão felizes agora

Scott Stensland
fonte