在Linux下搭建我的世界(Minecraft)服務器


最近薅了百度雲雙12的羊毛,1核2G一年150。突然想起以前大學整個宿舍通宵開黑挖泥土的歲月,所以剛好趁着這台服務器,打算自己搭建一個我的世界服務器,重溫一下以前的感覺。
超詳細Linux搭建Java開發環境

系統要求

google到的MC系統要求:

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

上面就是服務器端的需求,如果只是和小伙伴們一起玩,也並不需要多優秀的服務器。下面是我的配置:

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

安裝Java

MC是用Java寫的(當然現在也有別的語言寫的版本),由於服務器端的MC是一個jar包,我們在配置之后通過運行jar包來開啟服務器端,同時我們在客戶端上打開后通過IP地址即可搜索並進入服務器。所以我們首先要先安裝Java。通過下面的方法來安裝:

```yum install -y java-1.8.0-openjdk ```

下載MC服務器端

這里有一個要求,就是你和你的小伙伴要擁有同樣版本的MC。不同的版本對應着不同的服務器端,所以我們要下載正確的版本。如何看MC版本呢,一般進入游戲后,游戲左下角會有版本顯示。知道了版本號,那么用命令就可以下載對應版本的服務器端了。需要根據版本號補全命令格式:

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

<p>例子:博主這邊選擇安裝了比較穩定的1.12版本</p>
```wget https://s3.amazonaws.com/Minecraft.Download/versions/1.12/minecraft_server.1.12.jar

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

MC服務器,啟動!

我們就可以使用命令來運行MC服務器:

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

例子:

```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包所在目錄,每次啟動的時候直接啟動腳本就能進入游戲了。

```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 會話,在當前會話下,輸入上面的啟動腳本命令,確認游戲正常啟動后,就可以放着不管了,只要不是服務器掛掉了,服務就會一直運行着。

來源:https://segmentfault.com/a/1190000017524495


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM