Lav din egen Minecraft Server på din Ubuntu Server
Introduktion
De fleste folk har hørt om Minecraft. De har måske endda selv spillet det, eller har børn som tit spiller det. Hvad end din grund er til at installere og administrere din helt egen Minecraft Server fra bunden er, så er det faktisk ikke så svært at installere og opsætningen er yderst simpel.
Ligesom selve Minecraft spillet, benytter Minecraft Server sig også af Java. Så vi skal installere Java i "headless mode" på vores Ubuntu Server. Hvorfor "headless mode"? En normal Java installation kommer med en masse ekstra ting, såsom grafiske biblioteker til at visse knapper og meget andet i Java programmer. Men det behøver vi jo ikke på en server, som i forvejen ikke har en grafisk brugerflade. (Ubuntu Server i det her tilfælde.) Så på den måde kan vi spare en masse ressourcer på, at den ikke skal have en masse ekstra liggende og køre.
Jeg går ud fra at du sidder på en Ubuntu Server, har du ikke en server kan du leje en Ubuntu Server her hos os, på v5.dk. En v5.dk Cloud Server er hurtig og stabil, det er også sådan en v5.dk Cloud Server jeg selv vil gå ud fra her i blog-indlægget. Jeg vil anbefale en Cloud/2 - Linux, til at køre en Minecraft Server på, det vil være nok til at kunne spille 10-14 spillere på samme tid, ud fra de kravspecifikationer Minecraft selv anbefaler. Husk altid at Minecraft servere generelt er meget ressourcekrævende, især hvis der er en masse "Redstone" i brug på serveren imens at i spiller - og jo mere i udforsker verden og bygger, desto flere ressourcer kræves per spiller.
Grundlæggende kendskab til Linux er en fordel
Installering af OpenJDK
Du spørger måske dig selv om hvad OpenJDK er for noget. OpenJDK er en Open Source implementation af Oracle's Java. Jeg bruger personligt altid OpenJDK fordi, at med min egen erfaring - altid har virket bedre og mere stabilt end den klassiske Java fra Oracle, både på servere såvel som på min stationære Ubuntu Desktop PC derhjemme. Det første jeg vil gøre er at kigge efter den nyeste version af OpenJDK. Det kan jeg med lethed gøre ved at køre en simpel kommando for at tjekke Ubuntu's pakke-arkiver.
apt-cache search openjdk | grep jre-headless
apt-cache-search
er en kommando som kan bruges til at søge efter pakker i Ubuntu's arkiver. I det her tilfælde søger vi efter openjdk. (Bemærk at vi ikke behøver at bruge sudo
kommandoen her, da det ikke kræver administrator rettigheder.) Vi "piber" derefter søgningen over i grep
kommandoen og returnere kun det tilbage som har med jre-headless at gøre.
Du vil nu få en liste der ser sådan her ud, med jre-headless markeret, i mit tilfælde en rød farve. Det kan være en smule anderledes for dig.
default-jre-headless - Standard Java or Java compatible Runtime (headless)
openjdk-7-jre-headless - OpenJDK Java runtime, using Hotspot JIT (headless)
openjdk-6-jre-headless - OpenJDK Java runtime, using Hotspot JIT (headless)
openjdk-8-jre-headless - OpenJDK Java runtime, using Hotspot JIT (headless)
Vi vil gerne have den nyeste version af openjdk-<version>-jre-headless, så vi henter fluks openjdk-8-jre-headless som (i skrivende stund) er den nyeste version af OpenJDK.
sudo apt-get install openjdk-8-jre-headless
Efter at OpenJDK er blevet installeret, kan vi så teste om OpenJDK er installeret med succes, ved at tjekke versionen som er blevet installeret. Det kan vi gøre med en simpel kommando:
java -version
openjdk version "1.8.0_45-internal"
OpenJDK Runtime Environment (build 1.8.0_45-internal-b14)
OpenJDK 64-Bit Server VM (build 25.45-b02, mixed mode)
Hvis du for lignende respons i din prompt, er du nu klar til at installere selve Minecraft Serveren.
Installering af Minecraft Serveren
Vi skal nu hente og installere selve Minecraft Server på vores Ubuntu Server. Vi kan hente sådan en direkte fra https://minecraft.net/download - men siden at vi jo sidder på en server, må vi benytte os af wget
kommandoen til at hente Minecraft serveren. Først vil jeg dog lige have lidt styr på mine filer, så jeg laver hurtigt en mappe i min hjemmemappe kaldet "mcsrv" og derefter går jeg ind i mappen vi lige har lavet. (Forkortelse af Minecraft Server.)
mkdir ~/mcsrv
cd ~/mcsrv
Nu har vi lavet en mappe hvor alle vores Minecraft Server filer kan ligge inde i. Så nu er det jo bare at hente Minecraft Server. Vi vil gerne have den nyeste minecraft_server.<version>.jar. I skrivende stund er det version 1.8.9.
Så jeg vil nu hente det med wget
kommandoen.
wget https://s3.amazonaws.com/Minecraft.Download/versions/1.8.9/minecraft_server.1.8.9.jar
Nu er tiden kommet til endelig at "installere" Minecraft Serveren. Det gør man ved ganske simpelt at starte minecraft_server.1.8.9.jar med java
kommandoen. Men først skal vi lige gøre sådan, at vi faktisk kan køre programmet. De fleste Linux maskiner, kan ikke execute (køre) programmer med det samme, som du henter fra internettet med wget
kommandoen, før vi manuelt har givet programmet tilladelse til at køre, det gør vi med chmod
:
chmod +x minecraft_server.1.8.9.jar
Nu kan vi starte Java programmet. (Minecraft Server.)
java -Xmx1024M -Xms1024M -jar minecraft_server.1.8.9.jar nogui
-Xmx1024M og -Xms1024M betyder kort fortalt, at du giver din Minecraft Server lov til at bruge 1024 mb RAM på din Ubuntu Server. Hvis din server kun har 1024 mb RAM, vil jeg foreslå at ændre tallet til 768M. (Et lille tip, i stedet for at skrive 1024M, kan du også nemt skrive 1G for at sætte 1GB allokerede RAM til din Minecraft Server.) Husk på at din Ubuntu Server, i sig selv - også bruger lidt RAM for at køre, så sæt altid denne grænse lavere end den mængde RAM din server har. Jo mere RAM du har, jo flere folk kan spille på serveren. Har du eksempelvis fem spillere på din server, så ville -Xmx512M og -Xms512M (512MB RAM) være mere end rigeligt, alt efter hvor meget i har lavet på serveren. (Redstone, udforsket, bygget osv.) Minecraft spillet såvel som Minecraft servere er berygtet for at bruge en del RAM, da det køres i Java. Så at give lidt ekstra RAM er aldrig en dårlig idé. (Hvis du har nok RAM til at kunne give af på serveren.)
[12:48:30] [Server thread/INFO]: Starting minecraft server version 1.8.9
[12:48:30] [Server thread/INFO]: Loading properties
[12:48:30] [Server thread/WARN]: server.properties does not exist
[12:48:30] [Server thread/INFO]: Generating new properties file
[12:48:30] [Server thread/WARN]: Failed to load eula.txt
[12:48:30] [Server thread/INFO]: You need to agree to the EULA in order to run the server. Go to eula.txt for more info.
[12:48:30] [Server thread/INFO]: Stopping server
Første gang at du prøver på at starte minecraft_server.1.8.9.jar op - vil den brokke sig over at du ikke har accepteret en EULA. (End-user license agreement.) Hvis du bruger ls -la
kommandoen kan du se at Minecraft Server har lavet et par nye filer i din mappe.
total 8148
drwxrwxr-x 3 dhh dhh 4096 Jan 20 12:48 .
drwxr-xr-x 4 dhh dhh 4096 Jan 19 11:59 ..
-rw-rw-r-- 1 dhh dhh 181 Jan 20 12:48 eula.txt
drwxrwxr-x 2 dhh dhh 4096 Jan 20 12:48 logs
-rw-rw-r-- 1 dhh dhh 8320755 Dec 9 07:49 minecraft_server.1.8.9.jar
-rw-rw-r-- 1 dhh dhh 59 Jan 20 12:48 server.properties
Bl.a. en eula.txt fil. Som jeg nu vil redigere den sidste linje i, "eula=false" til "eula=true".
sed -i -e s/"eula=false"/"eula=true"/ ~/mcsrv/eula.txt
Sådan. Nu kan vi igen starte serveren.
java -Xmx1024M -Xms1024M -jar minecraft_server.1.8.9.jar nogui
Denne her gang, vil den nu gå igang med at lave en Minecraft verden og andre småting. Denne process kan tage lidt tid alt efter hvor hurtig og kraftig din Ubuntu Server er. Når Minecraft verdenen er færdig med at blive lavet, vil du blive mødt af det man kalder for en Minecraft Server konsol. Du kan skrive /help
for at få kommandoerne som Minecraft serveren tager imod.
[14:03:59] [Server thread/INFO]: Done (21.934s)! For help, type "help" or "?"
/help
[14:06:15] [Server thread/INFO]: --- Showing help page 1 of 9 (/help <page>) ---
[14:06:15] [Server thread/INFO]: /achievement <give|take> <stat_name|*> [player]
[14:06:15] [Server thread/INFO]: /ban <name> [reason ...]
[14:06:15] [Server thread/INFO]: /ban-ip <address|name> [reason ...]
[14:06:15] [Server thread/INFO]: /banlist [ips|players]
[14:06:15] [Server thread/INFO]: /blockdata <x> <y> <z> <dataTag>
[14:06:15] [Server thread/INFO]: /clear [player] [item] [data] [maxCount] [dataTag]
[14:06:15] [Server thread/INFO]: /clone <x1> <y1> <z1> <x2> <y2> <z2> <x> <y> <z> [maskMode] [cloneMode]
OBS: Du kan "bladre" i /help
ved at skrive side-antal, f.eks. /help 1, /help 2 ... /help 9
Du vil nu se at din Minecraft Server er startet - og kan simpelt og nemt bare starte Minecraft spillet op og tilgå din server enten med din IP adresse eller ved at benytte dig af dit gratis v5.dk Cloud Server domæne/hostname som følger med, hvis du har en Ubuntu Server hos os.
Når du vil stoppe serveren, kan du simpelt bare skrive /stop
i Minecraft Server konsollen. Den vil så gemme serverens Minecraft verden og lukke serveren rigtigt ned. Når den er stoppet, kommer du tilbage til din Ubuntu Server prompt.
/stop
[14:10:35] [Server thread/INFO]: Stopping the server
[14:10:35] [Server thread/INFO]: Stopping server
[14:10:35] [Server thread/INFO]: Saving players
[14:10:35] [Server thread/INFO]: Saving worlds
[14:10:35] [Server thread/INFO]: Saving chunks for level 'world'/Overworld
[14:10:35] [Server thread/INFO]: Saving chunks for level 'world'/Nether
[14:10:35] [Server thread/INFO]: Saving chunks for level 'world'/The End
Ændre indstillinger på din Minecraft Server
Minecraft Serveren kan indstilles ved at ændre på server.properties
filen. Du kan bl.a ændre hvor mange spillere som kan logge ind på din server ad gangen, når du så er færdig med at ændre i filen - kan du starte din Minecraft Server. Eksempelvis ændre jeg her nogle ting, så som motd (message of the day) på serveren, samt hvor mange spillere der kan være på ad gangen - de to linjer jeg har ændret, er markeret herunder:
#Minecraft server properties
#Wed Jan 20 14:04:00 EST 2016
max-tick-time=60000
generator-settings=
allow-nether=true
force-gamemode=false
gamemode=0
enable-query=false
player-idle-timeout=0
difficulty=1
spawn-monsters=true
op-permission-level=4
resource-pack-hash=
announce-player-achievements=true
pvp=true
snooper-enabled=true
level-type=DEFAULT
hardcore=false
enable-command-block=false
max-players=5
network-compression-threshold=256
max-world-size=29999984
server-port=25565
server-ip=
spawn-npcs=true
allow-flight=false
level-name=world
view-distance=10
resource-pack=
spawn-animals=true
white-list=false
generate-structures=true
online-mode=true
max-build-height=256
level-seed=
use-native-transport=true
motd=En Minecraft Server
enable-rcon=false
Kør din Minecraft Server med programmet Screen
Du har måske lagt mærke til at hvis du lukker din SSH forbindelse til serveren, eller hvis du sidder på en lokal Ubuntu Server - at hvis du vil ud af Minecraft Serveren for evt. at lave noget andet, så vil den bare lukke ned. Så det vi vil gøre er at starte serveren op i et program der hedder screen
. Som vil holde liv i vores Minecraft Server selvom vi ikke er logget på vores Ubuntu Server.
Først skal vi installere screen
på vores Ubuntu Server. Det kan vi nemt gøre med apt-get
.
sudo apt-get install screen
Nu da vi har installeret screen
kan vi starte vores Minecraft Server med screen
.
screen java -Xmx1024M -Xms1024M -jar minecraft_server.1.8.9.jar nogui
Efter at Minecraft serveren er startet op, kan du bruge "ctrl a"-tasterne efterfuldt af at trykke på "d"-tasten - for at komme "ud" af serveren og tilbage til din Ubuntu Server prompt.
Hvis du logger på din Ubuntu Server senere, kan du nemt komme ind i Minecraft Server konsollen igen ved at bruge screen -r
kommandoen.
Hvad nu?
Nu kan du spille Minecraft med andre mennesker. Du giver dem bare din IP eller hostname-adresse. Som standard køre Minecraft Server på port 25565. Hvis du bruger den port, behøver folk ikke at indtaste porten på din Minecraft Server for at komme ind på serveren.
Man kunne evt. udforske endnu mere omkring brugen af plugins m.m. Men det er ikke noget som vi vil gennemgå i det her blogindlæg.
Har du nogen spørgsmål er du selvfølgelig altid velkommen til at oprette et forum indlæg i vores forum.