pembaruan apt-get macet di “Waiting for Headers” saat menggunakan Windows XP ICS


13

Saya menyiapkan server Maverick pada PC cadangan. Instalasi selesai dengan baik dan sistem melakukan booting ke shell. Namun, ketika saya mencoba melakukan a apt-get update, apt hang di hampir setiap entri dengan pesan 99% [Waiting for headers]terkadang pesan 96 b/smuncul di paling kanan. Persentase aktual yang diklaimnya juga beragam.

Pencarian di sekitar online memberikan solusi potensial dengan menggunakan opsi Acquire::http::Pipeline-Depth="0"ini yang agak mengurangi masalah, yaitu berhenti pada setiap entri lain dengan pesan yang sama seperti di atas.

Jika Anda menunggu (seluruh pembaruan memakan waktu sekitar 4 jam), pembaruan masih gagal karena sebagian besar hit menunjukkan "tidak dapat terhubung" atau pesan serupa, meskipun saya dapat melakukan ping server dari komputer hanya baik.

Masalahnya juga tidak terkait dengan mirror yang digunakan karena saya sudah mencoba selusin mirror tanpa hasil, saya bahkan sudah mencoba berkomentar semuanya kecuali mainentri di sources.list dan masih menolak untuk memperbarui.

Koneksi jaringan baik-baik saja karena saya bisa ping dan wget (apt tidak akan membiarkan saya menginstal lynx sampai saya menjalankan pembaruan yang berhasil) baik-baik saja. Saya juga menginstal ulang distro tanpa hasil.

Satu-satunya hal yang aneh tentang pengaturan adalah bahwa PC terhubung ke internet melalui laptop windows saya dengan ICS dikonfigurasi dengan benar, tetapi seperti yang saya katakan sebelumnya, koneksi jaringan baik-baik saja.


Coba jalankan perintah berikut di terminal Anda sudo dpkg --configure -adansudo apt-get update && sudo apt-get upgrade
karthick87

Koneksi melalui ICS terdengar seperti masalah yang menunggu untuk terjadi, terutama jika salah satu tautannya adalah WiFi. Apakah mungkin menghubungkan lebih langsung?
msw

@ msw saat ini, tapi saya mendapat kesan bahwa ICS hanya setara dengan iptables forwarding untuk linux, masalah apa yang bisa menyebabkannya? Dengan asumsi bahwa itu berfungsi dengan baik jika tidak (yang ini).
Crasic

Saya memiliki sedikit pengalaman dengan ICS karena saya tidak pernah berpikir itu cukup kuat untuk tujuan apa pun, dan memberikan akses administratif (debug) yang buruk ke semua dukungan jaringan Microsoft telah menganggap itu akan membawa sakit kepala. Pengalaman Anda di bawah ini agaknya mengonfirmasi asumsi saya.
msw

Jawaban:


9

Tampaknya ada masalah mendasar dengan implementasi ICS dan IP forwarding secara umum pada Windows XP, ia tidak dapat menangani beberapa koneksi ke server yang sama, mungkin itu adalah kombinasi aneh dari bug dengan ketidakmampuan yang disengaja (seperti yang saya suka menyebutnya) , tetapi hasil akhirnya adalah bahwa XP tidak dapat berfungsi sebagai router / proxy yang kompeten untuk sistem linux (mungkin batasannya sengaja dibuat untuk sistem non-windows).

Sangat menarik untuk dicatat bahwa ini tidak hanya terbatas pada ICS. Ada opsi tersembunyi di registri windows yang memungkinkan penerusan IP untuk antarmuka jaringan dan menderita masalah yang sama.

Satu-satunya solusi - tampaknya - adalah mengubah topologi jaringan untuk menghindari penggunaan ICS (menghubungkan secara langsung, atau membeli sakelar / titik akses khusus), atau menggunakan OS yang berbeda untuk mengatur jembatan sementara. Saya menggunakan live-cd ubuntu (itu bukan komputer saya atau itu akan menjalankan beberapa * nix untuk memulai) dan mengaktifkan paket forwarding dan ip masquerading sehingga komputer berperilaku sebagai router bonafide.


3

Ada beberapa rumor di web (saya tidak dapat memverifikasi mereka) tentang masalah ICS dengan IP6. Mereka mengatakan ketika ICS menerima lebih dari satu koneksi IP6 ia berhenti untuk sementara waktu. Ini bisa menjelaskan mengapa wget berfungsi (hanya satu koneksi), dan pembaruan apt-get gagal (banyak koneksi simultan).

Anda dapat mencoba menonaktifkan IP6 di server Anda untuk menguji apakah ini masalahnya.

Anda dapat menonaktifkan IP6 dari terminal dengan:

echo "#disable ipv6" | sudo tee -a /etc/sysctl.conf
echo "net.ipv6.conf.all.disable_ipv6 = 1" | sudo tee -a /etc/sysctl.conf
echo "net.ipv6.conf.default.disable_ipv6 = 1" | sudo tee -a /etc/sysctl.conf
echo "net.ipv6.conf.lo.disable_ipv6 = 1" | sudo tee -a /etc/sysctl.conf

Kemudian reboot dan periksa apakah Anda dapat memperbarui. Jika berhasil setidaknya Anda tahu di mana masalahnya. Anda dapat menonaktifkan IP6 permanen, atau merencanakan pengaturan baru. Perhatikan bahwa penonaktifan IP6 akan menjadi peretasan sementara, IP6 sepertinya tidak dapat dihindari dalam waktu dekat.

Untuk mengaktifkan kembali IP6, hapus baris sebelumnya dari /etc/sysctl.conf dan reboot.


ICS tampaknya menjadi penyebab di sini, namun saran Anda tidak memperbaikinya. Setelah kabel komputer langsung semuanya bekerja seperti yang diharapkan. Sekarang saya memiliki repositori yang diperbarui, saya bahkan tidak bisa melakukan apt-get installmelalui ICS ... hmmm.
crasic

Mungkin ICS memiliki masalah dengan sejumlah besar (atau mungkin sederhana) koneksi simultan ke server yang sama.
Javier Rivera

Anda tidak perlu melakukan reboot: setelah memodifikasi sysctl.conf, ketikkan sysctl -adan Anda siap melakukannya. Anda juga dapat mengurangi pengetikan dengan menggunakan dokumen di sini alih-alih pemipaan dari echo sepanjang waktu.
Mei
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.