Łączenie serwerów za pomocą proxy
W tym poradniku pokażę jak połączyć kilka serwerów minecraft w “sieć” za pomocą proxy. Posłużę się FlameCordem.
1. Wybór silnika proxy
Wybór silnika należy do was, lecz w skrócie opiszę wam kilka z nich.
- BungeeCord - najprostszy, często używany podczas początków z serwerami minecraft. Niestety posiada sporo błędów, przez co nie jest zalecany przy większych projektach.
- Waterfall - fork BungeeCorda, naprawiający część jego błędów oraz z szerszą możliwością konfiguracji.
- FlameCord - fork Travertine - wersji Waterfalla obsługującej minecrafta 1.7. Najlepiej zabezpieczony z powyższych silników proxy.
- Velocity - nie jest forkiem żadnego z silników proxy, jest niezależne. Według wielu osób jest to najlepszy silnik proxy. Główną, i wydaje mi się że jedyną wadą jest niedostępność większości pluginów z BungeeCorda na Velocity.
2. Instalacja i pierwsze uruchomienie proxy
Windows
W przypadku systemu Windows jest to bardzo proste. Wystarczy pobrać naszego FlameCord’a, stworzyć nowy folder, przenieść tam plik FlameCord.jar oraz stworzyć nawet najprostszy plik startowy. W przypadku systemu Windows będzie to plik z rozszerzeniem .bat o treści
java -Xmx1000M -Xms1000M -jar FlameCord.jar
PAUSE
Wartości “Xmx” oraz “Xms” To ilość pamięci RAM zużywanej przez serwer, a “FlameCord.jar” to nazwa pliku .jar z silnikiem proxy. Przy pierwszym uruchomieniu, gdy nie mamy jeszcze żadnych pluginów itp. wiadomości w konsoli powinny wyglądać mniej więcej tak:
Ubuntu
Dla bezpieczeństwa zalecane jest utworzenie nowego użytkownika komendą adduser
(przełączamy się na niego przez su <użytkownik>
.
Aby w ogóle móc uruchomić proxy, musimy zainstalować Javę oraz screen’a, komendami apt install openjdk-11-jre-headless
(jeśli chcecie zainstalować inną wersję Javy, w miejscu 11 należy wpisać inną liczbę) oraz apt install screen
.
Aby stworzyć folder o nazwie np. flamecord
, należy wpisać komendę mkdir /home/flamecord
(możesz pominąć ten krok jeśli utworzyłeś nowego użytkownika). Następnie do nowo utworzonego folderu musimy przenieść silnik proxy. (dla ułatwienia można użyć wget - wget <bezpośredni link do silnika> -O FlameCord.jar
Po tym musimy stworzyć plik startowy wpisując następujące komendy:
cd /home/flamecord
nano start.sh
W pliku wpisujemy:
#!/bin/bash
screen -dmS proxy java -Xmx1G -Xms1G -jar FlameCord.jar
Aby zapisać zmiany, klikamy po kolei CTRL + O, ENTER i CTRL + X.
Teraz musimy nadać uprawnienia do pliku startowego komendą chmod 755 start.sh
.
Proxy uruchamiamy komendą ./start.sh
będąc w lokalizacji z plikami proxy.
Jeżeli nasze proxy uruchamia się poprawnie, możemy przejść do konfiguracji.
3. Konfiguracja proxy oraz serwerów gry
W folderze z naszym proxy otwieramy plik config.yml i zmieniamy w nim następujące rzeczy:
● Zmieniamy wyświetlaną ilość slotów na proxy
listeners:
max_players: (ilość slotów)
● Ustawiamy automatycznie dołączanie na serwer lobby za każdym razem
listeners:
priorities:
lobby
oraz
listeners:
force_default_server: false (zmieniamy false na true)
● Zmieniamy MOTD proxy
listeners:
motd: '(tutaj wpisujemy treść naszego MOTD)'
● Zmieniamy proxy na non-premium (opcjonalnie)
online_mode: true (zmieniamy true na false)
● Zmieniamy administratora serwera
groups:
md_5: (zmieniamy md_5 na swój nick)
- admin
● Włączamy przekazywanie IP
ip_forward: false (zmieniamy false na true)
●Zmieniamy port proxy na standardowy dla minecrafta - 25565
listeners:
host: 0.0.0.0:25577 (zmieniamy 25577 na 25565)
● Dodajemy serwery
w zakładce servers: dodajemy serwery zgodnie ze wzorem:
lobby:
motd: '&1Just another FlameCord - Forced Host'
address: localhost:25565
restricted: false
Nie możecie zapomnieć aby w automatycznie dodanym serwerze lobby zmienić motd oraz adres!
Teraz możemy przejść do serwerów gry. Opisane zmiany należy wykonać na wszystkich dodawanych serwerach.
W folderze z serwerem otwieramy plik server-properties i zmieniamy w nim następujące rzeczy:
● Zmieniamy port serwera
server-port=25565
(port zmieniamy na jakikolwiek inny, np. 25566. Jeśli serwery gry nie są uruchamione na zwykłym komputerze, serwerze VPS czy serwerze dedykowanym to można pominąć ten krok.)
● Zmieniamy serwer na tryb non-premium
online-mode=true (zmieniamy true na false)
● Zmieniamy ustawienia kompresji pakietów
network-compression-threshold=256 (zmieniamy 256 na -1)
W pliku spigot.yml należy również dokonać pewnej zmiany:
● Włączamy tryb bungeecord
settings:
bungeecord: false (zmieniamy false na true)
Oraz w pliku bukkit.yml:
● Zmieniamy czas pomiędzy możliwymi kolejnymi połączeniami z serwerem
connection-throttle: 4000 (zmieniamy 4000 na -1)
3. Zabezpieczenia proxy oraz serwerów gry
Ten poradnik miał się skupić na samym uruchamianiu proxy, lecz bez dobrych zabezpieczeń serwer nie może w pełni bezpiecznie funkcjonować. Przedstawię wam kilka rzeczy, dzięki którym wasze proxy będzie dość bezpieczne.
● AuthMeBungee
AuthMeBungee to dodatek do popularnego pluginu AuthMe instalowany na proxy blokujący komendy proxy przed zalogowaniem. Możecie go pobrać tutaj
● AntyBot
Ataki botów bardzo obciążają serwery i proxy, a czasem nawet doprowadzają do ich wyłączenia. Aby temu zapobiec, musicie zabezpieczyć się w dobry plugin blokujący boty. Osobiście polecam Botsentry, lecz jeśli wolicie darmowe rozwiązanie zainteresujcie się 2LS AntiBot.
● IPWhitelist
Bez pluginu IPWhitelist, każdy kto stworzy własne proxy oraz zna adresy serwerów innych niż lobby i proxy może się do nich podłączyć omijając logowanie. Plugin należy zainstalować na każdym z serwerów gry. Trzeba go również skonfigurować, lecz jest to tylko wpisanie komendy /ipwl addip (adres IP maszyny z proxy). Plugin możecie pobrać tutaj
● BungeeGuard
BungeeGuard to plugin sprawdzający czy gracz na pewno dołącza na serwer przez nasze proxy. Proxy zapisuje specjalny token podczas logowania gracza, a serwery np. lobby sprawdzają czy gracz ma dozwolony token. Plugin należy zainstalować zarówno na proxy jak i każdym z serwerów. Możecie go pobrać tutaj
I gotowe! Po uruchomieniu serwerów oraz proxy możemy przełączać się między serwerami komendą /server (nazwa serwera). Dla ułatwienia korzystania z permisji, zalecane jest zainstalowanie pluginu LuckPerms.