Προς το περιεχόμενο

Lancache


comfuzio
Μετάβαση στην απάντηση Απαντήθηκε από chmaikos,

Προτεινόμενες αναρτήσεις

Δημοσ. (επεξεργασμένο)

Καλησπέρα, 
Ανοίγω το τοπικ εδώ αν και είναι πιο πολύ linux server side δουλειά γιατί αφορά κυρίως το gaming και τα lan parties.

 

Τι είναι το 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 πχ να πάει σφαίρα)
**Λίγο πιο κάτω έχει μπει το 2ο μέρος με το Prefill

Έχει νόημα να το έχει κάποιος με ένα 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

image.png.6c69955b67b25014320e5bed7fa04f7a.png

Η πρώτη κατεβάζει τον docker installer, η δεύτερη τον κάνει εκτελέσιμο και η τρίτη τρέχει την εγκατάσταση του docker.
Το αφήνουμε να τελειώσει
.
image.png.7512ae82a5b73ecbfdc780a990e90f05.png

Υπάρχει περίπτωση να μην έχετε κάποια 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

image.png.658433c1536c5e637cbc456f7c9c147f.pngLANCACHE_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

image.png.0b8ebb24102688c7caff4ecd06889038.png
με αυτήν την εντολή το lancache θα κατέβει και θα τρέξει!
Το μόνο που μένει μετά είναι να πάμε στο gaming pc μας και να αλλάξουμε την IP του DNS Server μας στην στατική ip του lancache. Ίσως χρειαστεί ένα restart το pc μας ή από CMD με admin rights ένα ipconfig /flushdns

Προσθήκη στον οδηγό: Αυτόματη εκκίνηση του lancache
μιας που είμαστε στον φάκελο του lancache ας κάνουμε ένα ακόμα edit:
nano enable_autostart.sh
μέσα στο αρχείο αυτό προς το τέλος θα βρούμε το: docker-compose up -d

image.png.44df90a41c661bc7873061b063d46418.png
Θα το αλλάξουμε όπως στην φωτογραφία, θα βγάλουμε την παύλα - και θα μείνει σκέτο: 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 για να βγει η παύλα -, chmod και το τρέχουμε για να δούμε αν υπάρχει κάποια ενημέρωση του lancache.
Αν το έχετε σε VM, θα έλεγα ένα backup πριν το update για καλό και για κακό. Σε μένα το έχω κάνει 2 updates και δεν είχα θέμα αλλά δεν βλάπτει λίγη προσοχή!

Καλά κατεβάσματα!

 

**μέρος 2ο για το επιλεκτικό (προ)κατέβασμα παιχνιδιών από το Steam

Με το Steam-Lancache-Prefill θα μπορέσουμε να προκατεβάσουμε (prefill) παιχνίδια του steam στο lancache μας!

Το παρόν guide μπορεί να τρέξει στον ίδιο τον lancache server μας ή και από άλλο pc στο ίδιο δίκτυο με τον lancache server μας.

Αφού μπούμε στον server μας ή σε κάποιο άλλο pc με linux στο ίδιο δίκτυο ως root, τρέχουμε στο τερματικό:
docker run -it --rm --net=host \
--volume ~/.config/SteamPrefill:/Config \
tpill90/steam-lancache-prefill:latest

image.png.8126f0c5154d3b28b4774f5e23a0f4ce.png

Όταν τελειώσει το κατέβασμα του docker image του prefill πάμε πάλι στο τερματικό και δίνουμε το:
docker run -it --rm --net=host \
--volume ~/.config/steam-prefill:/Config \
tpill90/steam-lancache-prefill:latest \
select-apps

Θα κάνουμε login με τα στοιχεία του steam μας, ναι θέλει προσοχή να μπουν τα σωστά γιατί τραβάει την gamelist που ανήκει σε εμάς και όχι γενικά τα πάντα όλα του steam (με λίγα λόγια δεν μπορούμε να τραβήξουμε παιχνίδια που δεν έχουμε αγοράσει).

Θα δούμε ένα παράθυρο σαν αυτό:
image.png.dbabd1a395a0a2b5a50929aa0d38eca4.png
Όπου μπορούμε να κάνουμε αναζήτηση τον τίτλο που θέλουμε να γεμίσει η cache του lancache μας, αφού βρούμε πιο θέλουμε, πατάμε space για να το επιλέξουμε, ναι μπορούμε να επιλέξουμε πολλά μαζί, και μετά πατάμε "yes" και το αφήνουμε να κάνει τα μαγικά του.

image.png.ef8af4b8551c9f5158a84ce53273de0c.png
Όταν τελειώσει, πάμε στο gaming pc μας, ανοίγουμε το steam, αναζητάμε τον τίτλο που κατεβάσαμε στο lancache και αν είναι όλα καλά, θα πρέπει να δούμε ταχύτητες ανώτερες της γραμμής μας (εφόσων δεν έχουμε γραμμή 1gbps στο σπίτι μας δλδ!)
image.png.e6a0e88045daf37f52d6305f491cfcbf.png
Υπάρχει prefill client και για windows όπου αφού το αποσυμπιέσουμε σε έναν φάκελο, θα πάμε εκεί με το CMD και θα τρέξουμε τα ίδια commands με το linux απλά όπου έχει \ πρέπει να το γυρίσουμε σε /

 

Κάτι ακόμα, όχι δεν μπορούμε να μεταφέρουμε στο lancache ένα παιχνίδι που έχουμε ήδη κατεβάσει στο pc μας.
Τα αρχεία που κατεβαίνουν είναι σε άλλο format σε σχέση με τα εγκατεστημένα αρχεία που έχουμε ήδη στο pc μας.

Mέρος 3ο για αναβάθμιση των παιχνιδιών που έχουμε κατεβάσει με το prefill

Όπως και πιο πάνω με το prefill, θα μπούμε σε κάποιο τερματικό και θα δώσουμε το:
docker run -it --rm --net=host \
--volume ~/.config/steam-prefill:/Config \
tpill90/steam-lancache-prefill:latest \
prefill

image.png.255ba0917e2c9a9b93e3f04d09eb1971.png
Αν δεν υπάρχει κάποιο update θα δείτε μια εικόνα σαν την από πάνω, αν υπάρχει update, το prefill θα ξεκινήσει αυτόματα να κατεβάζει την ενημέρωση.

Μιας που γράφω για αναβαθμίσεις αν το ίδιο το prefill έχει αναβάθμιση θα μας το βγάλει στην οθόνη, για να περάσουμε την αναβάθμιση τρέχουμε:
docker pull tpill90/steam-lancache-prefill:latest

Ευχαριστίες/Credits:
1)Στην ομάδα του lancache
2)Στην ομάδα του steam-lancache-prefill
3)Στον φίλο/συνάδελφο και φανταστικό linuxά @chmaikos όπου με έβαλε στον κόσμο του docker και έμαθα αρκετά πράγματα :D

Επεξ/σία από comfuzio
  • Like 5
  • Thanks 4
Δημοσ.
5 ώρες πριν, ilos είπε

Πολύ καλός οδηγός και αναλυτικότατος ακόμα και για αρχάριους στο linux.👍

Ευχαριστώ! Αλλά είναι μερικά βήματα που δεν έχω γράψει όπως πχ για το πως βάζουμε στατική IP το οποίο είναι ίσως και το πιο βασικό.
Αν κάποιος κάνει ένα τέτοιο καθαρό VM ή καθαρή εγκατάσταση, περάσει μια στατική IP, μετά απλά τρέχει αυτά τα βήματα και ίσως σε λιγότερο από 5 λεπτά θα το έχει να τρέχει!
Σημαντικό να πω είναι πως άμα λειτουργεί, το βάζουμε στο router του σπιτιού μας/γραφείου μας να το μοιράζει ως το μόνο DNS έτσι ώστε να μην το κάνουμε με το χέρι σε κάθε pc/κινητό/κονσόλα. Απλά να βεβαιώσουμε είτε το δίνει το router είτε το βάλουμε χειροκίνητα μόνοι μας στο pc μας, ότι θα τρέχει πάντα αυτό το VM/PC καθώς αν κλείσει ή δεν τρέχει η υπηρεσία, δεν θα έχουμε internet στο pc μας

  • Thanks 1
  • 4 εβδομάδες αργότερα...
Δημοσ.

Epic-lancache-prefill

Με το Epic-Lancache-Prefill θα μπορέσουμε να προκατεβάσουμε (prefill) παιχνίδια του Epic στο lancache μας ακόμα και έξω από το δίκτυο μας!

Το παρόν guide μπορεί να τρέξει στον ίδιο τον lancache server μας ή και από άλλο pc στο ίδιο δίκτυο με τον lancache server μας.

Αφού μπούμε στον server μας ή σε κάποιο άλλο pc με linux στο ίδιο δίκτυο ως root, τρέχουμε στο τερματικό:
docker run -it --rm --net=host \

  --volume ~/.config/EpicPrefill:/Config \
  tpill90/epic-lancache-prefill:latest

 

Όταν τελειώσει το κατέβασμα του docker image του prefill πάμε πάλι στο τερματικό και δίνουμε το:
docker run -it --rm --net=host  \
  --
volume ~/.config/epic-prefill:/Config \
 
tpill90/epic-lancache-prefill:latest \
  select-apps

image.png.dde2bfc14e88da49904015bd6b3267c3.png

Θα μπούμε στο https://legendary.gl/epiclogin, (υποθέτω ότι έχετε κάνει ήδη login στον browser σας στο epic, αν όχι, κάντε login και μπείτε ξανά στο link) και ναι θέλει προσοχή να μπουν τα σωστά γιατί τραβάει την gamelist που ανήκει σε εμάς και όχι γενικά τα πάντα όλα του Epic (με λίγα λόγια δεν μπορούμε να τραβήξουμε παιχνίδια που δεν έχουμε αγοράσει) και θα πάρουμε το authorizationCode και θα το κάνουμε επικόλληση στο τερματικό, φυσικά μετά πατάμε Enter.

Θα δούμε ένα παράθυρο σαν αυτό:

image.png.11cf1f38b81d9964682651412230a2e0.png
Όπου μπορούμε να κάνουμε αναζήτηση τον τίτλο που θέλουμε να γεμίσει η cache του lancache μας, αφού βρούμε πιο θέλουμε, πατάμε space για να το επιλέξουμε, ναι μπορούμε να επιλέξουμε πολλά μαζί, και μετά πατάμε "yes" και το αφήνουμε να κάνει τα μαγικά του.

image.png.0bc976f7791c580bb0a29c28c4fb7f06.png


Μπορούμε να επιλέξουμε πολλούς τίτλους μαζί.

image.png.95c3bdfed9fb560f7384d4cf1e60ecb8.png


Όταν τελειώσει, πάμε στο gaming pc μας, ανοίγουμε το Epic Launcher, αναζητάμε τον τίτλο που κατεβάσαμε στο lancache και αν είναι όλα καλά, θα πρέπει να δούμε ταχύτητες ανώτερες της γραμμής μας (εφόσον δεν έχουμε γραμμή >1gbps στο σπίτι μας δλδ!)
 

 

Υπάρχει prefill client και για windows όπου αφού το αποσυμπιέσουμε σε έναν φάκελο, θα πάμε εκεί με το CMD και θα τρέξουμε τα ίδια commands με το linux απλά όπου έχει \ πρέπει να το γυρίσουμε σε /

Κάτι ακόμα, όχι δεν μπορούμε να μεταφέρουμε στο lancache ένα παιχνίδι που έχουμε ήδη κατεβάσει στο pc μας.
Τα αρχεία που κατεβαίνουν είναι σε άλλο format σε σχέση με τα εγκατεστημένα αρχεία που έχουμε ήδη στο pc μας.

Mέρος 2ο για αναβάθμιση των παιχνιδιών που έχουμε κατεβάσει με το prefill

Όπως και πιο πάνω με το prefill, θα μπούμε σε κάποιο τερματικό και θα δώσουμε το:
docker run -it --rm --net=host \
--volume ~/.config/steam-prefill:/Config \
tpill90/epic-lancache-prefill:latest \
prefill

Μιας που γράφω για αναβαθμίσεις αν το ίδιο το prefill έχει αναβάθμιση θα μας το βγάλει στην οθόνη, για να περάσουμε την αναβάθμιση τρέχουμε:
docker pull tpill90/epic-lancache-prefill:latest

Ευχαριστίες/Credits:
1)Στην ομάδα του lancache
2)Στην ομάδα του  epic-lancache-prefill
3)Στον φίλο/συνάδελφο και φανταστικό linuxά Μαγικό από το red-net.gr που με έβαλε στον κόσμο του docker και έμαθα αρκετά πράγματα

 

Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε

Πρέπει να είστε μέλος για να αφήσετε σχόλιο

Δημιουργία λογαριασμού

Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!

Δημιουργία νέου λογαριασμού

Σύνδεση

Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.

Συνδεθείτε τώρα
  • Δημιουργία νέου...