前言・Linux Server 並沒有那麼難#
Windows Server 作為 GUI 最成熟的伺服器系統深受許多 Minecraft 伺服器服主的喜愛,但是其系統佔用率高,功能冗雜,並不是很適合長期作為伺服器系統使用。Linux 系統佔用率很低,而且升級維護不需要重啟伺服器,非常方便。新手服主可能會被 Linux CLI 勸退,這篇指南旨在幫助你使用 Linux Server 搭建 Minecraft 伺服器。
前期準備#
系統選擇
如果沒有特殊環境需求,主流發行版都能滿足需求,本指南使用 Ubuntu Server 22.04 LTS 作為系統版本。
軟體準備
與伺服器通訊的 SSH 連接工具,FTP 工具(可選)。
本文格式
在 Bash 命令前會添加~$ 以表明此行是 Bash 命令,未添加即為命令行輸出,添加 # 則表明此行是上一行的註釋。
安裝環境#
安裝 Java1#
~$ sudo apt install openjdk-19-jdk
檢驗 Java 環鏡
~$ java --version
openjdk 19.0.1 2022-10-18
OpenJDK Runtime Environment (build 19.0.1+10-Ubuntu-1ubuntu122.04)
OpenJDK 64-Bit Server VM (build 19.0.1+10-Ubuntu-1ubuntu122.04, mixed mode, sharing)
安裝 LNMP 環境(可選)#
因為我的伺服器有插件需要用到 MySQL,而我懶得手動配置 phpMyAdmin,因此使用 LNMP 環境一次解決。有類似需求的也可僅安裝 MySQL 手動配置,本文不詳細展開。
# 使用 lnmp.org 的無人值守安裝腳本
~$ sudo apt install screen
# 安裝 screen 以保證進程不被系統殺死並可隨時回到終端查看狀況
~$ screen -S lnmp
~$ su
# 使用 root 用戶,若未設置過 root 用戶密碼請用 sudo passwd root 命令設置
# 請勿一直使用 root 用戶進行操作,會有安全隱患
~$ wget http://soft.vpser.net/lnmp/lnmp1.9.tar.gz -cO lnmp1.9.tar.gz && tar zxf lnmp1.9.tar.gz && cd lnmp1.9 && LNMP_Auto="y" DBSelect="4" Bin="y" DB_Root_Password="<數據庫 Root 用戶密碼>" InstallInnodb="y" PHPSelect="12" SelectMalloc="2" ./install.sh lnmp
# 使用 lnmp.org 生成的無人值守安裝命令安裝,請勿直接複製此處命令使用!!!
Install lnmp takes 13 minutes.
Install lnmp V1.9 completed! enjoy it.
~$ exit
# 退出 root 用戶
exit
配置服務端#
在 home 目錄2下創建一個新目錄,用來作為服務端根目錄
~$ cd
# 回到 home 目錄
~$ mkdir server
~$ cd ./server
# 進入新目錄
你可以選擇在個人 PC 上配置完後使用 FTP 上傳到伺服器運行,也可以選擇在伺服器上配置。本文不詳細展開
運行服務端#
在伺服器根目錄下創建一個新文件,重命名3為 start.sh 作為啟動腳本
~$ > start.sh
這裡使用 Aikar.co 提供的 JVM 參數
~$ nano start.sh
# 使用 nano 打開文件後,鍵入 JVM 參數
# java -Xms6G -Xmx6G -XX:+UseG1GC -XX:+UnlockExperimentalVMOptions -XX:MaxGCPauseMillis=100 -XX:+DisableExplicitGC -XX:TargetSurvivorRatio=90 -XX:G1NewSizePercent=50 -XX:G1MaxNewSizePercent=80 -XX:G1MixedGCLiveThresholdPercent=35 -XX:+AlwaysPreTouch -XX:+ParallelRefProcEnabled -Dusing.aikars.flags=mcflags.emc.gs -jar paperclip.jar nogui
# 根據需要修改 -Xms 與 -Xmx 參數
按 Ctrl + O 並回車保存,按 Ctrl + X 退出 nano4
運行腳本
~$ screen -S server
~$ bash ./start.sh
[Server thread/INFO]: Time elapsed: 4624 ms
[Server thread/INFO]: Done (5.381s)! For help, type "help"
至此,Minecraft 服務端已成功運行,斷開 SSH 連接後,輸入
~$ screen -r server
回到服務端終端5
文章引用及腳註#
Aikar: 調整 JVM —— 非常有效的伺服器啟動參數6