LanCache – Der Cache-Server für dein Netzwerk!

Ich habe schon einmal eine Anleitung geschrieben, wie man einen Cache-Server für diverse Dienste in seinem Netzwerk mit Docker aufsetzen kann.
Nun haben die Entwickler des Projekts, das ganze etwas einfacher gestaltet, sodass man das ganze mit weniger Befehlen, Ips und laufende Docker-Container hin bekommt.

Mit dieser kurzen Anleitung, zeige ich dir wie es geht!

Vorraussetzungen:
– CPU: Minimum 4×2,0Ghz (um so mehr Nutzer, um so mehr Last liegt an!)
– RAM: Minimum 4GB (mehr ist besser)
– GPU: Nicht unbedingt
– HDD: Minimum 200GB (2TB sind ehr besser) → SSDs empfohlen!
– Netzwerk: Minimum 1Gbit/s
– System: Liniux Debian / Ubuntu / Mint (empfohlen)
– Vollen Root-Zugang (SSH ausreichend)
– Eine freie IP-Adresse

 

Vorteil dieser Anleitung: Sie ist kürzer und schneller umzusetzen. Benötigt weniger IP-Adressen und deckt alle wichtigen Dienste ab.
Nachteil dieser Anleitung: Wer mehrere Festplatten als Zwischenspeicher für die Dienste nutzen will, kann diese nicht nutzen. Er muss diese via RAID oder LVM zusammenfassen.

Wie du ein Linux-Server aufsetzt, zeig ich hier nicht. Das solltes du vor Beginn dieser Anleitung bereits umgesetzt haben.
Weise dem Server ein feste IP-Adresse zu! Sollte sich die IP-Adresse ändern, muss diese Änderung auf jedem Client am Ende aktualisiert werden.


Los gehts!

1. Logge dich auf deinem Linux-Server ein.

2. Update den Server auf die neusten Paketversionen

apt update && apt upgrade -y

3. Installiere Docker und alle notwendigen Pakete

sudo apt install curl -y
sudo curl -sSL https://get.docker.com/ | sh

4. Überprüfe die Funktionalität von Docker

sudo systemctl status docker

5. Downloade und starte den LanCache-Docker-Container. Ersetze DIE-IP-DES-SERVERS durch die IPv4-Adresse, die dem Server zugeordnet ist

docker run --restart unless-stopped --name lancache -v /cache/data:/data/cache -v /cache/logs:/data/logs -p DIE-IP-DES-SERVERS:80:80 lancachenet/monolithic:latest

6. Downloade und starte den LanCache-DNS-Docker-Container für HTTP-Verbindungen. Ersetze DIE-IP-DES-SERVERS durch die IPv4-Adresse, die dem Server zugeordnet ist

docker run --restart unless-stopped --name lancache-dns -p DIE-IP-DES-SERVERS:53:53/udp -e USE_GENERIC_CACHE=true -e LANCACHE_IP= DIE-IP-DES-SERVERS lancachenet/lancache-dns:latest

7. Downloade und starte den LanCache-SNIProxy-Docker-Container für HTTP-Verbindungen. Ersetze DIE-IP-DES-SERVERS durch die IPv4-Adresse, die dem Server zugeordnet ist

docker run --restart unless-stopped --name lancache-sniproxy -p DIE-IP-DES-SERVERS:443:443 lancachenet/sniproxy:latest

8. Füge nun in deinem Router den LanCache-Server als DNS-Server hinzu oder trage die IP-Adresse des LAN-Servers auf jedem Client als DNS-Server ein.
Zusätzlich solltest du den Support für IPv6 deaktivieren, da der Docker-Container nur auf IPv4 hört!
Leere auch am besten den DNS-Cache des Systems und der Clients (Bei Steam z.B. in dein Einstellungen -> Downloads)

9. Starte deine Clients neu und beginn mit den Downloads

Die Auslastung der Docker-Container kannst du mit docker stats anzeigen lassen.

Nun lädst du deine Daten über den Cache-Server!


Der LanCache-Server soll unter anderem mit folgenden Diensten funktionieren:
Steam, Origin, uPlay, Epic Games, Rockstar Games, Riot Games, Blizzard, Windows Updates, Xbox Live Games und vielen mehr.

Bei meinen Tests konnte ich feststellen, das Origin nicht funktioniert hat und der Client immer über das Internet geladen hat.


Tipps zum Schluss:

Bandbreitenmaximierung:
Verwende SSDs für schnelleren Speicherzugriff.
Verwende viel RAM im Server, damit viele Daten dort ausgelagert werden können und noch schneller abrufbar sind.
Nutze mehrere Netzwerkkarten im Server und bündele diese. So kannst du noch mehr Daten transferieren.
Falls dein Switch ein 10GBit/s Port hat, besorge dir eine passende Netzwerkkarte.

Immer volle Downloadgeschwindigkeit:
Wenn du im Besitz eines Servers in einem Rechenzentrum bist, kannst du dort ebenfalls den Cache-Server installieren. Setze einfach die IP deines Server als DNS-Server und profitiere von ihm, wenn Steam, Origin & Co. Mal wieder überlastet ist.
Du kannst diese Bandbreite auch deinen Freunden zur Verfügung stellen.

Gut & Günstig:
Die Verwendung von 2 „guten“ HDD-Festplatten, welche zu einem RAID0 verbunden sind, reicht an Geschwindigkeit für eine 1Gbit/s Verbindung vollkommen aus.
So hast du viel Speicher, für wenig Geld, um dein Netzwerk zu befüttern.

Werbefrei und flott:
Falls du auch ein Pi-Hole installiert hast, kannst du es weiterhin nutzen und dein Netzwerk Werbefrei halten.
Die Route sollte wie folgt aufgebaut werden:
Variante 1: Dein PC -> Cache-Server -> Pi-Hole -> Router -> Internet
Variante 2: Dein PC -> Pi-Hole -> Cache-Server -> Router -> Internet
Variante 3: Dein PC -> Router -> Pi-Hole -> Cache-Server -> Internet (Empfohlen da geringsten Konfigurationsaufwand)
Ein Tutorial zur Installation eines Pi-Holes findest du HIER.

Hardware statt Software:
Um ein Effizienten Cache-Server zu haben und vor allem die Festplatte voll ausreizen zu können, nutze keine Virtuellen Maschinen.
Diese bremsen das System aus, da die Zugriffszeiten auf Daten durch die Virtualisierung verlangsamt werden.
Dies merkt man sehr schnell, wenn mehr als drei oder vier Personen gleichzeitig die Daten „downloaden“.

VMware VS. VirtualBox:
Beides sind gute Programme um Betriebssysteme zu virtualisieren. Den besten Datendurchsatz haben wir allerdings mit VirtualBox und dem standard Festplattenformat erzielt.

Noch mehr zum Cachen:
Es gibt noch weitere Projekte, welche die Daten anderer Plattformen cachen.
Mit dem Projekt Cache-Domains, können folgende Dienste noch in den Cache geschoben werden, um dein Netzwerk zu beschleunigen:
Apple, ArenaNET, DayBreak, Epic Games, Hirez, Nexusmods, Neverwinter, Nintendo, Renegade, Rockstar Games, Sony (Playstation), Teso (The Elder Scrols Online), Twitch, Warframe, Wargaming und Xbox Live.
Mehr Infos dazu gibts HIER.


Mehr Infos zu LanCache gibts HIER auf der Entwicker-Seite.

3 Kommentare

  1. Hallo,

    vielen Dank für die Anleitung, es hat auch alles soweit funktioniert.
    Allerdings wird nach einem neustart des Servers bei den Usern keine Adresse mehr aufgelöst. Quasi ist der DNS Services vom Lan Cache Server nicht mehr aktiv. Konnte bis jetzt nicht herausfinden woran dies liegt. Verwende Linux Mint 19.3 64 Bit, als Speicher hab ich zwei 1TB HDD´s im RAID0.

    • Hallo!
      Das freut mich zu hören.
      Das Problem tritt leider aktuell auf, da Linux Mint 19.2 und 19.3 mit systemd resolve ausgeliefert werden.
      Dieser Prozess belegt Port 53, da er für die Systemeigene DNS-Auflösung genutzt wird.
      Deaktiviert man ihn (sudo systemctl stop systemd-resolved), kann das System selbst keine DNS-Anfragen mehr Auflösen, dafür aber der Docker-Container.
      Habe aktuell noch keine brauchbare Lösung gefunden :S

  2. Hallo,
    das ist echt eine gute Anleitung, allerdings muss sie noch ein wenig erweitert werden.

    Jetzt meine Frage:
    Wie kann ich den Update Cache löschen ? Denn mit jedem neuen Build von Windows sind die alten update ja hinfällig.
    Und irgendwann ist ja auch der Speicherplatz voll.

Kommentar verfassen