it-swarm-tr.com

Apt-get * not * komutunu IPv6 yöntemini kullanmaya ikna et

Çalıştığım ISP, sonunda IPv6 internetine bağlanmak için hazırlık olarak dahili bir IPv6 ağı kuruyor. Sonuç olarak, bu ağdaki sunucuların birçoğu artık apt-get update Çalıştırırken varsayılan olarak security.debian.org'a IPv6 adresi üzerinden bağlanmaya çalışıyor ve bu durum her ne zaman ben ' m her türlü güncellemeleri indiriyor.

IPv4'ü tercih etmeyi veya IPv6'yı tamamen görmezden gelmeyi söylemenin bir yolu var mı?

245
Shadur

Ekle -o Acquire::ForceIPv4=true çalışırken apt-get.

Ayarı kalıcı yapmak istiyorsanız sadece /etc/apt/apt.conf.d/99force-ipv4 oluşturun ve Acquire::ForceIPv4 "true"; içinde:

echo 'Acquire::ForceIPv4 "true";' | Sudo tee /etc/apt/apt.conf.d/99force-ipv4

Yapılandırma seçenekleri Acquire::ForceIPv4 ve Acquire::ForceIPv6 (Ubuntu Saucy'den beri piyasaya sürülen 0.9.7.9 ~ exp1 (bakınız hata 611891 ) sürümüne eklendi. Ekim 2013) ve Debian Jessie (Nisan 2015'te piyasaya sürüldü).

324
mmoya

Gilles'in dediği gibi gai.conf Kullanın. Notlar:

  1. Bu, APT'den çok daha düşük bir seviyede (DNS ve IP ağı) çalışır, bu nedenle uygulama ağınızın hepsinin nasıl olduğunu değiştirir - en azından getaddrinfo kullanın.
  2. gai.conf Sayfanızı düzenlemeden önce yedeklemeli ve ayrıca okumalısınız (endişelenmeyin, kısa). Aşağıdaki düzenlemeler muhtemelen mevcut dosyanızda zaten belirtilmiştir; geçerli dosya aşağıda belirtilenlerden farklı bir şey gösteriyorsa, büyük olasılıkla geçerli dosyanızda olanı tercih etmelisiniz.

Ama eğer istediğin buysa (muhtemelen), devam edelim. Diyelim ki iki ana makinemiz var www.he.net Ve www.ripe.net:

$ Host www.he.net
www.he.net is an alias for he.net.
he.net has address 216.218.186.2
he.net has IPv6 address 2001:470:0:76::2

$ Host www.ripe.net
www.ripe.net has address 193.0.6.139
www.ripe.net has IPv6 address 2001:67c:2e8:22::c100:68b

Durum 1: tüm ana bilgisayarlar için IPV4'ü tercih edin

Aşağıdaki satıra /etc/gai.conf Ekleyin:

precedence ::ffff:0:0/96  100

Düzenlenen dosyayı kaydettikten sonra (yeniden başlatmanıza gerek yoktur), IPV4 kullanarak ağ uygulamalarını (ör. telnet) görmelisiniz: ör.

$ telnet www.ripe.net 81
Trying 193.0.6.139...
^C
$ telnet www.he.net 81
Trying 216.218.186.2...

Durum 2: belirli ana bilgisayarlar için IPV6'yı tercih edin

IPV6'yı yalnızca www.he.net Veya ağı için tercih etmek istiyorsak, IPV6 adresinin tamamı veya bir kısmı için maske/önek ekleyebiliriz. /etc/gai.conf. Örneğin, aşağıdaki satır:

precedence 2001:470::/32 100

(düzenlenen dosyayı kaydettikten sonra)

$ telnet www.ripe.net 81
Trying 193.0.6.139...
^C
$ telnet www.he.net 81
Trying 2001:470:0:76::2...
^C

Durum 3: belirli ana bilgisayarlar için IPV4'ü tercih edin

Maskeyi ters çevirirsek tersi doğru olur mu? @GrueMaster'a göre,

precedence 2001:470::/96 100

security.ubuntu.com için IPV6'yı devre dışı bıraktıktan sonra onun için çalıştı (aksi takdirde sonsuza kadar durur).


Ayrıca bakınız:

84
Lmwangi

Yedek bir makineye tüm ana makineleriniz için proxy/önbellek görevi görecek şekilde apt-cacher-ng ayarlayabilirsiniz. Yapılandırmayı yalnızca belirli ana makineleri kullanmaya veya o makinede @ badp tarafından önerilen/etc/hosts hile'ni kullanmaya zorlayabilirsiniz.

apt-get install apt-cacher-ng

Apt-cache-ng kurulumunu yaptıktan sonra / etc/apt/apt.conf.d/90httpproxy =

Acquire::http { Proxy "http://[192.168.1.254]:3142"; };

Bant genişliği kullanımını azaltmak için bu kurulumu kullanıyorum, ancak sorununuzu çözmeli. Ne yazık ki apt-get kendisi için ipv6 aramalarını doğrudan devre dışı bırakmanın bir yolunun farkında değilim.

10
Richm

IP6 yanıtlarını bırakan bir DNS proxy sunucusu ayarlayarak bu sorunu çözebilirsiniz.

5
pjc50

/etc/hosts İçine ilgili adresleri geçersiz kılan bir satır eklemeye ne dersiniz? Örneğin.,

130.89.149.226  ftp.debian.org      
195.20.242.89   security.debian.org 
4
badp

Eski konuyu ele geçirmek, ancak son zamanlarda aynı sorunla karşı karşıya. Yani, yukarıda verilen tavsiyeye ve Ana Bilgisayar ve whois çıktısına dayanarak:

# Host security.debian.org
security.debian.org has address 212.211.132.250
security.debian.org has address 195.20.242.89
security.debian.org has address 212.211.132.32
security.debian.org has IPv6 address 2001:8d8:580:400:6564:a62:0:2
security.debian.org has IPv6 address 2001:a78:5:0:216:35ff:fe7f:be4f
security.debian.org has IPv6 address 2001:a78:5:1:216:35ff:fe7f:6ceb

Sorun biraz farklı bir şekilde çözüldü - security.debian.org içinde /etc/gai.conf içeren IPv6 ağlarının önceliğini düşürdü:

# Make IPv6 for security.debian.org undesirable
precedence 2001:8d8:580::/48    5
precedence 2001:a78:5::/48      5

Dolayısıyla, IPv6 security.debian.org dışında hala tercih edilmektedir.

1
Timur Bakeyev

08 Ekim 2014 itibariyle, aynı sorunu yaşadım, yerel ağdaki bir proxy'nin arkasında debian'ı güncellemeye çalıştım. Başkalarıyla alakalı olacağı umuduyla, cevabımı buraya gönderiyorum. Diğerlerinin de belirttiği gibi, /etc/hosts 'İ düzenlemek dikkat edilmesi gereken bir şeydir.

Ama şahsen güncellemenin yapılmasını istedim.

Güncelleme yapılırken /etc/apt/sources.list içeriği (güncelleme öncesi farklıydı ..):

deb http://http.debian.net/debian/ testing main
deb-src http://http.debian.net/debian/ testing main

deb http://mirrors.kernel.org/debian/ wheezy main
deb-src http://mirrors.kernel.org/debian/ wheezy main

deb http://security.debian.org/ wheezy/updates main
deb-src http://security.debian.org/ wheezy/updates main

/Etc/apt/apt.conf içeriği:

Acquire::http::proxy "http://192.168.1.10:7777/";
Acquire::http::Timeout "10";
Acquire::ftp::Timeout "10";

/ Etc/hosts dosyasına ekleme:

#Workaround for making apt-get work (08-10-2014)
195.20.242.89 security.debian.org
130.89.148.12 ftp.debian.org

Şimdi, apt-get update ; apt-get upgrade Dosyasını root olarak çalıştırmak işe yaradı.

Diğer yanıtlarda belirtildiği gibi, hosts dosyasına eklenecek doğru ipi almak için etki alanında Host komutunu çalıştırın.

Misal:

$ Host ftp.debian.org
ftp.debian.org has address 130.89.148.12

Bu, sistemi Debian GNU/Linux testing (jessie) olarak başarıyla güncelledi. Test havuzlarıyla çalışmak istemeyebilir, daha sonra onu kaynaklardan kaldırabilirsiniz. Test havuzları size birkaç paket için daha yeni güncellemeler sağlar, ancak kararlı olarak kabul edilmez.

1
NordicViking

Bunu yapmanın çok daha iyi bir yolunu buldum. sources.list dosyası oluşturun ve depoların ana bilgisayar adlarını not edin. IPv4 adreslerini alın, ardından sources.list ana bilgisayar adları yerine IPv4 adresleriyle. Apt-get artık IPv6'yı atlayarak belirttiğiniz IPv4 adresleri üzerindeki depolarla iletişim kurmalıdır.

Depoların genellikle bir çeşit yük dengeleme ve/veya IP coğrafi konumunun ayarlanmış olması dezavantajı vardır, ki bu yöntem elbette atlar. Ancak, sadece birkaç kişinin bunu yapması önemli değil. Bir aynanın yavaş olduğunu fark ederseniz, başka bir repo IP adresi almayı deneyin (örneğin, çevrimiçi bir ping hizmeti kullanarak) ve bunu kullanın.

0
D. Strout