ISP tempat saya bekerja sedang menyiapkan jaringan IPv6 internal sebagai persiapan untuk akhirnya terhubung ke internet IPv6. Akibatnya, beberapa server di jaringan ini sekarang mencoba untuk terhubung ke security.debian.org melalui alamat IPv6 secara default ketika menjalankan apt-get update
, dan itu mengakibatkan harus menunggu batas waktu yang lama setiap kali saya mengunduh pembaruan dalam bentuk apa pun .
Apakah ada cara untuk memberitahu apt untuk memilih IPv4 atau mengabaikan IPv6 sama sekali?
/etc/gai.conf
sehinggasecurity.debian.org
catatan A dikembalikan sebelum catatan AAA, tapi saya tidak tahu persis apa yang harus dimasukkan ke dalam file itu.Jawaban:
Tambahkan
-o Acquire::ForceIPv4=true
saat berjalanapt-get
.Jika Anda ingin membuat pengaturan terus-menerus, cukup buat /etc/apt/apt.conf.d/99force-ipv4 dan masukkan
Acquire::ForceIPv4 "true";
:Opsi konfigurasi
Acquire::ForceIPv4
danAcquire::ForceIPv6
ditambahkan ke versi 0.9.7.9 ~ exp1 (lihat bug 611891 ) yang tersedia sejak Ubuntu Saucy (dirilis pada Oktober 2013) dan Debian Jessie (dirilis pada April 2015).sumber
apt.conf
Anda perlu menulis seperti ini:Acquire::ForceIPv4 "true";
(dengan tanda kutip ganda)sudo echo 'test' > file
tidak akan berfungsi karena pengalihan dijalankan dengan izin penggunaSeperti yang dikatakan Gilles , gunakan
gai.conf
. Catatan:getaddrinfo
.gai.conf
, Anda harus mencadangkannya, dan juga membacanya (jangan khawatir, pendek). Hasil edit di bawah ini mungkin sudah disebutkan dalam file Anda saat ini; jika file saat ini menunjukkan sesuatu yang berbeda dari apa yang disebutkan di bawah ini, Anda mungkin harus lebih suka apa yang ada di file Anda saat ini.Tetapi jika ini yang Anda inginkan (mungkin memang demikian), mari kita lanjutkan. Katakanlah kita memiliki dua host
www.he.net
danwww.ripe.net
:Kasus 1: lebih suka IPV4 untuk semua host
Tambahkan ke
/etc/gai.conf
baris berikut:Setelah menyimpan file yang diedit (tidak perlu restart), Anda akan melihat aplikasi jaringan (misalnya,
telnet
) menggunakan IPV4: misalnya,Kasus 2: lebih suka IPV6 untuk host tertentu
Jika kami ingin memilih IPV6 hanya untuk
www.he.net
atau jaringannya, kami dapat menambahkan mask / awalan untuk semua, atau hanya sebagian, dari alamat IPV6-nya/etc/gai.conf
. Misalnya, baris berikut:(setelah menyimpan file yang diedit) menghasilkan
Kasus 3: lebih suka IPV4 untuk host tertentu
Jika kita membalikkan topeng, apakah kebalikannya benar? Menurut @GrueMaster, menambahkan
bekerja untuknya setelah menonaktifkan IPV6 untuk
security.ubuntu.com
(jika tidak terhenti selamanya).Lihat juga:
sumber
#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
ke /etc/gai.conf saya dan pembaruan apt-get berfungsi dengan sempurna sekarang.Anda dapat mengatur apt-cacher-ng pada mesin cadangan untuk bertindak sebagai proxy / cache untuk semua host Anda. Anda dapat memaksa konfigurasi untuk hanya menggunakan host tertentu atau menggunakan trik / etc / hosts yang disarankan oleh @badp pada satu mesin itu.
Setelah Anda memiliki pengaturan apt-cache-ng, Anda hanya perlu menghapus baris berikut (dengan alamat IP / nama host diubah untuk menunjuk ke mesin cacher Anda) di /etc/apt/apt.apt.apt/apt.conf.d/90httpproxy
Saya menggunakan pengaturan itu untuk mengurangi penggunaan bandwidth tetapi harus mengatasi masalah Anda. Sayangnya saya tidak mengetahui cara untuk langsung menonaktifkan pencarian ipv6 untuk apt-get sendiri.
sumber
Anda bisa mengatasinya dengan menyiapkan server proxy DNS yang menjatuhkan respons ip6.
sumber
Bagaimana dengan menambahkan baris dalam
/etc/hosts
mengganti alamat yang relevan? misalnya,sumber
/etc/hosts
dengan alamat IP yang tidak saya miliki sendiri.Membajak topik lama, tetapi dihadapkan dengan masalah yang sama baru-baru ini. Jadi, berdasarkan saran yang diberikan di atas dan output dari host dan whois :
Memecahkan masalah dengan cara yang sedikit berbeda - menurunkan prioritas jaringan IPv6 yang berisi security.debian.org di /etc/gai.conf :
Jadi, IPv6 masih lebih disukai kecuali untuk security.debian.org .
sumber
Pada 08 Oktober 2014, saya memiliki masalah yang sama, mencoba memperbarui debian di belakang proxy di jaringan lokal. Dengan harapan ini akan relevan bagi orang lain, saya memposting tanggapan saya di sini. Seperti yang disebutkan orang lain, pengeditan
/etc/hosts
adalah sesuatu yang harus hati-hati.Tetapi secara pribadi saya hanya ingin pembaruan dilakukan.
Konten /etc/apt/sources.list ketika melakukan pembaruan (berbeda sebelum pembaruan ..):
Isi /etc/apt/apt.conf:
Tambahan ke / etc / hosts:
Sekarang, menjalankan
apt-get update ; apt-get upgrade
sebagai root bekerja dengan baik.Seperti disebutkan dalam jawaban lain, gunakan, jalankan perintah host pada domain untuk mendapatkan ip yang benar untuk dimasukkan dalam file host.
Contoh:
Ini berhasil memperbarui sistem ke
Debian GNU/Linux testing (jessie)
. Anda mungkin tidak ingin menjalankan dengan repositori pengujian, kemudian hapus saja dari sumbernya. Repositori pengujian memberi Anda lebih banyak pembaruan terbaru dari beberapa paket, tetapi tidak dianggap stabil.sumber
hosts
file adalah solusi yang sangat suboptimal.Saya telah menemukan cara yang lebih baik untuk melakukan ini. Buka
sources.list
file Anda dan catat nama host dari repo. Dapatkan alamat IPv4 mereka , lalu editsources.list
dengan alamat IPv4 daripada nama host. Apt-get sekarang harus menghubungi repositori melalui alamat IPv4 yang Anda tentukan, melewati IPv6.Ada kerugiannya bahwa repo biasanya memiliki semacam penyeimbangan muatan dan / atau pengaturan geolokasi IP, yang tentu saja dilewati oleh metode ini. Namun, tidak masalah jika hanya beberapa orang yang melakukannya. Jika Anda menemukan satu mirror lambat, coba dapatkan alamat IP repo lain (misalnya, dengan menggunakan layanan ping online) dan gunakan itu.
sumber
Anda dapat mencoba ini jika berhasil untuk Anda
-> ganti nama antarmuka Anda
sumber