BLog |
|
![]() |
|||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
Minecraft Multi-Player-Server auf dem FreeBSD Home ServerMicrosoft stellt auf ihrer Minecraft-Seite die Java-Edition-Server-Software zum kostenlosen Download bereit. Hier zeige ich wie diese Software auf dem FreeBSD Home Server installiert und konfiguriert wird. Mit den richtigen DNS und Firewall-Einstellungen können auch die Freunde & Freundinnen unseres Nachwuchses vom Internet aus mit ihm zusammen neue Welten kreieren und entdecken. Kleiner Aufwand und große Abenteuer. VorbereitungenJava und tmux(1) muß installiert sein:
Der System-User
Das Minecraft-Basisverzeichnis wird angelegt:
Darin werden 2 Untervezeichnisse erzeugt und die Zugriffsrechte werden beschränkt:
Der Minecraft ServerDie Server-Software lädt man am besten von der o.g. Download-Seite direkt in das soeben erzeugte Verzeichnis. Dazu klick man mit der rechten Maustaste auf den Download-Link, kopiert diesen und setzt ihn in das fetch-Kommando ein - der unten in violett gezeigte 40stellige Hex-Code mag sich ändern und muß korrekt kopiert werden:
Der Minecraft Server muß nun einmal manuell gestartet werden:
[17:17:40] [main/ERROR]: Failed to load properties from file: server.properties [17:17:40] [main/WARN]: Failed to load eula.txt [17:17:40] [main/INFO]: You need to agree to the EULA in order to run the server. Go to eula.txt for more info.
Dabei wird die Einstellungs-Datei
Die Server-Einstellungen kann sollte man bearbeiten. Ich ändere hier den Server-Namen, die Ports für den Server und die Remote-Console, aktiviere letztere und lege ein Passwort dafür fest. Ferner wird die White-List aktiviert, d.h. es können sich nur Spieler mit unserem Server verbinden, die in einer White-List eingetragen sind. Ferner sollen keine #Minecraft server properties #Thu Aug 01 17:17:40 BRT 2019 motd=Obsigna Server server-port=5959 rcon.port=5858 rcon.password=«PASSWORT» enable-rcon=true white-list=true snooper-enabled=false broadcast-rcon-to-ops=true view-distance=10 max-build-height=256 server-ip= level-seed= gamemode=survival allow-nether=true enable-command-block=false enable-query=false op-permission-level=4 prevent-proxy-connections=false generator-settings= resource-pack= level-name=world player-idle-timeout=0 query.port=25565 force-gamemode=false hardcore=false broadcast-console-to-ops=true pvp=true spawn-npcs=true generate-structures=true spawn-animals=true difficulty=easy function-permission-level=2 network-compression-threshold=256 level-type=default spawn-monsters=true max-tick-time=60000 enforce-whitelist=false use-native-transport=true max-players=20 resource-pack-sha1= spawn-protection=16 online-mode=true allow-flight=false max-world-size=29999984 Eine Übersicht zu allen möglichen Einstellungen findet sich hier. Der Minecraft Server wird nun ein zweites mal gestartet ...
[07:46:18] [main/WARN]: Ambiguity between arguments [teleport, destination] and [teleport, targets] with inputs: [Player, 0123, @e, dd12be42-52a9-4a91-a8a1-11c01849e498] [07:46:18] [main/WARN]: Ambiguity between arguments [teleport, location] and [teleport, destination] with inputs: [0.1 -0.5 .9, 0 0 0] [07:46:18] [main/WARN]: Ambiguity between arguments [teleport, location] and [teleport, targets] with inputs: [0.1 -0.5 .9, 0 0 0] [07:46:18] [main/WARN]: Ambiguity between arguments [teleport, targets] and [teleport, destination] with inputs: [Player, 0123, dd12be42-52a9-4a91-a8a1-11c01849e498] [07:46:18] [main/WARN]: Ambiguity between arguments [teleport, targets, location] and [teleport, targets, destination] with inputs: [0.1 -0.5 .9, 0 0 0] [07:46:18] [Server thread/INFO]: Starting minecraft server version 1.14.4 [07:46:18] [Server thread/INFO]: Loading properties [07:46:18] [Server thread/INFO]: Default game type: SURVIVAL [07:46:18] [Server thread/INFO]: Generating keypair [07:46:18] [Server thread/INFO]: Starting Minecraft server on *:3939 [07:46:18] [Server thread/INFO]: Using default channel type [07:46:19] [Server thread/INFO]: Preparing level "world" [07:46:19] [Server thread/INFO]: Found new data pack vanilla, loading it automatically [07:46:19] [Server thread/INFO]: Reloading ResourceManager: Default [07:46:23] [Server thread/INFO]: Loaded 6 recipes [07:46:24] [Server thread/INFO]: Loaded 811 advancements [07:46:26] [Server thread/INFO]: Preparing start region for dimension minecraft:overworld [07:46:26] [Server-Worker-1/INFO]: Preparing spawn area: 0% [07:46:27] [Server-Worker-1/INFO]: Preparing spawn area: 3% ... [07:46:36] [Server-Worker-1/INFO]: Preparing spawn area: 91% [07:46:36] [Server-Worker-1/INFO]: Preparing spawn area: 97% [07:46:36] [Server thread/INFO]: Time elapsed: 10609 ms [07:46:36] [Server thread/INFO]: Done (17.780s)! For help, type "help" [07:46:36] [Server thread/INFO]: Starting remote control listener [07:46:36] [RCON Listener #1/INFO]: RCON running on 0.0.0.0:3838
... und in der Server-Console sofort mit dem Kommando stop [07:49:38] [Server thread/INFO]: Stopping the server [07:49:38] [Server thread/INFO]: Stopping server [07:49:38] [Server thread/INFO]: Saving players [07:49:38] [Server thread/INFO]: Saving worlds [07:49:38] [Server thread/INFO]: Saving chunks for level 'world'/minecraft:overworld [07:49:39] [Server thread/INFO]: ThreadedAnvilChunkStorage (world): All chunks are saved [07:49:39] [Server thread/INFO]: Saving chunks for level 'world'/minecraft:the_nether [07:49:39] [Server thread/INFO]: ThreadedAnvilChunkStorage (DIM-1): All chunks are saved [07:49:39] [Server thread/INFO]: Saving chunks for level 'world'/minecraft:the_end [07:49:39] [Server thread/INFO]: ThreadedAnvilChunkStorage (DIM1): All chunks are saved [07:49:39] [Server thread/INFO]: ThreadedAnvilChunkStorage (world): All chunks are saved [07:49:39] [Server thread/INFO]: ThreadedAnvilChunkStorage (DIM-1): All chunks are saved [07:49:39] [Server thread/INFO]: ThreadedAnvilChunkStorage (DIM1): All chunks are saved Die Welten
Beim regulären Start generiert der Server eine neue Welt, sofern noch keine existierte. Der Mechanismus ist insofern nützlich, weil die Erfahrung zeigt, daß unsere
total 35200 -rw-r--r-- 1 mcserver mcserver 2 Aug 2 07:46 banned-ips.json -rw-r--r-- 1 mcserver mcserver 2 Aug 2 07:46 banned-players.json -rw-r--r-- 1 mcserver mcserver 180 Aug 1 17:24 eula.txt drwxr-xr-x 2 mcserver mcserver 512 Aug 2 07:46 logs -rw-r--r-- 1 mcserver mcserver 2 Aug 2 07:46 ops.json -rw------- 1 mcserver mcserver 35958734 Jul 19 06:27 server.jar -rw-r--r-- 1 mcserver mcserver 941 Aug 2 07:46 server.properties -rw-r--r-- 1 mcserver mcserver 2 Aug 2 07:46 usercache.json -rw-r--r-- 1 mcserver mcserver 2 Aug 2 07:46 whitelist.json lrwxr-xr-x 1 mcserver mcserver 19 Aug 2 08:06 world -> ../worlds/Neue Welt Um eine neue Welt zu erzeugen, wird der Server gestoppt, ein leeres Unterverzeichnis in worlds erzeugt und schließlich der Symbolic-Link ausgetauscht:
Der Weltenwechsel geht dann ganz einfach - hier z.B. zurück zur alten neuen Welt:
In jedem Fall muß aber vor dem Weltenwechsel der Server gestoppt werden. Die FirewallDamit die Freundinnen & Freunde mitspielen können, muß unsere Firewall, hier ipfw(8), so eingerichtet werden, daß der oben eingestellte TCP-Server-Port 5959 vom Internet aus erreichbar ist. Für den Fall, daß der Minecraft-Server auf dem Gateway ins Internet läuft, reicht es aus, eingehende Daten auf diesem Port zu erlauben: ... /sbin/ipfw -q add 5001 allow tcp from any to me 5959 in recv $WAN setup keep-state ...
Für den Fall, daß der Minecraft-Server auf einem FreeBSD-Rechner im LAN, z.B. mit der IP-Adresse ... /sbin/ipfw -q nat 1 config if $WAN unreg_only reset redirect_port tcp 192.168.0.7:5959 5959 ... /sbin/ipfw -q add 6001 skipto 10000 tcp from any to any 5959 in recv $WAN setup keep-state ... Minecraft-Server automatisch starten?Nein, hier bei uns nicht. Wer das möchte, d(ie|er) schaue hier. Bei uns starte ich den Minecraft-Server wenn der Sohn das möchte, und in den allermeisten Fällen habe ich auch nichts dagegen, aber die Kontrolle möchte ich schon noch behalten. Zum Server-Start:
dann Zum Server-Stop:
Dann auf der Server-Konsole Happy Crafting! Copyright © Dr. Rolf Jansen - 2019-07-27 20:29:10 Discussion on Twitter: 1164543713026170880 |