Saya melakukan riset ke sekelompok solusi dan beberapa pengembang Ubuntu datang dengan konfigurasi proxy (berdasarkan Squid) untuk 10,04 dan kemudian. Itu disebut squid-deb-proxy
. Itu hanya membutuhkan mesin untuk bertindak sebagai server. Organisasi besar biasanya menjalankan mirror sendiri penuh tetapi bagi kebanyakan orang mirroring on demand sudah cukup.
Mengapa squid-deb-proxy?
- Tidak ada pengeditan file di sisi klien.
- Gunakan zeroconf sehingga klien "nol konfigurasi"
- Gunakan solusi proxy yang ada dan solid alih-alih menulis alat baru.
- Mudah diatur untuk administrator Linux biasa.
Konfigurasi Server
Pada mesin Anda ingin bertindak sebagai server instal alat dengan:
sudo apt-get install squid-deb-proxy avahi-utils
Sekarang mulailah bit layanan:
sudo start squid-deb-proxy
Dan bit-bit avahi (Anda tidak perlu ini jika Anda di 12,04+):
sudo start squid-deb-proxy-avahi
Ini akan menginstal server proxy (yang mendengarkan port 8000 secara default) dan alat avahi yang diperlukan untuk server untuk beriklan sendiri di jaringan Anda melalui zeroconf.
Konfigurasi Klien
Pada setiap komputer yang Anda ingin gunakan cache (klien, dan server itu sendiri sehingga dapat menggunakan cache juga), Anda perlu menginstal alat sisi klien yang mari kita mencari server secara otomatis, minta mereka klik di sini :
atau melalui baris perintah:
sudo apt-get install squid-deb-proxy-client
Opsional : Untuk efisiensi maksimum, Anda harus mengatur satu mesin untuk mengunduh pembaruan secara otomatis, sehingga saat mesin lain membutuhkannya, ia sudah ada dalam cache. Anda dapat melakukan ini dengan masuk ke System-> Administration-> Update Manager, lalu klik tombol "Settings ...", di tab Update, atur untuk mengunduh semua pembaruan secara otomatis.
Caching Sumber Pihak Ketiga
Secara default, cache diatur hanya untuk cache repositori resmi Ubuntu. Untuk menambahkan lebih banyak, Anda perlu menambahkannya ke daftar sumber di /etc/squid-deb-proxy/mirror-dstdomain.acl
. Di sinilah Anda dapat menambahkan ppa.launchpad.net, atau layanan lain yang mungkin Anda gunakan. Setelah membuat perubahan pada file ini, Anda harus menjalankan sudo restart squid-deb-proxy
agar perubahan menjadi efektif.
Konfigurasi Manual
Jika karena alasan tertentu Anda tidak ingin menggunakan zeroconf (karena alasan jaringan atau apa pun), Anda dapat secara manual mengatur klien untuk menggunakan proxy dengan mengedit /etc/apt/apt.conf
dan menambahkan bait berikut, (ganti 0.0.0.0 dengan alamat IP server. ):
Acquire {
Retries "0";
HTTP { Proxy "http://0.0.0.0:8000"; };
};
Firewall
Jika Anda menggunakan firewall, avahi menggunakan 5353 melalui alamat 224.0.0.0/4 dan membutuhkan aturan yang terlihat seperti ini:
# Specifically port 5353 which avahi uses
-A INPUT -i eth2 -d 224.0.0.0/4 --dport 5353 -j ACCEPT
# OR
# Wide open so all local broadcasting works
-A INPUT -i eth2 -d 224.0.0.0/4 -j ACCEPT
Selanjutnya, Anda perlu membuka port TCP 8000 untuk komunikasi aktual melalui proxy. Sesuatu yang kurang lebih seperti ini:
-A INPUT -i eth2 -p tcp -m tcp --dport 8000 -d 192.168.0.1 -s 192.168.0.0/24 --syn -j ACCEPT
Aturan-aturan ini hanya untuk membantu Anda. Mereka mungkin tidak akan cocok dengan pengaturan Anda satu-ke-satu. (mis. antarmuka yang salah, alamat IP jaringan pribadi salah, dll.)
Mengkonfirmasikannya Berhasil
Ekor log pada server terlebih dahulu sehingga Anda dapat melihatnya: tail -F /var/log/squid-deb-proxy/access.log
dan kemudian jalankan pembaruan pada mesin apa pun yang memiliki klien diinstal; log harus mulai bergulir dengan entri seperti ini:
1307310795.647 32 192.168.1.106 TCP_MISS/302 768 GET http://us.archive.ubuntu.com/ubuntu/dists/natty-proposed/universe/i18n/Translation-en.xz - DIRECT/141.210.26.10 text/html
1307310795.683 34 192.168.1.106 TCP_MISS/302 752 GET http://us.archive.ubuntu.com/ubuntu/dists/natty/main/i18n/Translation-en_US.lzma - DIRECT/141.210.26.10 text/html
1307310795.716 32 192.168.1.106 TCP_MISS/302 746 GET http://us.archive.ubuntu.com/ubuntu/dists/natty/main/i18n/Translation-en.lzma - DIRECT/141.210.26.10 text/html
1307310795.750 32 192.168.1.106 TCP_MISS/302 764 GET http://us.archive.ubuntu.com/ubuntu/dists/natty/multiverse/i18n/Translation-en_US.lzma - DIRECT/141.210.26.10 text/html
1307310795.784 32 192.168.1.106 TCP_MISS/302 758 GET http://us.archive.ubuntu.com/ubuntu/dists/natty/multiverse/i18n/Translation-en.lzma - DIRECT/141.210.26.10 text/html
1307310795.817 32 192.168.1.106 TCP_MISS/404 657 GET http://us.archive.ubuntu.com/dists/natty-proposed/multiverse/i18n/Translation-en_US.xz - DIRECT/141.210.26.10 text/html
Yang berarti klien melihat cache tetapi tidak ada, yang diharapkan karena belum ada cache apa pun. Setiap proses selanjutnya harus ditampilkan sebagai TCP_HIT. Anda dapat menemukan sendiri file cache squid /var/cache/squid-deb-proxy
.
Menggunakannya
Sejak saat itu semua mesin di jaringan Anda akan memeriksa cache sebelum memukul jaringan luar untuk mengambil paket. Jika ada paket baru yang tersedia maka mesin pertama akan mengunduhnya dari internet, setelah itu permintaan selanjutnya untuk paket itu akan datang dari server ke klien.
MELAKUKAN
Kita masih perlu mengaktifkan apt untuk hanya menggunakan cache yang diiklankan di jaringan di luar kotak dan secara default sehingga Anda tidak perlu menginstal bagian klien. Kita juga perlu memperbaiki bug yang tidak ada dalam daftar mirror 403's.
apt.conf
file di bawah/etc/apt
. Namun, ada banyak file dengan pengaturan di bawah/etc/apt/apt.conf.d
. Saya akan membayangkan bahwa kita sekarang harus membuat file di sana?apt-cacher-ng
adalah jawaban untuk saya - saya belum menemukan masalah di lingkungan bertubuh kecil (sekitar 20 klien), jadi saya kira masalah @MagicFab menyebutkan diselesaikan dalam versi saat ini (diinstal pada Ubuntu 10,04 dan 10,10). Tidak ada konfigurasi yang diperlukan untuk server, dan Anda hanya perlu menginstruksikan klien Anda untuk menggunakan server sebagai proksi pengelola paket mereka.Server benar - benar diinstal dan dikonfigurasi dengan menginstal
apt-cacher-ng
paket.Klien perlu dikonfigurasi dengan menyiapkan proxy APT - dengan menambahkan file
/etc/apt/apt.conf.d/01proxy
, yang berisi ini (di mana "server Anda" adalah nama server atau alamat IP Anda):Selesai - sekarang paket akan di-cache oleh server, tidak peduli sumber apa yang Anda gunakan atau versi sistem apa yang Anda miliki (misalnya server 10,04 dapat digunakan oleh klien 9,10,10,04 dan 11,04 tanpa masalah atau konflik).
Jika Anda memiliki laptop klien yang berkeliaran di antara jaringan, itu menjadi sedikit lebih kompleks - Saya telah membuat skrip yang menetapkan proxy yang tepat tergantung pada alamat jaringan; script yang dieksekusi dan di
/etc/network/if-up.d/apt-proxy
. Setelah menerima alamat IPv4 dari server DHCP, skrip akan mengatur server apt-cacher yang tepat untuk jaringan masing-masing:sumber
squid-deb-proxy
dansquid-deb-proxy-client
: zeroconf memang berarti nol konfigurasi pada klien, yang sangat berguna bagi pengguna nomaden - dan jika server tidak merespons, klien default untuk mengunduh langsung.pbuilder
. Ini berhasil di luar kotak. Juga sepertinya ada dukungan untukzeroconf
(pada tahun 2016), tapi saya belum (belum) bisa menggunakannya.Salah satu solusi termudah adalah mengatur apt-proxy.
Baca dokumentasi ubuntu di sini: https://help.ubuntu.com/community/AptProxy
sumber
Saya lebih suka mengatur mirror lokal menggunakan
debmirror
utilitas.Berikut ini contoh mantra.
Saya menjalankan ini sekitar seminggu sekali, dan menggunakannya sebagai dasar untuk membangun satu atau lebih "patchlevels". Sebagai contoh...
Ini membuat salinan pohon yang terhubung (menggunakan hampir nol ruang disk) yang saya bisa arahkan masing-masing server lokal saya ke dalam apt sources.list
sumber
Dalam jaringan kecil (seperti rumah / kantor kecil), saya telah menggunakan apt-cacher-ng dengan hasil yang baik. Saya belum memeriksa versi terbaru, tetapi saya tahu ini membutuhkan pengaturan server dan klien yang cermat, dan ini paling cocok untuk klien yang hanya akan mendapatkan pembaruan dari jaringan lokal Anda.
Aku mencoba solusi cumi-berdasarkan atas tetapi diperlukan menerapkan beberapa solusi dan konfigurasi klien lebih dari saya ingin, sehingga tidak merasa belum seperti itu bisa menggantikan apt-cacher-ng di setup kecil.
sumber
apt-cacher
bukan yang paling mudah untuk diatur dan tidak akan bertahan dari dist-upgradeInstal
squid-deb-proxy
di server,squid-deb-proxy-client
di klien. Menggunakan zeroconf Avahi, jadi tidak perlu konfigurasi.Jika Anda mencari untuk men-cache lebih dari sekedar hutang, saya tidak akan repot dengan Squid. Apache Traffic Server adalah hal besar berikutnya. http://trafficserver.readthedocs.org
sumber