Wie erstelle ich einen APT-Proxy mit einem Raspberry PI mit apt-cacher-ng?

Wenn Sie irgendwo mit langsamerem Internet leben und arbeiten und eine Reihe von Debian- und / oder Ubuntu-Systemen aktualisieren müssen, wird dieser passende Proxy Ihr Leben viel einfacher und schneller machen.


GEEIGNET ist das Programm, mit dem Debian- und Ubuntu Linux-Distributionen ihre Software installieren und aktualisieren. Wenn Sie in ihrer Standardkonfiguration apt verwenden, um ein Programm zu installieren, z.

sudo apt installiere inkscape

APT lädt das Softwarearchiv von den Distributionsrepository-Servern herunter und installiert es. Dies funktioniert hervorragend, wenn das Softwarepaket klein ist, nur wenige Dateien heruntergeladen werden müssen und Ihre Internetverbindung schnell ist.

Wenn Sie jedoch viel Software installieren müssen und ein Büro voller Computer haben, die alle aktualisiert werden müssen, und Sie eine langsame Internetverbindung haben, kann es lange dauern, bis alles auf jeden Computer heruntergeladen und installiert ist.

Ein Proxyserver, insbesondere ein Caching-Proxy, wie z apt-cacher-ng ist ein Programm, das sich zwischen dem Computer befindet, den Sie aktualisieren möchten, und dem Repository-Server, auf dem sich die Software befindet, die Sie herunterladen. Der Computer, den Sie aktualisieren, fordert die Software vom Proxyserver anstelle des Repositorys an. Der Proxy leitet die Anforderung dann an das Repository weiter, lädt die Software herunter und gibt sie an den Aktualisierungscomputer zurück.

Der clevere Teil ist, dass der Proxy eine Kopie aller heruntergeladenen Softwaredateien aufbewahrt. Wenn ein anderer Computer im lokalen Netzwerk versucht, dieselben Dateien herunterzuladen, d. H. Dieselbe Software installieren oder aktualisieren möchte, verfügt der Proxy bereits über eine Kopie, die er dem anfordernden Computer geben kann, ohne sie herunterladen zu müssen.

Nach dem ersten Download werden alle nachfolgenden Downloads mit der Geschwindigkeit Ihres lokalen Netzwerks gezippt.

Bedarf

Um dieses Handbuch zu vervollständigen, benötigen Sie Folgendes:

  • Ein Bildschirm und eine Tastatur zum Anschließen an Ihren Raspberry Pi. Diese sind optional, wenn Sie SSH in Ihren Raspberry Pi einbinden können.
  • Ein nicht root, sudo-fähiger Benutzer auf Ihrem Raspberry Pi.
  • Ein Debian- oder Ubuntu-System in Ihrem lokalen Netzwerk.

Wenn Sie alle diese Anforderungen erfüllt haben, melden Sie sich als Sudo-Benutzer bei einem Terminal auf Ihrem Raspberry PI an und fahren Sie mit dem nächsten Abschnitt fort.

Apt-cacher-ng installieren

Bevor Sie neue Pakete unter Linux installieren, sollten Sie immer ein Systemupdate durchführen. Dadurch wird sichergestellt, dass auf Ihrem System dieselben Paketversionen ausgeführt werden, die in den Distributionsrepositorys verfügbar sind, und dass Ihre lokale Liste der Paketversionen auf dem neuesten Stand ist. Dadurch wird sichergestellt, dass bei der Installation von apt-cacher-ng keine Fehler auftreten.

Die folgenden Befehle aktualisieren Ihr System:

$ sudo apt update
$ sudo apt Upgrade

Jetzt, da Ihr Raspberry PI auf dem neuesten Stand ist, installieren Sie apt-cacher-ng:

$ sudo apt install apt-cacher-ng

Das Installationsprogramm fragt Sie, ob Sie HTTPS-Tunnel über apt-cacher-ng aktivieren möchten. Sie sollten diese Frage mit „Nein“ beantworten. Wir werden APT so konfigurieren, dass HTTPS-Verbindungen über apt-cacher-ng übertragen werden, anstatt Tunnel zu benötigen. Darüber hinaus können Sie diese Optionen später bei Bedarf in der Konfigurationsdatei apt-cacher-ng ändern.

In Übereinstimmung mit modernen Softwarekonventionen wird bei der Installation von apt-cacher-ng eine systemd-Servicedatei erstellt und aktiviert. Dies bedeutet, dass apt-cacher-ng beim Booten automatisch gestartet wird und Sie apt-cacher-ng auch mit den normalen systemd-Dienstbefehlen verwalten können:

$ sudo systemctl start apt-cacher-ng.service
$ sudo systemctl stop apt-cacher-ng.service
$ sudo systemctl starte apt-cacher-ng.service neu

apt-cacher-ng wird jetzt als Systemdämon ausgeführt, der Port 3142 überwacht und bereit ist, Verbindungen von apt zu akzeptieren.

Apt auf dem Raspberry PI konfigurieren

Das erste System, das wir für die Verwendung des apt-cacher-ng-Proxys konfigurieren, ist apt auf dem Raspberry PI. Die Art und Weise, wie wir apt für die Verwendung des apt-cacher-ng-Proxys konfigurieren, besteht darin, die URLs in die Quelldatei von apt neu zu schreiben. Die Quelldatei enthält eine Liste der URLs der Repositorys, unter denen die Software der Distribution heruntergeladen werden kann.

Sie finden die Hauptquellendatei für Raspbian unter /etc/apt/sources.list und sehen bei einer Neuinstallation wie folgt aus:

deb http://raspbian.raspberrypi.org/raspbian/ Buster Hauptbeitrag nicht freies RPI
# Kommentieren Sie die Zeile unter “apt-get update” aus, um “apt-get source” zu aktivieren.
# deb-src http://raspbian.raspberrypi.org/raspbian/ Buster Hauptbeitrag nicht freies RPI

Die einzige aktive (nicht kommentierte) Zeile hier ist die erste, d.h.

deb http://raspbian.raspberrypi.org/raspbian/ Buster Hauptbeitrag nicht freies RPI

Wir müssen diese Zeile ändern, also öffnen Sie die Datei mit einem Texteditor. Hier verwenden wir nano:

$ sudo nano /etc/apt/sources.list

Ändern Sie die erste Zeile so, dass sie wie folgt aussieht:

deb http://127.0.0.1:3142/raspbian.raspberrypi.org/raspbian/ Buster Hauptbeitrag nicht freies RPI

Was Sie hier getan haben, war, 127.0.0.1:3142 in die URL einzufügen.

Die IP-Adresse 127.0.0.1 ist immer die IP des lokalen Computers, die häufig als “localhost” bezeichnet wird. Der Teil: 3142 gibt den Port an.

Speichern und beenden Sie nano, indem Sie STRG + o, EINGABE, STRG + x drücken.

Sie müssen jetzt dieselbe Änderung an einer Quelldatei unter /etc/apt/sources.list.d/raspi.list vornehmen.

apt und apt-cacher-ng können jetzt getestet werden.

Apt mit apt-cacher-ng testen

Immer wenn Sie apt ausführen, wird eine Kopie aller heruntergeladenen Dateien zwischengespeichert. apt tut dies, damit keine unnötigen Downloads durchgeführt werden und auch eine lokale Kopie der Installationsarchive aufbewahrt wird, falls ein Paket neu installiert werden muss und kein Internet vorhanden ist.

Dieses lokale Caching bedeutet, dass apt den Proxy nicht kontaktiert, wenn Sie apt update oder apt upgrade ausführen, wenn sich das Repository nicht geändert hat. Um den Proxy zu testen, müssen wir daher den apt-Cache manuell löschen. Mit den folgenden Befehlen werden alle zwischengespeicherten Pakete von apt gelöscht:

$ sudo rm -rf / var / lib / apt / lists /
$ sudo rm -rf / var / cache / apt / *

Testen Sie apt jetzt, indem Sie ein Update ausführen und nach Fehlern suchen:

$ sudo apt update

Sie sollten mehrere Ausgabezeilen sehen, die wie folgt aussehen:

Get: 1 http://127.0.0.1:3142/raspbian.raspberrypi.org/raspbian buster InRelease [15,0 kB]

Die URL, die mit http://127.0.0.1:3142/ beginnt, gibt an, dass apt die Aktualisierungsdateien von apt-cacher-ng empfängt.

Sie können die apt-cacher-ng-Protokolldatei auch auf Fehler überprüfen, indem Sie diesen Befehl ausführen:

$ tail -f /var/log/apt-cacher-ng/apt-cacher.log

in einem zweiten Terminal. Wenn Sie keine Fehler feststellen, können Sie ein Debian- oder Ubuntu-System in Ihrem lokalen Netzwerk konfigurieren.

Konfigurieren eines Ubuntu- oder Debian-Systems für die Verwendung von apt-cacher-ng

Auf den Debian- oder Ubuntu-Systemen in Ihrem lokalen Netzwerk, die Sie vom apt-cacher-ng-Proxy profitieren möchten, muss keine zusätzliche Software installiert werden. Alles, was Sie tun müssen, ist, ihre Quelldateien neu zu schreiben, damit sie alle ihre Updates von apt-cacher-ng sammeln, anstatt sich direkt an das Repository zu wenden.

Die Änderung, die Sie zum Vornehmen der Quelldateien vornehmen müssen, entspricht genau der Änderung, die Sie an den Quellen auf dem Raspberry PI vorgenommen haben, außer dass Sie anstelle von 127.0.0.1 die IP-Adresse des Raspberry PI verwenden müssen.

Dies bedeutet, dass Sie zuerst die IP-Adresse Ihres Raspberry Pi erhalten müssen. Der einfachste Weg, um die IP-Adresse des Raspberry PI zu erhalten, besteht darin, den folgenden Befehl in einem Terminal auf dem Raspberry PI auszuführen:

$ Hostname -I

Dadurch werden die IP-Adressen des Raspberry PI ausgedruckt. Verwenden Sie die erste IPv4-IP-Adresse. Hier werde ich die Beispieladresse 192.168.0.2 verwenden. Sie müssen die IP-Adresse Ihres Raspberry PI ersetzen.

Öffnen Sie auf dem Client-Computer die Hauptquellendatei mit einem Texteditor. Hier verwenden wir nano:

$ sudo nano /etc/apt/sources.list

Die Datei enthält Zeilen mit demselben Format wie die in der /etc/apt/sources.list des Raspberry PI. Hier ist eine Beispielzeile aus einer Debian Buster-Installation:

deb http://ftp.debian.org/debian buster main

Sie müssen diese Zeilen wie folgt bearbeiten, indem Sie die IP Ihres Raspberry PI verwenden, z.

deb http://192.168.0.2:3142/ftp.debian.org/debian buster main

Bearbeiten Sie alle Zeilen in /etc/apt/sources.list und allen anderen Quellendateien unter /etc/apt/sources.list.d/. Löschen Sie dann alle lokal zwischengespeicherten Dateien zum Testen:

$ sudo rm -rf / var / lib / apt / lists / *
$ sudo rm -rf / var / cache / apt / *

Aktualisieren Sie das System erneut:

$ sudo apt update
$ sudo apt Upgrade

Die Ausgabe von apt sollte anzeigen, dass die Aktualisierungsdateien vom apt-cacher-ng-Proxy stammen, indem Zeilen wie die folgenden gedruckt werden, die die IP des Proxys enthalten:

Treffer: 1 http://192.168.0.2:3142/ftp.debian.org/debian buster InRelease

Dieser Computer ist jetzt vollständig für die Verwendung Ihres neuen apt-Proxys konfiguriert. Sie müssen in Zukunft alle neuen Quelldateien bearbeiten, die Sie diesem Computer hinzufügen, einschließlich aller neuen Zeilen, die für Distributions-Upgrades hinzugefügt werden.

APT über HTTPS

Die Quelldateien, die wir bisher betrachtet haben, haben alle HTTP-Verbindungen verwendet. Dies ist eine bewusste Entwurfsentscheidung von Debian und Ubuntu, da in den Installationsarchiven interne kryptografische Signaturen integriert sind, die böswillige Manipulationen verhindern. HTTPS bietet daher nicht viel zusätzliche Sicherheit und erhöht gleichzeitig die technische Belastung durch eine große Anzahl geografisch unterschiedlicher Spiegel erheblich.

Die Verwendung von HTTPS bietet jedoch einige Vorteile, die bedeuten, dass einige nicht offizielle Repositorys HTTPS verwenden. apt-cacher-ng unterstützt zwei Methoden zum Umgang mit HTTPS-Repositorys.

Die erste besteht darin, die Verbindungen vom Client direkt an den Repository-Server weiterzuleiten. Dies hat die unglückliche Folge, dass die Pakete nicht von apt-cacher-ng zwischengespeichert werden. Wenn Sie apt-cacher-ng in diesem Modus ausführen möchten, öffnen Sie /etc/apt-cacher-ng/acng.conf mit einem Texteditor:

$ sudo nano /etc/apt-cacher-ng/acng.conf

Und fügen Sie die folgende Zeile hinzu:

PassThroughPattern :. *

Dadurch wird apt-cacher-ng so konfiguriert, dass die HTTPS-Verbindungen vom Client zum Repository übertragen werden können.

Die zweite Methode besteht darin, die Repository-Zeilen in den Quelldateien des Clients so zu ändern, dass der Client über HTTP eine Verbindung zu apt-cacher-ng herstellt, apt-cacher-ng dann jedoch über HTTPS eine Verbindung zum Repository herstellt. Die Pakete werden über HTTPS auf apt-cacher-ng heruntergeladen und dann über HTTP an den Client-Computer gesendet. apt-cacher-ng kann die Pakete zwischenspeichern und wir verlieren nicht die Vorteile von HTTPS.

Die folgende Quellenzeile dient zum Zugriff auf das Docker-Repository über HTTPS:

deb [arch = amd64] https://download.docker.com/linux/debian buster stabil

Beim Bearbeiten von HTTP-Zeilen haben Sie der URL 192.168.0.2:3142 hinzugefügt. Wenn Sie HTTPS-Zeilen bearbeiten, müssen Sie 192.168.0.2:3142/HTTPS/// hinzufügen, z.

deb [arch = amd64] http://192.168.1.67:3142/HTTPS///download.docker.com/linux/debian buster stabil

Jetzt fordert der Client-Computer das Paket von apt-cacher-ng über HTTP an und apt-cacher-ng lädt die Pakete von Docker über HTTPS herunter und speichert sie zwischen.

Apt-Cacher-ng verwalten

Für die Verwaltung von apt-cacher-ng in Ihrem lokalen Netzwerk steht eine Web-GUI zur Verfügung. Um auf diese GUI zugreifen zu können, müssen Sie Ihren Browser auf Folgendes verweisen:

http: //: 3142 / acng-report.html

Durch Ersetzen der Beispiel-IP des lokalen Netzwerks 192.168.0.2 erhalten wir:

http://192.168.0.2:3142/acng-report.html

Der erste und wichtigste Abschnitt der GUI, “Statistik übertragen”, enthält Informationen zur Datenmenge, die aus den Repositorys heruntergeladen wurde, gegenüber den Daten, die aus dem Cache bereitgestellt wurden. Das folgende Bild zeigt diesen Abschnitt der GUI:

Im Abschnitt “Cache-Effizienz” erfahren Sie, wie viele Dateien apt-cacher-ng aus dem Cache Vs bereitgestellt hat, die den Cache umgangen haben. “Treffer” geben Dateien an, die der Proxy aus dem Cache bereitgestellt hat, und “Misses” sind Dateien, die der Proxy-Computer aus dem Repository heruntergeladen und dem Cache hinzugefügt hat.

Cache verwalten

Die Dateien, die apt-cacher-ng herunterlädt und auf den Client-Computern in Ihrem lokalen Netzwerk bereitstellt, werden veraltet, wenn die Entwickler dem Repository eine neue Version hinzufügen. In diesem Fall müssen diese veralteten Apt-Cacher-ng sie aus dem Cache entfernen, da sie nicht mehr benötigt werden und Speicherplatz auf Ihrem Laufwerk belegen. Der Raspberry PI überprüft den Cache und entfernt die veralteten Dateien automatisch.

Bei der Installation von apt-cacher-ng haben Sie auch eine Cron-Datei installiert unter:

/etc/cron.daily/apt-cacher-ng

Dies wird jeden Tag von cron ausgeführt, wodurch der Cache für Sie geleert wird.

Wenn Sie den Cache manuell überprüfen und löschen möchten, sollten Sie sich bei der Web-GUI anmelden und auf die Schaltfläche “Scan und / oder Ablauf starten” klicken. Dies ist normalerweise nicht erforderlich. Möglicherweise müssen Sie dies jedoch tun, wenn Sie von schnell aktualisierten Repositorys aktualisieren.

Sie haben jetzt einen effizienten geeigneten Proxy, der die Netzwerkbelastung durch große, wiederholte Systemaktualisierungen in Ihrem Büro oder zu Hause verringert.

Interessiert an der Erkundung von Raspberry Pi, Schauen Sie sich diesen Online-Kurs an.

Jeffrey Wilson Administrator
Sorry! The Author has not filled his profile.
follow me
    Like this post? Please share to your friends:
    Adblock
    detector
    map