Τι είναι το lancache;
Το lancache είναι ένα proxy όπου “κοιτάει” την κίνηση του δικτύου μας και αποθηκεύει τοπικά ένα αντίγραφο των μη κρυπτογραφημένων αρχείων που περνάνε μέσα από το δίκτυο με αποτέλεσμα το επόμενο pc που θα πάει να πάρει το ίδιο αρχείο, να το πάρει από το τοπικό lancache και όχι από το internet.
Ποιοι το έχουν ανάγκη;
Το lancache βοηθάει πάρα πολύ σε δίκτυα με αρκετούς Η/Υ ή/και αργό internet.
Για παράδειγμα, φανταστείτε μια γραμμή 10mbps και ένα παιχνίδι 100gb και να είναι στο σπίτι 4 pc. Αν κάθε από τα 4 pc το κατεβάσει από το internet 100gb την φορά, τότε μιλάμε για αρκετές μέρες κατεβάσματος.
Με το lancache το κατεβάζει ο πρώτος 1 φορά όπως θα το κατέβαζε κανονικά αλλά οι άλλοι 3 θα το πάρουν από το lancache με ταχύτητες LAN*.
Σε μένα στο σπίτι για παράδειγμα με 2 desktop pc, καμιά 10αριά VM αλλά και το Steam Deck, με βοηθάει πάρα πολύ σε πολλά πράγματα,
στην δουλειά δεν κάνουμε gaming(φυσικά) αλλά φτιάχνουμε πολλά pc κάθε μέρα, πιο πριν κάθε pc κατέβαζε από το internet τα windows updates, τώρα όλα τραβάνε τοπικά!
Το μόνο που βλέπω είναι για λίγο downloading και αμέσως μετά installing!
Τι χρειάζομαι για να στήσω ένα lancache;
Χρειαζόμαστε ένα pc με linux και docker, 1 cpu core είναι αρκετό αλλά θα χρειαστούμε 4gb ram και άνω και τέλος στατική IP για το Vm/PC που θα παίξει τον ρόλο του lancache.
Αν μιλάμε για κάποιο dedicated μηχάνημα που θα “σερβίρει” πολλά pc, τότε ένα 8 core 32gb ram θα κρατήσει για καιρό. ….Α ναι! και το πιο σημαντικό; Χώρο! Πολύ χώρο!
Επειδή το lancache κρατάει στην cache του αρκετά πράγματα (windows update (WSUS), google chrome updates, adobe reader και άλλα) θα πρέπει να έχετε πολύ χώρο. Αν για παράδειγμα λέτε ότι θέλετε 500gb για cache …θα πάτε στο 1TB τότε σαν ελάχιστο. Γενικά το διπλάσιο από ότι έχετε στο μυαλό.
*Πόσο γρήγορα μπορεί να πάει το lancache;
Παίζουν αρκετά πράγματα ρόλο για το πόσο γρήγορα μπορεί να τρέξει, πχ ταχύτητα κάρτας δικτύου, ταχύτητα του switch που θα μπει, ταχύτητα hdd/ssd είναι μερικά από αυτά που μπορούν να παίξουν ρόλο για το πόσο γρήγορα μπορεί να πάει.
Σε δικές μου δοκιμές σε 1gbps lan με nvme ssd, μου έδινε 117mb/s από το lancache προς το pc μου, με λίγα λόγια τα full 1000mbps(1gbps) ταχύτητα του δικτύου.
Αν μπορέσω να πάρω ένα 2.5gbps switch, λόγο του ότι το έχω σε pc με κάρτα δικτύου 2.5gbps και με τον nvme που έχει, θα μπορεί χαλαρά να μου δίνει το μέγιστο των 2.5gbps!
Πως γεμίζει το lancache;
Το lancache γεμίζει παθητικά**, εσείς το μόνο που κάνετε είναι να αλλάξετε στο pc σας το DNS της κάρτας δικτύου ώστε να χτυπάει στην στατική ip του lancache στο δίκτυο σας και μετά αναλαμβάνει μόνο του το lancache να κάνει δουλειά!
Μην περιμένετε όμως μαγικά! Όπως είπα και πιο πάνω, ο πρώτος που θα κατεβάσει κάτι, θα το κατεβάζει σε ταχύτητες όπως κατέβαζε και χωρίς αυτό, δεν θα δει διαφορά. Ο δεύτερος όμως και μετά θα κατεβάζει σε ταχύτητες πολύ μεγαλύτερες αρκεί να έχετε και το υλικό για αυτό (μην περιμένετε από hdd και κάρτα δικτύου 100mbps πχ να πάει σφαίρα)
**Δείτε το άρθρο εδώ
Έχει νόημα να το έχει κάποιος με ένα pc;
Και ναι και όχι.
Ναι γιατί αν πχ κάποιος κάνει συχνά format και επανεγκατάσταση κάποιο standard παιχνιδιών, τώρα με το lancache θα τα τραβάει σφαίρα από το τοπικό δίκτυο μαζί με τα windows updates.
Όχι για κάποιον που δεν κάνει συχνά format ή επανεγκαταστάσεις ή δεν έχει ένα άλλο pc που να παίζει αυτό το ρόλο.
Πως το περνάμε;
Για αρχή λοιπόν θέλουμε ένα pc που να τρέχει linux, στο guide εδώ θα δούμε πως τρέχει σε ubuntu 22.04/debian 11. Πιθανά να τρέχει το ίδιο καλά και άλλες διανομές αλλά δεν το δοκίμασα και δεν θα το δοκιμάσω. Τρέχω ubuntu & debian servers και manjaro για desktop και δεν θα ασχοληθώ με άλλες διανομές, αν κάποιος το δοκιμάσει και θέλει να μοιραστεί ας απαντήσει από κάτω και θα τα προσθέσω εδώ.
Αφού λοιπόν έχουμε έναν καθαρό ubuntu/debian server στο δίκτυο μας με στατική ip, θα μπούμε ως root και θα δώσουμε στο τερματικό αυτές τις γραμμές:
curl -fsSL https://get.docker.com -o get-docker.sh
chmod +x get-docker.sh
sh get-docker.sh
Η πρώτη κατεβάζει τον docker installer, η δεύτερη τον κάνει εκτελέσιμο και η τρίτη τρέχει την εγκατάσταση του docker.
Το αφήνουμε να τελειώσει.
Υπάρχει περίπτωση να μην έχετε κάποια packages όπως το curl/git κτλ οπότε θα δώσετε:
apt install curl git nano -y
και μετά ξανά από την αρχή.
Μετά δίνουμε τις επόμενες εντολές:
git clone https://github.com/lancachenet/docker-compose lancache
cd lancache
Επόμενο είναι να κάνουμε τροποποίηση το .env:
nano .env
Εδώ θα πρέπει να του δώσουμε την στατική ip που θα έχει ο ubuntu/debian server μας πχ:
192.168.1.100
LANCACHE_IP=192.168.1.100
DNS_BIND_IP=192.168.1.100
UPSTREAM_DNS=1.1.1.1 (ή ότι άλλο θέλετε αλλά έλεος με το 8.8.8.8! τόσο πολύ θέλετε να ξέρει η google τι κάνετε στο internet; )
CACHE_ROOT=./lancache (Εδώ είναι που θα πάει το cache του lancache, καλό είναι να το πάτε πχ /lancache αφού κάνετε έναν φάκελο εκεί, βοηθάει αν θέλετε μελλοντικά να μεταφέρετε την ήδη κατεβασμένη cache σας σε άλλον server)
CACHE_DISK_SIZE=2000000m (Εδώ θα βάλετε περίπου το 90% του δίσκου που έχει το VM σας. Όχι το 100% γιατί αν τερματίσει, ίσως κρεμάσει όλο το server…)
CACHE_MAX_AGE=3650d(Πόσες μέρες θα μείνουν τα αρχεία στην cache, γενικά καλό είναι να είναι ένα μεγάλο νούμερο)
TZ=Europe/Athens
Πατάμε CTRL + O μετά enter και μετά CTRL + X (Για να αποθηκεύσουμε τις αλλαγές και μετά έξοδο).
Τέλος:
docker compose up -d
Προσθήκη στον οδηγό: Αυτόματη εκκίνηση του lancache
μιας που είμαστε στον φάκελο του lancache ας κάνουμε ένα ακόμα edit:
nano enable_autostart.sh
μέσα στο αρχείο αυτό προς το τέλος θα βρούμε το: docker-compose up -d
Θα το αλλάξουμε όπως στην φωτογραφία, θα βγάλουμε την παύλα – και θα μείνει σκέτο: docker compose up -d
CTRL + O, enter CTRL + X
chmod +x enable_autostart.sh
sh enable_autostart.sh
Με αυτόν τον τρόπο το lancache θα τρέχει μαζί με το vm/pc όταν αυτό ανοίγει!
Υπάρχει και το update_containers.sh το οποίο και αυτό θα χρειαστεί edit για να βγει η παύλα -,
nano update_containers.sh
chmod +x update_containers.sh
sh update_containers.sh
και το τρέχουμε για να δούμε αν υπάρχει κάποια ενημέρωση του lancache.
Αν το έχετε σε VM, θα έλεγα ένα backup πριν το update για καλό και για κακό. Σε μένα το έχω κάνει 2 updates και δεν είχα θέμα αλλά δεν βλάπτει λίγη προσοχή!
Καλά κατεβάσματα!
Ευχαριστίες/Credits:
1)Στην ομάδα του lancache
2)Στον φίλο/συνάδελφο και φανταστικό linuxά Μαγικό από το red-net.gr που με έβαλε στον κόσμο του docker και έμαθα αρκετά πράγματα