El ISP en el que trabajo está configurando una red IPv6 interna en preparación para eventualmente conectarse a Internet IPv6. Como resultado, varios de los servidores de esta red ahora intentan conectarse a security.debian.org a través de su dirección IPv6 de forma predeterminada cuando se ejecuta apt-get update
, y eso hace que tenga que esperar un tiempo de espera prolongado cada vez que descargue actualizaciones de cualquier tipo .
¿Hay alguna manera de decirle a apt si prefiere IPv4 o ignora por completo IPv6?
/etc/gai.conf
para quesecurity.debian.org
se regrese un registro A antes del registro AAA, pero no sé exactamente qué poner en ese archivo.Respuestas:
Agregar
-o Acquire::ForceIPv4=true
cuando se ejecutaapt-get
.Si desea que la configuración sea persistente, simplemente cree /etc/apt/apt.conf.d/99force-ipv4 y colóquelo
Acquire::ForceIPv4 "true";
:Opciones de configuración
Acquire::ForceIPv4
yAcquire::ForceIPv6
se han añadido a la versión 0.9.7.9 ~ exp1 (véase el bug 611891 ), que está disponible desde Ubuntu para Salsas (publicado en octubre de 2013) y Debian Jessie (lanzado en abril de 2015).fuente
apt.conf
debes escribirlo así:Acquire::ForceIPv4 "true";
(con comillas dobles)sudo echo 'test' > file
no funcionaría porque la redirección se ejecuta con los permisos del usuarioComo dice Gilles , úsalo
gai.conf
. Notas:getaddrinfo
.gai.conf
, debe hacer una copia de seguridad y también leerlo (no se preocupe, es corto). Las ediciones a continuación probablemente ya estén mencionadas en su archivo actual; Si el archivo actual indica algo diferente de lo que se menciona a continuación, probablemente debería preferir lo que está en su archivo actual.Pero si esto es lo que quieres (que probablemente sea), procedamos. Digamos que tenemos dos anfitriones
www.he.net
ywww.ripe.net
:Caso 1: prefiera IPV4 para todos los hosts
Añadir a
/etc/gai.conf
la siguiente línea:Después de guardar el archivo editado (no es necesario reiniciar), debería ver las aplicaciones de red (p. Ej.
telnet
) Con IPV4: p. Ej.Caso 2: prefiera IPV6 para hosts específicos
Si queremos preferir IPV6 solo para
www.he.net
o su red, podemos agregar una máscara / prefijo para toda, o solo una parte, de su dirección IPV6/etc/gai.conf
. Por ejemplo, la siguiente línea:(después de guardar el archivo editado) produce
Caso 3: prefiera IPV4 para hosts específicos
Si invertimos la máscara, ¿será verdad lo contrario? Según @GrueMaster, anexar
funcionó para él después de deshabilitar IPV6
security.ubuntu.com
(de lo contrario, se detiene para siempre)Ver también:
fuente
#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
Agregué 2 líneas a mi /etc/gai.conf y apt-get update funciona perfecto ahora.Puede configurar apt-cacher-ng en una máquina de repuesto para que actúe como proxy / caché para todos sus hosts. Puede forzar la configuración para que solo use hosts específicos o use el truco / etc / hosts sugerido por @badp en esa máquina.
Una vez que haya configurado apt-cache-ng, solo necesita colocar la siguiente línea (con la dirección IP / nombre de host alterado para apuntar a su máquina de almacenamiento en caché) en /etc/apt/apt.conf.d/90httpproxy
Utilizo esa configuración para reducir el uso de ancho de banda, pero debería solucionar su problema. Desafortunadamente, no conozco una forma de deshabilitar directamente las búsquedas de ipv6 para apt-get.
fuente
Podría solucionar este problema configurando un servidor proxy DNS que eliminó las respuestas de ip6.
fuente
¿Qué tal agregar una línea para
/etc/hosts
anular las direcciones relevantes? p.ej,fuente
/etc/hosts
con direcciones IP que no es dueño de mí mismo.Secuestrando el viejo tema, pero recientemente enfrenté el mismo problema. Entonces, en base a los consejos dados anteriormente y la salida del host y whois :
Se resolvió el problema de una manera ligeramente diferente: se redujo la precedencia de las redes IPv6 que contienen security.debian.org en /etc/gai.conf :
Por lo tanto, todavía se prefiere IPv6, excepto para security.debian.org .
fuente
A partir del 8 de octubre de 2014, tuve el mismo problema, tratando de actualizar Debian detrás de un proxy en la red local. Con la esperanza de que sea relevante para los demás, publico mi respuesta aquí. Como otros han mencionado, la edición
/etc/hosts
es algo con lo que uno debe tener cuidado.Pero personalmente solo quería que se realizara la actualización.
Contenido de /etc/apt/sources.list al hacer la actualización (era diferente antes de la actualización ...):
Contenido de /etc/apt/apt.conf:
Adición a / etc / hosts:
Ahora, correr
apt-get update ; apt-get upgrade
como root funcionó bien.Como se menciona en otras respuestas, use, ejecute el comando host en el dominio para obtener la ip correcta para insertar en el archivo hosts.
Ejemplo:
Esto actualizó con éxito el sistema a
Debian GNU/Linux testing (jessie)
. Es posible que no desee ejecutar con los repositorios de prueba, luego simplemente elimínelo de las fuentes. Los repositorios de prueba le ofrecen actualizaciones más recientes de varios paquetes, pero no se considera estable.fuente
hosts
archivo es una solución altamente subóptima.He encontrado una forma mucho mejor de hacer esto. Abra su
sources.list
archivo y anote los nombres de host de los repositorios. Obtenga sus direcciones IPv4 , luego editesources.list
con las direcciones IPv4 en lugar de los nombres de host. Apt-get ahora debe contactar a los repositorios a través de las direcciones IPv4 que especificó, sin pasar por IPv6.Existe la desventaja de que los repos generalmente tienen algún tipo de equilibrio de carga y / o configuración de geolocalización de IP, que este método, por supuesto, evita. Sin embargo, no debería importar si solo unas pocas personas lo están haciendo. Si encuentra que un espejo es lento, intente obtener otra dirección IP de repositorio (por ejemplo, utilizando un servicio de ping en línea) y úselo.
fuente
Puedes probar esto si te funciona
-> reemplaza el nombre de tu interfaz
fuente