Problem „Timed out" w Minecrafcie — przyczyny i rozwiązania
Połączenie zerwane, „Timed out", „Connection reset" — błędy sieciowe potrafią wyrzucić wszystkich graczy z serwera. Sprawdzamy, co je powoduje i jak je rozwiązać.
„Connection timed out", „Timed out", „Connection reset" to standardowe komunikaty błędów sieciowych w Minecrafcie. Pojawiają się, gdy klient i serwer tracą połączenie. Czasem to chwilowe — wystarczy reconnect. Czasem wszyscy gracze tracą połączenie naraz, a serwer pozornie działa. Co wtedy?
Czym jest „Timed out"?
Minecraft używa TCP. Jeśli klient nie wymieni z serwerem żadnego pakietu przez ~30 sekund, połączenie jest uznawane za przerwane. Klient widzi „Timed out".
Może oznaczać:
- problem internetu klienta,
- problem sieci serwera,
- serwer zamarł na 30+ sekund (lagi),
- atak DDoS,
- problem firewalla na drodze pakietów.
Pojedynczy gracz traci połączenie
To zazwyczaj problem po jego stronie. Sprawdzenia (gracz):
- restart routera,
- kabel zamiast Wi-Fi,
- wyłączyć VPN,
- antywirus blokujący Minecraft,
- aktualizacja sterowników karty sieciowej.
Po stronie serwera nic nie zrobisz, oprócz polecenia tych kroków.
Wszyscy gracze tracą połączenie naraz
Tu zaczyna się prawdziwa diagnostyka. Powody:
Serwer się zaciął
Najczęstszy. Serwer zatrzymał się na 30+ sekund (zwykle GC, źle napisany plugin, nieskończona pętla). Wszystkim wygasa timeout. Sprawdź /tps i /spark health po incydencie.
Network outage hostingu
Sieć VPS-a/hostingu na chwilę pada. Sprawdź panel hostingu — większość ma stronę status z aktualnymi incydentami.
Atak DDoS
Bot zalewa port 25565. Serwer nie nadąża z odpowiedziami. Włącz analizę:
netstat -an | grep :25565 | wc -l
iftop -i eth0
Setki połączeń z różnych IP = atak. Włącz anty-DDoS hostingu, dodaj rate limiting iptables.
Firewall blokuje pakiety
Czasem własny firewall (system, hosting) zaczyna odrzucać pakiety. Sprawdź:
ufw status
iptables -L -n
iptables -L -n -v # liczniki pakietów
Jeśli reguła DROP ma rosnący licznik, to ona blokuje. Najczęściej fail2ban po fałszywym alarmie zbanował IP graczy.
Optymalizacja sieci serwera
W server.properties:
network-compression-threshold=256
player-idle-timeout=15
network-compression-threshold=256 kompresuje pakiety większe niż 256 bajtów (większość). Mniejsze są bez kompresji szybsze. Domyślne 64 może powodować przeciążenie CPU przy dużej liczbie graczy.
player-idle-timeout=15 wyrzuca AFK po 15 min — zwalnia sloty dla aktywnych.
Proxy Velocity / BungeeCord
Jeśli używasz proxy, „timed out" może być po stronie proxy → backend. Włącz logger w configu proxy, zobacz, czy backend się nie restartuje.
Często problem: nieprawidłowa forwarding-secret między Velocity a Paperem powoduje rozłączenia po 10–20 sekundach.
MTU i fragmentacja
Rzadka, ale prawdziwa przyczyna. Standardowe MTU = 1500. Niektóre VPN-y/sieci komórkowe mają niższe (1400–1450), co powoduje fragmentację dużych pakietów. Klienci tracą połączenie po pierwszym dużym pakiecie (np. ładowanie chunka).
Sprawdź MTU:
ping -M do -s 1472 example.com
Jeśli pakiety 1472+ giną, masz problem MTU. Po stronie serwera niewiele zrobisz — gracze muszą zmienić swoją sieć.
Co szukać w logach
W logs/latest.log po incydencie:
[NET] Disconnected: Internal Exception— błąd po stronie serwera.[NET] Timed out— klient nie odpowiada.[Watchdog] Server thread is blocked for X seconds— serwer się zawiesił.java.io.IOException: Connection reset by peer— sieć padła pomiędzy.
Każdy z tych błędów ma inną przyczynę i wymaga innej reakcji.
Watchdog
Paper ma watchdog, który zabija serwer, jeśli ten zatrzyma się na ponad 60 sekund. To dobra obrona przed pętlami nieskończonymi. W spigot.yml:
settings:
timeout-time: 60
restart-on-crash: true
restart-script: ./restart.sh
Po crashu serwer sam się zrestartuje. Gracze odzyskają połączenie po 30–60 sekundach.
Polecane działania
- Sprawdź, czy problem dotyczy 1 gracza czy wszystkich.
- Jeśli wszystkich — sprawdź
/tpsi status hostingu. - Jeśli 1 — pomóż mu w restarcie sieci.
- Włącz watchdog do automatycznego restartu po zawieszeniu.
- Anty-DDoS hostingu zawsze włączony.
- Spark health raz w tygodniu.
Podsumowanie
„Timed out" pojedynczego gracza to zwykle jego sieć. Problem wszystkich naraz — to serwer się zaciął, padła sieć hostingu lub jest atak DDoS. Logi logs/latest.log, status hostingu i /spark health wskazują kierunek.
Watchdog i automatyczny restart minimalizują skutki. Anty-DDoS hostingu jest niezbędny dla każdego publicznego serwera.