Artikel

Der erste eigene Server lief auf einem PC unter meinem Schreibtisch

Wie aus einem ausgemusterten Rechner ein Minecraft-Server für sechs Freunde wurde — und warum ich danach wusste, dass ein Server kein Programm ist, sondern ein Dienst.

BlackZackBlackzack

1326 Wörter · 7 Min. Lesezeit

  • minecraft
  • anfaenge
  • server

Angefangen hat alles mit einem Rechner, den eigentlich niemand mehr wollte. Ein alter Tower, vier Kerne, acht Gigabyte RAM, eine Festplatte, die beim Hochfahren klang wie eine Kaffeemühle. Er stand ein halbes Jahr unter meinem Schreibtisch und sammelte Staub, bis ein Freund im Sprachchat sagte: „Können wir nicht einfach selbst einen Server aufmachen?"

Wir spielten damals auf einem öffentlichen Survival-Server, auf dem man drei Minuten in der Warteschlange stand und danach in einer Landschaft landete, die aussah, als hätte jemand mit einem Bagger gearbeitet. Jeder Baum war weg, jede Höhle ausgeräumt. Man wollte bauen und fand nur Trümmer. Die Idee, das für uns sechs selbst zu machen, war also weniger technische Neugier als Notwehr.

Der Anfang war eine einzige Zeile

Was ich vorher nicht wusste: Ein Minecraft-Server ist keine Anwendung, die man installiert. Man lädt eine Java-Datei herunter, legt sie in einen Ordner und startet sie. Das war's. Meine erste Startzeile sah so aus:

java -Xmx4G -Xms4G -jar spigot-1.13.2.jar nogui

Beim ersten Start passierte etwas, das ich nicht erwartet hatte: Der Server beendete sich sofort wieder und legte eine Datei namens eula.txt an. Darin stand eula=false, und darüber ein Link zu Mojangs Nutzungsbedingungen. Erst wenn man das auf true setzt, läuft überhaupt etwas. Ich habe damals fünf Minuten gebraucht, um zu verstehen, dass das kein Fehler war, sondern Absicht.

Dann lief er. Der Ordner füllte sich mit Dateien, die ich nicht kannte — server.properties, ops.json, whitelist.json, ein Verzeichnis world, in dem plötzlich Unterordner mit Namen wie region und playerdata auftauchten. Für mich sah das aus wie eine fremde Wohnung. Heute weiß ich, dass ich in den nächsten Jahren mehr Zeit in diesen Ordnern verbringen würde als in fast jedem anderen Verzeichnis meines Lebens.

Erreichbar sein ist das eigentliche Problem

Der Server lief. Auf localhost konnte ich mich verbinden. Meine Freunde konnten es nicht — und das war die erste echte Lektion.

Zwischen meinem Rechner und dem Internet stand ein Router, der aus gutem Grund niemanden hereinlässt. Damit jemand von außen den Minecraft-Port erreicht, muss man ihn ausdrücklich durchreichen. Das nennt sich Portweiterleitung, und im Menü meines Routers hieß es „Portfreigaben", versteckt unter einem Punkt namens „Netzwerk", der wiederum unter „Heimnetz" lag.

Protokoll   TCP
Port extern 25565
Port intern 25565
An Gerät    DESKTOP-ALT

Das zweite Problem: Meine IP-Adresse änderte sich alle 24 Stunden. Jeden Morgen musste ich meinen Freunden eine neue Zahlenkolonne schicken. Das hielt genau drei Tage, dann fand ich DynDNS — ein kleines Programm, das die aktuelle Adresse regelmäßig an einen Dienst meldet, der dafür einen festen Namen bereithält. Aus 84.137.x.x wurde ein Name, den man sich merken konnte. Am Abend danach kamen fünf Leute rein, ohne dass ich irgendetwas schicken musste. Das fühlte sich an wie Zauberei.

Warnung

Rückblickend habe ich damals ziemlich sorglos einen Port aus meinem privaten Netz ins Internet aufgemacht, ohne zu verstehen, was daran heikel ist. Es ist gutgegangen, aber es war Glück und keine Leistung. Wer heute dasselbe vorhat: nimm einen gemieteten Server. Das kostet weniger als drei Euro im Monat und hält dein Heimnetz aus der Sache heraus.

Die ersten Plugins, und was sie mit mir gemacht haben

Vanilla-Minecraft war nach zwei Wochen zu wenig. Wir wollten Grundstücke schützen, wollten uns zueinander teleportieren, wollten, dass jemand rückgängig machen kann, wenn ein Kreeper den halben Bahnhof mitnimmt.

Also Spigot statt des Vanilla-Servers, und dann der Ordner plugins/. EssentialsX für Grundbefehle. WorldEdit, um Fehler großflächig zu korrigieren. WorldGuard, um Regionen zu schützen. Und LuckPerms, weil ich nach zwei Tagen merkte, dass ich nicht jedem alles erlauben will.

Was ich dabei zum ersten Mal begriff: Diese Plugins reden miteinander. LuckPerms verteilt Rechte, auf die EssentialsX hört. WorldGuard fragt LuckPerms, ob jemand eine Region betreten darf. Das ist kein Haufen einzelner Programme, sondern ein System mit Abhängigkeiten. Wenn eines davon nicht startet, kann etwas ganz woanders kaputtgehen — und die Fehlermeldung zeigt dann auf die falsche Stelle.

Diese eine Erkenntnis hat sich über die Jahre öfter bewahrheitet als fast jede andere. Sieben Jahre später sitze ich vor einem Netzwerk aus mehreren Servern, und der Satz gilt unverändert: Der Ort der Fehlermeldung ist selten der Ort des Fehlers.

Was ein Server jeden Tag von einem will

Der Teil, den vorher niemand erwähnt hatte: Ein Server läuft nicht einfach. Er will etwas.

Er will, dass der Rechner an bleibt — was bedeutete, dass ich das Ding nachts nicht mehr ausschalten konnte, und dass ein Windows-Update um drei Uhr morgens alle sechs Spieler rauswarf. Er will Speicherplatz, denn die Welt wuchs von 200 Megabyte auf zwei Gigabyte, weil ein Freund beschlossen hatte, eine Eisenbahn ins Nirgendwo zu bauen. Er will Aufmerksamkeit, wenn jemand einen Fehler findet, den ich nicht nachstellen kann.

Und er will Entscheidungen. Wer wird Operator? Bleiben wir bei Survival? Setzen wir die Welt zurück, wenn 1.14 kommt und die neuen Dörfer nur in unerkundetem Gelände auftauchen? Das sind keine technischen Fragen, sondern soziale. Ich war 2019 nicht besonders gut darin, und ehrlich gesagt lerne ich das bis heute.

Die Zahlen, an die ich mich erinnere

Ich habe damals nichts gemessen, aber ein paar Werte sind hängen geblieben, weil sie mich beschäftigt haben.

Der Server startete mit vier Gigabyte zugewiesenem Speicher, was sich großzügig anfühlte und es nicht war. Die Welt begann bei ungefähr 40 Megabyte und lag nach zwei Monaten bei 1,8 Gigabyte — nicht, weil wir so viel gebaut hätten, sondern weil ein Freund beschlossen hatte, eine Eisenbahnstrecke Richtung Horizont zu ziehen. Jeder Kilometer Schiene erzeugt Chunks, und jeder Chunk bleibt für immer auf der Platte.

Wir waren zu sechst, aber nie mehr als vier gleichzeitig online. Die Startzeit des Servers lag bei etwa 40 Sekunden, was mir damals ewig vorkam — heute weiß ich, dass ein Server mit fünfzig Plugins eher zwei Minuten braucht.

Das Interessante an diesen Zahlen ist rückblickend, wie klein sie sind. Und wie viel Ärger sie trotzdem gemacht haben. Der Grund liegt nicht in der Größe, sondern darin, dass ich keine Vorstellung davon hatte, welche Zahl welche Bedeutung hat. Ein Wert ohne Bezugsgröße ist keine Information — dieselbe Erkenntnis, die mir Jahre später bei Auswertungen und Kennzahlen wieder begegnet ist.

Was ich heute anders anfangen würde

Wenn mich jemand fragt, der gerade an diesem Punkt steht, sind es drei Sachen:

Nimm einen gemieteten Server, keinen aus dem Wohnzimmer. Nicht wegen der Leistung, sondern wegen der Ruhe. Ein Server, der zu Hause steht, macht jede technische Frage zu einer Haushaltsfrage: Wer darf den Rechner ausschalten? Was passiert bei einem Stromausfall? Warum ist das WLAN abends langsam?

Richte die Sicherung ein, bevor du das erste Plugin installierst. Nicht danach. Der Zeitpunkt, an dem man sie braucht, kommt zuverlässig vor dem Zeitpunkt, an dem man Zeit dafür hat.

Schreib auf, was du änderst. Ich habe in diesen Wochen dutzende Einstellungen verändert, immer eine nach der anderen, und nach zwei Monaten wusste ich bei keiner mehr, warum sie so steht. Eine Textdatei mit drei Zeilen pro Änderung hätte gereicht.

Der dritte Punkt ist der, den ich am häufigsten bereut habe — und den ich in den Jahren danach noch mehrmals neu lernen musste.

Was davon geblieben ist

Der alte Tower ist längst verschrottet. Die Welt von damals liegt als ZIP-Datei in einem Archivordner, den ich alle paar Jahre öffne, um festzustellen, dass unsere „riesige" Basis ungefähr die Größe eines heutigen Nebengebäudes hat.

Geblieben sind drei Dinge:

  • Ein Server ist ein Dienst, kein Programm. Er hat eine Laufzeit, Ressourcen, Nutzer und Ausfälle. Wer ihn wie ein Spiel behandelt, wird von der ersten Nacht überrascht, in der niemand mehr reinkommt.
  • Erreichbarkeit ist die Hälfte der Arbeit. Der Server lief nach zehn Minuten. Bis sich jemand anderes verbinden konnte, vergingen zwei Abende.
  • Man lernt das nur, indem man es kaputt macht. Ich habe in diesem Frühjahr mehr über Netzwerke gelernt als in jedem Tutorial danach — weil es meins war und weil es weh tat, wenn es nicht ging.

Der nächste Eintrag hier wird davon handeln, dass dieser Server dann ungefähr sechs Wochen später anfing, jeden Abend gegen 21 Uhr abzustürzen. Ich habe damals lange die falsche Ursache vermutet.