#
Podłączenie zewnętrznego proxy do serwera na RaidVM
Jeśli masz własne proxy (np. Velocity) postawione na zewnętrznym hostingu (np. VPS) i chcesz podłączyć do niego serwer hostowany na RaidVM - ten poradnik jest dla ciebie.
#
Dlaczego standardowe Velocity nie zadziała?
Na RaidVM nie dostajesz klasycznego adresu IP:port tak jak na większości hostingów. Zamiast tego dostajesz subdomenę w stylu p40000.raidsv.com. Pod spodem każdy serwer na RaidVM ma ten sam adres IP i ten sam port - ruch jest rozdzielany na podstawie nazwy hosta (virtual hosting). Dzięki temu nasz anti-DDoS działa na pełnych obrotach.
Problem w tym, że gdy Velocity łączy się z serwerem backendowym, wysyła do niego pole Server Address w pakiecie Handshake. Domyślnie Velocity wpisuje tam domenę, z której połączył się gracz - a nie domenę backendowego serwera RaidVM. Przez to serwer na RaidVM nie wie, do którego serwera kierować połączenie, i odrzuca je.
Velocity nie obsługuje podmiany tej domeny z poziomu konfiguracji, więc potrzebne jest inne rozwiązanie.
#
Rozwiązanie: Gate jako pośrednik
Gate to lekki proxy Minecraft, który obsługuje opcję modifyVirtualHost. Dzięki niej Gate podmienia pole Server Address w pakiecie Handshake na poprawną domenę serwera RaidVM, zanim przekaże połączenie dalej.
Schemat działania:
Gracz -> Twoje Velocity (na VPS) -> Gate (na VPS) -> Serwer na RaidVM
#
Instalacja Gate
Pobierz najnowszą wersję Gate ze strony gate.minekube.com i uruchom go na swoim VPS.
#
Konfiguracja Gate
Przykładowy plik konfiguracyjny (config.yml):
config:
bind: 0.0.0.0:25575
forwarding:
mode: velocity
lite:
enabled: true
routes:
- backend: p40000.raidsv.com:30571
host: '*'
modifyVirtualHost: true
strategy: random
servers:
raidvm: p40000.raidsv.com:30571
try:
- raidvm
connect:
allowOfflineModePlayers: true
enabled: true
Podmień p40000.raidsv.com na adres swojego serwera z panelu.
Uwaga na port
W polu backend i servers.raidvm po dwukropku musi być wpisany port 30571 - to jest port z rekordu SRV, na którym faktycznie nasłuchuje proxy RaidVM. Czyli np. p40000.raidsv.com:30571.
#
Podłączenie Velocity do Gate
W konfiguracji Velocity (velocity.toml) dodaj serwer wskazujący na Gate zamiast bezpośrednio na RaidVM:
[servers]
raidvm = "127.0.0.1:25575"
Jeśli Gate chodzi na tym samym VPS'ie co Velocity to 127.0.0.1 jest poprawne. Jeśli na innym - podaj IP tego VPS'a.
Velocity forwarding
Upewnij się, że w konfiguracji Gate masz ustawione forwarding.mode: velocity i że w konfiguracji Velocity masz włączony player-info-forwarding-mode = "modern". Inaczej adresy IP graczy nie będą przekazywane poprawnie do serwera.