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.