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