Ich habe einige Nachforschungen angestellt und einige Ubuntu-Entwickler haben eine Proxy-Konfiguration (basierend auf Squid) für 10.04 und höher entwickelt. Es heißt squid-deb-proxy
. Es ist lediglich eine Maschine erforderlich, die als Server fungiert. Große Organisationen betreiben normalerweise ihre eigenen vollständigen Spiegel, aber für die meisten Menschen ist die On-Demand-Spiegelung ausreichend.
Warum Squid-Deb-Proxy?
- Keine Bearbeitung von Dateien auf der Client-Seite.
- Verwende zeroconf, damit die Clients "zero config" sind
- Verwenden Sie eine vorhandene, solide Proxy-Lösung, anstatt ein neues Tool zu schreiben.
- Einfach für einen typischen Linux-Administrator einzurichten.
Serverkonfiguration
Auf dem Computer, der als Server fungieren soll, installieren Sie das Tool mit:
sudo apt-get install squid-deb-proxy avahi-utils
Starten Sie nun die Service-Bits:
sudo start squid-deb-proxy
Und die Avahi-Bits (Du brauchst das nicht, wenn du am 12.04+ bist):
sudo start squid-deb-proxy-avahi
Dadurch werden der Proxy-Server (der standardmäßig Port 8000 abhört) und die Avahi-Tools installiert, die erforderlich sind, damit sich der Server über zeroconf in Ihrem Netzwerk anmeldet.
Client-Konfig
Auf jedem Computer , auf dem Sie den Cache verwenden möchten (den Clients und dem Server selbst, damit er auch den Cache verwenden kann), müssen Sie das clientseitige Tool installieren, mit dem der Server automatisch gesucht werden kann. Klicken Sie hier :
oder über die Kommandozeile:
sudo apt-get install squid-deb-proxy-client
Optional : Um eine maximale Effizienz zu erzielen, sollten Sie einen Computer so einstellen, dass Updates automatisch heruntergeladen werden, sodass sie sich bereits im Cache befinden, wenn Ihre anderen Computer sie benötigen. Gehen Sie dazu zu System-> Administration-> Update Manager und klicken Sie auf die Schaltfläche "Einstellungen ...". Auf der Registerkarte "Update" können Sie festlegen, dass alle Updates automatisch heruntergeladen werden.
Quellen von Drittanbietern zwischenspeichern
Standardmäßig ist der Cache so eingestellt, dass nur offizielle Ubuntu-Repositories zwischengespeichert werden. Um weitere hinzuzufügen, müssen Sie diese der Liste der Quellen unter hinzufügen /etc/squid-deb-proxy/mirror-dstdomain.acl
. Hier können Sie ppa.launchpad.net oder andere Dienste hinzufügen, die Sie möglicherweise verwenden. Nachdem Sie Änderungen an dieser Datei vorgenommen haben, müssen Sie ausgeführt sudo restart squid-deb-proxy
werden, damit die Änderungen wirksam werden.
Manuelle Konfig
Wenn Sie aus irgendeinem Grund kein zeroconf verwenden möchten (aus Netzwerkgründen oder aus irgendeinem Grund), können Sie einen Client manuell für die Verwendung des Proxys einrichten, /etc/apt/apt.conf
indem Sie die folgende Zeilengruppe bearbeiten und hinzufügen (ersetzen Sie 0.0.0.0 durch die IP-Adresse des Servers) ):
Acquire {
Retries "0";
HTTP { Proxy "http://0.0.0.0:8000"; };
};
Firewall
Wenn Sie eine Firewall verwenden, verwendet avahi 5353 über Adressen 224.0.0.0/4 und erfordert eine Regel, die wie folgt aussieht:
# 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
Als Nächstes müssen Sie den TCP-Port 8000 für die eigentliche Kommunikation über den Proxy öffnen. Etwas mehr oder weniger so:
-A INPUT -i eth2 -p tcp -m tcp --dport 8000 -d 192.168.0.1 -s 192.168.0.0/24 --syn -j ACCEPT
Diese Regeln sollen Ihnen nur helfen. Sie stimmen wahrscheinlich nicht mit Ihrem Setup überein. (dh falsche Schnittstelle, falsche IP-Adressen des privaten Netzwerks usw.)
Bestätigung, dass es funktioniert
Schließen Sie zuerst das Protokoll auf dem Server ab, damit Sie es anzeigen können. tail -F /var/log/squid-deb-proxy/access.log
Führen Sie dann ein Update auf jedem Computer aus, auf dem der Client installiert ist. Das Protokoll sollte einen Bildlauf mit Einträgen wie diesem beginnen:
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
Dies bedeutet, dass die Clients den Cache sehen, ihn aber nicht finden, was zu erwarten ist, da noch nichts zwischengespeichert wurde. Jeder nachfolgende Lauf sollte als TCP_HIT angezeigt werden. Sie finden die Squid-Cache-Dateien selbst in /var/cache/squid-deb-proxy
.
Es benutzen
Von da an überprüfen alle Computer in Ihrem Netzwerk den Cache, bevor sie das externe Netzwerk zum Abrufen von Paketen aufrufen. Wenn neue Pakete verfügbar sind, lädt der erste Computer sie aus dem Internet herunter. Anschließend werden die nachfolgenden Anforderungen für dieses Paket vom Server an die Clients gesendet.
MACHEN
Wir müssen weiterhin apt aktivieren, um nur einen angekündigten Cache im Netzwerk zu verwenden, und zwar standardmäßig, damit Sie das Client-Teil nicht installieren müssen. Wir müssen auch den Fehler beheben, dass 403s deb nicht in der Spiegelliste ist.
apt.conf
Datei unter/etc/apt
. Es gibt jedoch eine Vielzahl von Dateien mit Einstellungen unter/etc/apt/apt.conf.d
. Ich würde mir vorstellen, dass wir jetzt stattdessen eine Datei dort anlegen sollten?apt-cacher-ng
ist die Antwort für mich - Ich habe in kleineren Umgebungen (ca. 20 Clients) keine Probleme festgestellt, daher nehme ich an, dass die @MagicFab- Erwähnungen in der aktuellen Version (auf Ubuntu 10.04 und 10.10 installiert) behoben wurden. Für den Server ist keine Konfiguration erforderlich, und Sie müssen Ihre Clients lediglich anweisen, den Server als ihren Paketmanager-Proxy zu verwenden.Der Server wird durch die Installation des Pakets vollständig installiert und konfiguriert
apt-cacher-ng
.Die Clients müssen durch Einrichten des APT-Proxys konfiguriert werden. Fügen Sie dazu die Datei hinzu, die Folgendes
/etc/apt/apt.conf.d/01proxy
enthält (wobei "Ihr APT -Server" der Name oder die IP-Adresse Ihres Servers ist):Fertig - Jetzt werden die Pakete vom Server zwischengespeichert, egal welche Quellen Sie verwenden oder welche Systemversion Sie haben (z. B. kann ein 10.04-Server von 9.10.10.04- und 11.04-Clients ohne Probleme oder Konflikte verwendet werden).
Wenn Client-Laptops zwischen Netzwerken wechseln, wird dies etwas komplexer. Ich habe ein Skript erstellt, mit dem der richtige Proxy in Abhängigkeit von der Netzwerkadresse festgelegt wird. Das Skript ist ausführbar und in
/etc/network/if-up.d/apt-proxy
. Beim Empfang einer IPv4-Adresse von einem DHCP-Server wird das Skript den richtigen Apt-Cacher-Server für das jeweilige Netzwerk festlegen:quelle
squid-deb-proxy
undsquid-deb-proxy-client
übergegangen: zeroconf bedeutet in der Tat null Konfiguration auf Clients, was für nomadische Benutzer äußerst nützlich ist - und falls ein Server nicht antwortet, verwendet der Client standardmäßig den direkten Download.pbuilder
. Das hat sofort funktioniert. Es sieht auch so aus, als ob es Unterstützung fürzeroconf
(im Jahr 2016) gibt, aber ich konnte (noch) nicht erreichen, dass das an meinem Ende funktioniert.Eine der einfachsten Lösungen ist die Einrichtung von apt-proxy.
Lesen Sie die Ubuntu-Dokumentation hier: https://help.ubuntu.com/community/AptProxy
quelle
Ich bevorzuge die Einrichtung eines lokalen Spiegels mit dem
debmirror
Dienstprogramm.Hier ist eine Beispielbeschwörung.
Ich führe das ungefähr einmal in der Woche durch und benutze es als Grundlage für die Einrichtung eines oder mehrerer "Patchlevels". Zum Beispiel...
Dadurch wird eine verknüpfte Kopie des Baums erstellt (der fast keinen Speicherplatz belegt), auf die jeder meiner lokalen Server in der Datei apt sources.list verweisen kann
quelle
In kleinen Netzwerken (wie zu Hause / im kleinen Büro) habe ich apt-cacher-ng mit guten Ergebnissen verwendet. Ich habe die neuesten Versionen noch nicht überprüft, aber ich weiß, dass sowohl Server als auch Clients sorgfältig eingerichtet werden müssen. Sie eignen sich am besten für Clients, die nur Aktualisierungen von Ihrem lokalen Netzwerk erhalten.
Ich habe die obige squid-basierte Lösung ausprobiert, aber es waren mehrere Workarounds und mehr Client-Konfigurationen erforderlich, als ich möchte, sodass es noch nicht so aussieht, als ob es apt-cacher-ng in kleinen Setups ersetzen könnte.
quelle
apt-cacher
war nicht das einfachste einzurichten und wird ein dist-upgrade nicht überleben.Installieren Sie
squid-deb-proxy
auf dem Server,squid-deb-proxy-client
auf den Clients. Es wird null Konf Avahi verwendet, daher ist keine Konfiguration erforderlich.Wenn Sie mehr als nur Debs zwischenspeichern möchten, würde ich mich nicht um Squid kümmern. Apache Traffic Server ist das nächste große Ding. http://trafficserver.readthedocs.org
quelle