Minetest เป็นทางเลือกฟรีและโอเพนซอร์สสำหรับเกม Minecraft ยอดนิยม เซิร์ฟเวอร์��ิดตั้งและใช้งานได้ง่ายมาก
ข้อกำหนดเบื้องต้น
- 1GB + VPS หรืออินสแตนซ์เฉพาะที่ใช้งาน Ubuntu 17.04
- wget (ติดตั้งด้วย
apt install wget
)
- โปรแกรมแก้ไขข้อความ
ขั้นตอนที่ 1: เพิ่ม repo Minetest Stable และติดตั้งซอฟต์แวร์เซิร์ฟเวอร์
เนื่องจาก Ubuntu มีแนวโน้มที่จะล้าหลังกับแพ็คเกจสำหรับ Minetest คุณจะใช้ PPA ที่เสถียรแทน สามารถเพิ่มได้ด้วยคำสั่งต่อไปนี้
# add-apt-repository ppa:minetestdevs/stable
# apt update
ทำตามนี้คุณสามารถติดตั้งเซิร์ฟเวอร์
# apt install minetest
ขั้นตอนที่ 2: การสร้างผู้ใช้เปิดพอร์ตและทดสอบเซิร์ฟเวอร์
เพื่อเหตุผลด้านความปลอดภัยคุณควรเปิดใช้บริการภายในผู้ใช้ของตนเองตามที่แสดงไว้เสมอ
# useradd -mU minetest
สิ่งนี้จะสร้างminetest
ผู้ใช้ของคุณด้วยกลุ่มของตนเองและมีโฮมไดเร็กตอรี่เพื่อให้เซิร์ฟเวอร์ทำงาน
ก่อนการทดสอบคุณต้องเปิดพอร์ต30000
บนไฟร์วอลล์เริ่มต้นของ Ubuntu มิฉะนั้นคุณจะไม่สามารถเชื่อมต่อได้
# ufw allow 30000
ตอนนี้เป็นเวลาที่ดีในการทดสอบเซิร์ฟเวอร์และดูว่าทำงานหรือไม่
# su minetest
$ minetest --server
หากทุกอย่างเป็นไปด้วยดีคุณจะได้รับการต้อนรับจากผลลัพธ์ต่อไปนี้:
WARNING[Main]: BanManager: creating /home/minetest/.minetest/worlds/world/ipban.txt
WARNING[Main]: NodeDefManager: Ignoring CONTENT_IGNORE redefinition
WARNING[Main]: /!\ You are using old player file backend. This backend is deprecated and will be removed in next release /!\
WARNING[Main]: Switching to SQLite3 or PostgreSQL is advised, please read http://wiki.minetest.net/Database_backends.
ACTION[Main]: .__ __ __
ACTION[Main]: _____ |__| ____ _____/ |_ ____ _______/ |_
ACTION[Main]: / \| |/ \_/ __ \ __\/ __ \ / ___/\ __\
ACTION[Main]: | Y Y \ | | \ ___/| | \ ___/ \___ \ | |
ACTION[Main]: |__|_| /__|___| /\___ >__| \___ >____ > |__|
ACTION[Main]: \/ \/ \/ \/ \/
ACTION[Main]: World at [/home/minetest/.minetest/worlds/world]
ACTION[Main]: Server for gameid="minetest" listening on 0.0.0.0:30000.
หากคุณได้รับคำเตือนด้านบนเกี่ยวกับแบ็กเอนด์ของผู้เล่นไม่ต้องกังวลมากเกินไปเพราะจะได้รับการแก้ไขในขั้นตอนต่อไป
เชื่อมต่อกับเซิร์ฟเวอร์ของคุณกับลูกค้าเพื่อดูว่าทุกอย่างใช้งานได้หรือไม่ คุณสามารถหยุดเซิร์ฟเวอร์เมื่อใดก็ได้โดยกดCtrl+C
บนแป้นพิมพ์ภายในเชลล์
ขั้นตอนที่ 3: การกำหนดค่าเซิร์ฟเวอร์ Minetest
ก่อนอื่นคุณจะต้องดาวน์โหลดminetest.conf
ไฟล์กำหนดค่าตัวอย่าง
$ cd ~/.minetest
$ wget https://raw.githubusercontent.com/minetest/minetest/master/minetest.conf.example
$ mv minetest.conf.example minetest.conf
ไฟล์นี้มีรายการการตั้งค่าที่เป็นไปได้มากมายสำหรับคุณในการแก้ไขและเปิดใช้งาน (โดยไม่ใส่เครื่องหมายบรรทัด) อย่างไรก็ตามในขณะนี้มีบางสิ่งที่สำคัญที่คุณต้องตั้งค่า
ชื่อและคำอธิบายของเซิร์ฟเวอร์ของคุณ (ตัวอย่าง):
server_name = Minetest server
server_description = Welcome to my Minetest Server
ที่อยู่ IP และพอร์ตที่ต้องการของเซิร์ฟเวอร์ของคุณ (ตัวอย่าง):
bind_address = 203.0.113.1
port = 30000
หากคุณตั้งค่าพอร์ตที่แตกต่างจากค่าเริ่มต้น30000
ตรวจสอบให้แน่ใจว่าคุณอัปเดตกฎไฟร์วอลล์ของคุณ
#ufw delete allow 30000
#ufw allow <port>
name
อีกหนึ่งทางเลือกที่สำคัญคือ ผู้ใดก็ตามที่เชื่อมต่อกับเซิร์ฟเวอร์ Minetest ด้วยค่าที่ระบุไว้จะได้รับสิทธิ์ผู้ดูแลระบบ ตั้งเป็นชื่อผู้ใช้ที่คุณต้องการและตั้งรหัสผ่านสำหรับบัญชีของคุณในภายหลัง
คุณอาจจำคำเตือนเกี่ยวกับแบ็กเอนด์ของผู้เล่นก่อนหน้านี้ดังนั้นการเปลี่ยนไปใช้ SQLite3 เป็นสิ่งที่ต้องทำเนื่องจากแบ็กเอนด์เก่าเลิกใช้งานและจะถูกลบออกในรีลีสภายหลังหากยังไม่ได้รับ หากคุณไม่ได้รับข้อความนี้เมื่อคุณทดสอบเซิร์ฟเวอร์ในขั้นตอนที่ 2 คุณสามารถไปยังขั้นตอนที่ 4 ได้โดยตรง
$ minetest --server --migrate-players sqlite3 --world ~/.minetest/worlds/world
หลังจากนั้นคุณควรเห็นข้อความดังต่อไปนี้
ACTION[Main]: Successfully migrated 1 players
ACTION[Main]: world.mt updated
ขั้นตอนที่ 4: การเรียกใช้เซิร์ฟเวอร์ขณะบู๊ต
ในการรันเซิร์ฟเวอร์ขณะบู๊ตจำเป็นต้องใช้ไฟล์บริการ systemd โชคดีที่สิ่งเหล่านี้ตรงไปตรงมาเพื่อสร้าง
ออกกลับไปที่รูทเชลล์และเพิ่มรายการต่อไปนี้ /etc/systemd/system/minetest.service
[Unit]
Description=Minetest Server
After=network.target
[Service]
Type=simple
User=minetest
Group=minetest
WorkingDirectory=/home/minetest
ExecStart=/usr/bin/minetest --server
Restart=on-abort
[Install]
WantedBy=multi-user.target
จากนี้ไปบนเซิร์ฟเวอร์ Minetest สามารถเริ่มต้นด้วยsystemctl
(และจะทำโดยอัตโนมัติหลังจากรีบูตหรือถ้าเซิร์ฟเวอร์ Minetest ล่ม)
# systemctl enable minetest.service
# systemctl start minetest.service
ในทำนองเดียวกันคุณสามารถตรวจสอบสถานะหรือหยุด / รีสตาร์ทเซิร์ฟเวอร์ Minetest ได้โดยแทนที่ "start" ในคำสั่งด้านบน
ข้อสรุป
เซิร์ฟเวอร์ Minetest ของคุณควรเปิดใช้งานและใช้งานได้ หากคุณมีปัญหาใด ๆ ในการเชื่อมต่อการตรวจสอบว่าพอร์ตของคุณจะเปิดและที่อยู่ IP minetest.conf
ที่ระบุไว้อย่างถูกต้องใน ข้อมูลเกี่ยวกับการจัดการสิทธิ์ผู้เล่นและคำสั่งเซิร์ฟเวอร์ต่างๆสามารถพบได้ในวิกิพีเดีย Minetest