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.