在Linux下搭建個人世界(Minecraft)服務器

最近薅了百度雲雙12的羊毛,1核2G一年150。忽然想起之前大學整個宿舍通宵開黑挖泥土的歲月,因此恰好趁着這臺服務器,打算本身搭建一個個人世界服務器,重溫一下之前的感受。

系統要求

google到的MC系統要求:html

  • 1.CPU:雙核
  • 2.內存:20-40人2GB,30-60人3GB,60+人8GB

上面就是服務器端的需求,若是隻是和小夥伴們一塊兒玩,也並不須要多優秀的服務器。下面是個人配置:java

  • 1.CPU:單核
  • 2.內存:2G
  • 3.Linux系統:CentOS 7.3 x86_64

安裝Java

MC是用Java寫的(固然如今也有別的語言寫的版本),因爲服務器端的MC是一個jar包,咱們在配置以後經過運行jar包來開啓服務器端,同時咱們在客戶端上打開後經過IP地址便可搜索並進入服務器。因此咱們首先要先安裝Java。經過下面的方法來安裝:shell

yum install -y java-1.8.0-openjdk

下載MC服務器端

這裏有一個要求,就是你和你的小夥伴要擁有一樣版本的MC。不一樣的版本對應着不一樣的服務器端,因此咱們要下載正確的版本。如何看MC版本呢,通常進入遊戲後,遊戲左下角會有版本顯示。知道了版本號,那麼用命令就能夠下載對應版本的服務器端了。須要根據版本號補全命令格式:vim

wget https://s3.amazonaws.com/Minecraft.Download/versions/<你要下載的版本號>/minecraft_server.<你要下載的版本號>.jar

例子:博主這邊選擇安裝了比較穩定的1.12版本bash

wget https://s3.amazonaws.com/Minecraft.Download/versions/1.12/minecraft_server.1.12.jar

等下載提示結束後,minecraft_server.1.12.jar就躺在當前目錄了。服務器

MC服務器,啓動!

咱們就可使用命令來運行MC服務器:session

java -Xms[初始啓動分配內存] -Xmx[最大分配內存] -jar [jar包所在路徑]/minecraft_server.[版本號].jar nogui

例子:ssh

java -Xms256m -Xmx512m -jar /home/mc/minecraft_server.1.12.jar nogui
關於命令最後一個參數 nogui,是分開的單詞 no gui,意思是不須要圖形界面,這樣會大大減少內存的使用,若是你的Linux是有圖形界面的,就能夠不打這個 nogui。

啓動成功

上面的命令輸入完成後,等待參數由0%一直到100%就啓動完成啦!下面給出博主啓動完成的後幾行顯示:工具

[05:58:08] [Server thread/INFO]: Loaded 488 advancements
[05:58:08] [Server thread/INFO]: Preparing start region for level 0
[05:58:09] [Server thread/INFO]: Preparing spawn area: 0%
[05:58:10] [Server thread/INFO]: Preparing spawn area: 41%
[05:58:11] [Server thread/INFO]: Preparing spawn area: 76%
[05:58:11] [Server thread/INFO]: Done (4.263s)! For help, type "help" or "?"

MC,Shell腳本啓動!

咱們若是一直使用上面那一句啓動的話是否是很是麻煩!每次都要複製粘貼,那麼咱們能夠寫一個簡單的Shell腳本,放在jar包所在目錄,每次啓動的時候直接啓動腳本就能進入遊戲了。ui

vim start-game.sh

編輯內容以下:

#!/bin/sh

java -Xms256m -Xmx512m -jar /home/mc/minecraft_server.1.12.jar nogui

保存退出,每次啓動遊戲只須要運行下面命令便可:

bash start-game.sh

MC服務器,關閉!

按 Ctrl + C 來中止當前服務器

MC服務起最多見的啓動失敗

咱們在第一次運行完jar包後,不管是否運行成功,都能發現當前目錄下多出了一堆文件,運行失敗的時候其實就是配置除了一點問題。咱們在當前目錄找一下文件:eula.txt

vim eula.txt

按i鍵進入編輯模式,找到以下一行把 false 改成 true

eula=false

保存退出

  • 1.按 esc
  • 2.輸入 :wq

客戶端鏈接MC服務器失敗

上面都啓動成功以後,就能夠下載對應服務器版本的客戶端。下載好後啓動,點擊多人遊戲,添加服務器,服務器地址輸入咱們雲服務器的公網IP,就可鏈接上去愉快的玩耍了。可是這時候可能會發現就是怎麼鏈接都失敗,若是遇到這個狀況,咱們須要檢查下服務器配置文件,先在jar包目錄下找到文件server.propertices 並編輯:

vim server.propertices

找到這一行

online-mode:true

將true改成false,這是正版驗證服務的設置
關於 server.propertices 文件,這邊就很少作介紹了,可經過下面的連接瞭解詳情

保持服務會話

由於博主用的是雲服務器,須要經過使用ssh工具來鏈接到服務器啓動遊戲服務,可是通常服務器和ssh工具都會有鏈接會話的超時設置,在一段時間沒有在服務器上操做後,會自動斷開ssh會話,這時這個會話中的任務就會被殺掉,那小夥伴們遊戲玩着玩着就與服務器斷開鏈接了。
這個時候咱們可使用Linux上這個 GNU Screen 工具來解決上述問題

GNU Screen是一款由GNU計劃開發的用於命令行終端切換的自由軟件。用戶能夠經過該軟件同時鏈接多個本地或遠程的命令行會話,並在其間自由切換。GNU Screen能夠看做是窗口管理器的命令行界面版本。它提供了統一的管理多個會話的界面和相應的功能。

安裝 screen

yum install -y screen

語法:

screen -AmRvx -ls -wipe-h <行數>-s

參數說明

  • -A  將全部的視窗都調整爲目前終端機的大小。
  • -d <做業名稱>  將指定的screen做業離線。
  • -h <行數>  指定視窗的緩衝區行數。
  • -m  即便目前已在做業中的screen做業,仍強制創建新的screen做業。
  • -r <做業名稱>  恢復離線的screen做業。
  • -R  先試圖恢復離線的做業。若找不到離線的做業,即創建新的screen做業。
  • -s  指定創建新視窗時,所要執行的shell。
  • -S <做業名稱>  指定screen做業的名稱。
  • -v  顯示版本信息。
  • -x  恢復以前離線的screen做業。
  • -ls或--list  顯示目前全部的screen做業。
  • -wipe  檢查目前全部的screen做業,並刪除已經沒法使用的screen做業。

經常使用screen參數

  • screen -S yourname -> 新建一個叫yourname的session
  • screen -ls -> 列出當前全部的session
  • screen -r yourname -> 回到yourname這個session
  • screen -d yourname -> 遠程detach某個session
  • screen -d -r yourname -> 結束當前session並回到yourname這個session

保持咱們的MC服務會話

  • 新建一個screen會話
screen -S mcs

當輸入這個命令後,就會進入 mcs 會話,在當前會話下,輸入上面的啓動腳本命令,確認遊戲正常啓動後,就能夠放着無論了,只要不是服務器掛掉了,服務就會一直運行着。

相關文章
相關標籤/搜索