Birkaç çözüm için araştırma yaptım ve bazı Ubuntu geliştiricileri 10.04 ve sonrası için bir proxy yapılandırması (Squid'e dayanarak) geliştirdiler. Buna denir squid-deb-proxy
. Sadece bir makine olarak sunucu görevi görür. Büyük kuruluşlar genellikle kendi aynalarını kullanırlar ancak çoğu insan için talep üzerine yansıtma yeterlidir.
Neden kalamar-deb-proxy?
- İstemci tarafında dosya düzenlemesi yok.
- İstemcilerin "sıfır config" olması için zeroconf kullanın
- Yeni bir araç yazmak yerine mevcut, sağlam bir proxy çözümü kullanın.
- Tipik bir Linux yöneticisi için kurulumu kolaydır.
Sunucu Yapılandırması
Bir sunucu olarak hareket etmek istediğiniz makinede aracı yükleyin:
sudo apt-get install squid-deb-proxy avahi-utils
Şimdi servis bitlerini başlatın:
sudo start squid-deb-proxy
Ve avahi bitleri (eğer 12.04+ kullanıyorsanız buna ihtiyacınız yok):
sudo start squid-deb-proxy-avahi
Bu, proxy sunucusunu (varsayılan olarak 8000 numaralı bağlantı noktasını dinleyen) ve sunucunun kendi kendini ağınızda tanıtmak için gerekli olan avahi araçlarını zeroconf aracılığıyla yükleyecektir.
İstemci Yapılandırması
On bilgisayarların her sen (çok önbelleği kullanabilir üzere müşterilere ve sunucu kendisi) önbelleği kullanmak istiyorum, bunları buraya tıklayın otomatik olarak sunucu için 's apt göz izin istemci tarafı aracı yüklemek için var gerek :
veya komut satırı yoluyla:
sudo apt-get install squid-deb-proxy-client
İsteğe bağlı : Maksimum verimlilik için bir makineyi güncellemeleri otomatik olarak indirecek şekilde ayarlamanız gerekir, böylece diğer makineleriniz ihtiyaç duyduğunda zaten önbellekte olur. Bunu, Sistem-> Yönetim-> Güncelleme Yöneticisi'ne giderek yapabilirsiniz, daha sonra Güncelleme sekmesindeki "Ayarlar ..." düğmesine tıklayın, güncellemeleri otomatik olarak indirecek şekilde ayarlayın.
3. Taraf Kaynaklarını Önbelleğe Alma
Önbellek varsayılan olarak yalnızca resmi Ubuntu depolarını önbelleğe almak üzere ayarlanmıştır. Daha fazla eklemek için, onları kaynaklar listesine eklemeniz gerekir /etc/squid-deb-proxy/mirror-dstdomain.acl
. Burası ppa.launchpad.net veya kullanabileceğiniz diğer servisleri ekleyebileceğiniz yerdir. Bu dosyada değişiklik yaptıktan sonra sudo restart squid-deb-proxy
, değişikliklerin etkili olması için çalışmanız gerekir.
Manuel Yapılandırma
Herhangi bir nedenden dolayı sıfırconf kullanmak istemiyorsanız (şebeke nedenleriyle veya her neyse), istemciyi /etc/apt/apt.conf
aşağıdaki stanza'yı düzenleyerek ve ekleyerek proxy kullanmak üzere manuel olarak ayarlayabilirsiniz (0.0.0.0'ı sunucunun IP adresi ile değiştirin). ):
Acquire {
Retries "0";
HTTP { Proxy "http://0.0.0.0:8000"; };
};
Firewall
Bir güvenlik duvarı kullanıyorsanız, avahi 224.0.0.0/4 adresleri üzerinde 5353'ü kullanır ve şuna benzer bir kural gerektirir:
# 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
Ardından, proxy üzerinden gerçek iletişim için 8000 numaralı TCP bağlantı noktasını açmanız gerekir. Buna az çok benzer bir şey:
-A INPUT -i eth2 -p tcp -m tcp --dport 8000 -d 192.168.0.1 -s 192.168.0.0/24 --syn -j ACCEPT
Bu kurallar sadece size yardımcı olmak içindir. Muhtemelen kurulumunuzla birebir eşleşmeyeceklerdir. (yani yanlış arayüz, yanlış özel ağ IP adresleri vb.)
Çalıştığını Onaylama
İlk önce sunucuya giriş yapın, böylece bakabilirsiniz: tail -F /var/log/squid-deb-proxy/access.log
ve istemcinin kurulu olduğu herhangi bir makinede bir güncelleme çalıştırın; Günlük bunun gibi girişlerle ilerlemeye başlamalıdır:
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
Bu, müşteriler önbelleği görüyor ancak henüz bir şeyi önbelleğe almadığı için beklenen, eksik olduğu anlamına geliyor. Her sonraki çalıştırmada TCP_HIT olarak görünmelidir. Kalamar önbellek dosyalarını kendi içinde bulabilirsiniz /var/cache/squid-deb-proxy
.
Onu kullanarak
O andan itibaren ağınızdaki tüm makineler paketleri almak için dış ağa vurmadan önce önbelleği kontrol eder. Kullanılabilir yeni paketler varsa, ilk makine onu ağdan indirecek, daha sonra bu paket için talepler sunucudan istemcilere gelecektir.
YAPMAK
Ağda yalnızca kutudan çıkan bir reklam önbelleğini kullanmaya ve varsayılan olarak istemci parçasını kurmanıza gerek kalmaması için apt özelliğini etkinleştirmemiz gerekiyor. Ayrıca 403'lerin borçlarının ayna listesinde olmadığı hatasını düzeltmemiz gerekiyor .