Tutorial

Creating a Minecraft Server on Ubuntu 14.04

By Arnon Puitrakul - 22 พฤษภาคม 2015

ตอนนี้ก็ปิดเทอมแล้ว เกมก็ต้องมา แฮร่~~ วางแผนกันตั้งแต่ก่อนปิดเทอมแล้วว่า จะเปิดเซิพ Minecraft เล่นกัน!!!! ด้วย Digital Ocean เพราะเดือนนึงมันตก 5 USD เองถ้าเล่นกัน 5 คนเดือนนึงก็ตกคนล่ะ 1 USD หรือประมาณ 3x บาทเท่านั้นเอง มาดูกันเลยว่าทำยังไง

Setup Pre-requisites

ก่อนอื่น ก็ต้องไป Register สร้าง Account ของ Digital Ocean กันก่อน จากนั้นก็ให้เราสร้าง droplet ที่ลงเฉพาะ Ubuntu อย่างเดียวมา เราจะใช้ Spec ถูกสุดเลยนั่นคือ Ram 512 MB, CPU 1 Core ให้เลือก Install เฉพาะ Ubuntu เท่านั้นนะ!! จากนั้นรอสัก 30 วินาที เราก็จะได้ Droplet มาแล้ว
ให้เรา SSH เข้าไปใน Droplet ที่เราสร้างและ Install Java ลงไป เพราะตัวเกม Minecraft จำเป็นต้องใช้ JRE (Java Runtime Environment) ให้การรัน และต้องเอา Java ที่ไม่มี GUI ด้วยก็ดี เพราะตัว Droplet เราเป็นแค่ Command Line ปกติเท่านั้นเอง โดยการพิมพ์ตามด้านล่างนี้เพื่อ Install

apt-get install default-jre-headless

Note : jre-headless คือ Option ในการ Install JRE แบบไม่เอา GUI มาด้วย อีกอย่างนึง คำสั่งที่จะใช้ในนี้ทั้งหมดอาจจะต้องรันผ่าน sudo เท่านั้นถึงจะทำได้นะจ๊ะ

Create a Minecraft System User

ตอนนี้เราจะมาจัดการกับ Permission ต่างๆใน Folder ที่เรากำลังจะสร้าง เพื่อเก็บตัวเกมกัน

mkdir /srv/minecraft
addgroup --system minecraft
adduser --system --no-create-home --home /srv/minecraft --ingroup minecraft minecraft

มันคือการสร้าง folder เพื่อเก็บตัวเกมทั้งหมดและ Set Home Location ให้ไปที่ Folder ของตัวเกมเพื่อความสะดวกต่อไป เราสามารถเปลี่ยนชื่อ Folder ที่เราสร้างได้นะ ไม่จำเป็นต้องเป็นเหมือนกันก็ได้นะ

Install Minecraft!!

เราจะต้อง cd เข้าไปที่ Directory ที่เราพึ่งสร้างไปเมื่อกี้กันก่อน

cd /srv/minecraft

ถัดมาเราจะโหลดตัวเกมกัน โดยใช้ wget แล้วชี้ไปที่ Server ของ Minecraft ณ วันที่เขียนคือ 22 May 2015 เวอร์ชั่นล่าสุดคือ 1.8.4 นะ ถ้ามีเวอร์ชั่นที่ใหม่กว่าก็ใช้เวอร์ชั่นใหม่ดีกว่า

wget https://s3.amazonaws.com/Minecraft.Download/versions/1.8.4/minecraft_server.1.8.4.jar -O minecraft_server.jar

Configuring Minecraft Server

ตอนนี้เราก็มีไฟล์ตัว Server เรียบร้อย ให้เรารันตัวไฟล์ก่อน เพื่อ Generate ไฟล์ที่เกี่ยวข้องต่างๆโดยการพิมพ์

java -Xms32M -Xmx450M -jar minecraft_server.jar nogui

ในคำสั่งเรากำหนดให้มันจอง Memory ขั้นต่ำที่ 32 MB และสูงสุดที่ 450 MB ค่า 2 ค่านี้เราควรที่จะเซ็ตให้พอดีกันตามจำนวน Memory ที่เรามี เช่นตอนนี้ผมมี Memory อยู่ 512 MB เซ็ต Max ไว้ที่ 450 ก็กำลังดีและ เพื่อ OS มันรันด้วยนิดหน่อย หลังจากที่เรารันครั้งแรก ตัวระบบมันจะ Generate ไฟล์ออกมา ตอนนี้ให้เราสนใจที่ 3 ไฟล์นี้ก่อน นั่นคือ banned-players.json, banned-ips.json, ops.json, และ whitelist.json ไฟล์พวกนี้ไว้เก็บ ID ของ Player ที่เข้ามาเล่นรวมถึงสามารถแบน IP ได้
ถัดไป เราจะมาเซ็ต op (หรือ Operator เรียกอีกอย่างคือ Admin นั่นเอง) ก็ไม่ยากให้พิมพ์
op yournamehere
เท่านี้เราก็จะกลายร่างเป็น Admin เต็มตัว สามารถใช้ Command ได้หมดเลย!!

Creating a Startup Script

ตอนนี้เราก็สร้างตัว Server กับ Config พื้นฐานเรียบร้อยแล้ว แต่ๆๆ ทีนี้ถ้าเวลาเราจะ Start Server ทีก็ต้องพิมพ์ Command ยาวๆก็ไม่น่าจะดีเท่าไหร่ เราจะมาเก็บมันเป็น Process กัน ก่อนอื่นให้สร้างไฟล์ minecraft.conf ขึ้นมาก่อน

vi /etc/init/minecraft.conf

แล้วใส่ Script ตามนี้เลย

start on runlevel [2345]
stop on runlevel [^2345]

console log
chdir /srv/minecraft
setuid minecraft
setgid minecraft

respawn
respawn limit 20 5

exec /usr/bin/java -Xms32M -Xmx450M -jar minecraft_server.jar nogui

จากนั้นเราจะมาสร้าง symlink โดยการรัน

ln -s /etc/init/minecraft.conf /etc/init.d/minecraft

เท่านี้เวลาเราจะ Start Server เราก็แค่พิมพ์ service minecraft start เพื่อรัน Server หรือ service minecraft stop เพื่อทำการปิด Server ตัวเกม

Connecting to our Minecraft Server

หลังจากที่เราสร้าง Server พร้อมกับ Config และรวบคำสั่งเป็น Script แล้วก็ให้ Start Server กันเลย

service minecraft start

กลับไปที่ตัวเกมของเรา ให้เราเข้าไปที่ Multiplayer แล้วก็เลือก Direct Connect แล้วพิมพ์ IP Address ของเครื่อง Server ลงไป (ถ้าไม่รู้ให้เข้าไปดูที่หน้า Droplet มันจะมีเขียนอยู่) แล้วตามด้วย colon และ port 25565 เพราะฉะนั้นก็จะเป็น

ipaddress:25565

จากนั้นก็ ยินดีต้อนรับเข้าสู่โลก 8 bits Square Block กันได้เลย!!! วู้~~~ ปิดเทอมของข้าจะอยู่กับ Minecraft แล้ววู้~~~

Read Next...

การสร้าง SSD Storage Pool บน Synology DSM

การสร้าง SSD Storage Pool บน Synology DSM

สำหรับคนที่ใช้ Synology NAS บางรุ่นจะมีช่อง M.2 สำหรับเสียบ NVMe SSD โดยพื้นฐาน Synology บอกว่ามันสำหรับการทำ Cache แต่ถ้าเราต้องการเอามันมาทำเป็น Storage ละ มันจะทำได้มั้ย วันนี้เราจะมาเล่าวิธีการทำกัน...

Multiprogramming, Multiprocessing และ Multithreading

Multiprogramming, Multiprocessing และ Multithreading

หลังจากที่เรามาเล่าเรื่อง malloc() มีคนอยากให้มาเล่าเรื่อง pthread เพื่อให้สามารถยัด Content ที่ละเอียด และเข้าใจง่ายในเวลาที่ไม่นานเกินไป เลยจะมาเล่าพื้นฐานที่สำคัญของคำ 3 คำคือ Multiprogramming, Multitasking, Multiprocessing และ Multithreading...

Synology NAS และ SSD Cache จำเป็นจริง ๆ เหรอ เหมาะกับระบบแบบใด

Synology NAS และ SSD Cache จำเป็นจริง ๆ เหรอ เหมาะกับระบบแบบใด

ใน Synology NAS มีความสามารถนึงที่น่าสนใจคือ การใช้ SSD เป็น Cache สำหรับระบบ ที่ทำให้ Performance ในการอ่านเขียน เร็วขึ้นกว่าเดิมมาก ๆ แน่นอนว่า เราลองละ วันนี้เราจะมาเล่าให้อ่านกันว่า หากใครคิดที่จะทำ มันเหมาะ หรือ ไม่เหมาะกับการใช้งานของเรา...

ฮาวทูย้าย Synology Add-on Package ไปอีก Volume

ฮาวทูย้าย Synology Add-on Package ไปอีก Volume

เรื่องราวเกิดจากการที่เราต้องย้าย Add-on Package ใน DSM และคิดว่าหลาย ๆ คนน่าจะต้องประสบเรื่องราวคล้าย ๆ กัน วันนี้เราจะมาเล่าวิธีการว่า เราทำยังไง เจอปัญหาอะไร และ แก้ปัญหาอย่างไรให้ได้อ่านกัน...