linux雲服務搭建Minecraft伺服器
阿新 • • 發佈:2021-03-14
# 1 準備工作
以下內容全部要在root使用者內完成
## 1.1 安裝檔案傳輸工具
為了方便傳檔案到伺服器上,這裡先裝一個遠端傳輸工具。
```shell
yum -y install lrzsz
```
## 1.2 安裝java
Minecraft服務端也需要jre才能執行,這裡有兩個安裝方法(選擇一種):
### 1.2.1 官網下載
去官網下載(https://www.oracle.com/java/technologies/javase-jre8-downloads.html)linux x64的gz包,得到jdk-8u271-linux-x64.tar.gz檔案(目前最新版本是8u271,以後可能會有更新的版本)。
```shell
rz #將下載好的gz檔案上傳到伺服器
# 建立安裝目錄
mkdir /usr/local/java/
# 解壓當前目錄下的JDK壓縮檔案(版本不一樣檔名也會不一樣,善用tab自動補全)
tar -zxvf jdk-8u271-linux-x64.tar.gz -C /usr/local/java/
# 方便後面配置環境,改一下檔名
mv /usr/usr/local/java/jdk1.8.0_271 /usr/usr/local/java/jdk1.8.0
# 設定環境變數(安裝 VIM 輸入 yum -y install vim)
vim /etc/profile
# 在末尾新增對應變數
滾動游標到末尾 按下 鍵盤上的 INS 鍵,切換至插入模式
輸入這幾串內容後 按ESC退出插入模式
然後按下 Shift + ; 輸入 wq 並回車儲存
export JAVA_HOME=/usr/local/java/jdk1.8.0
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH
# 應用修改後的環境變數
source /etc/profile
# 軟連結程式到環境變數中
ln -s /usr/local/java/jdk1.8.0/bin/java /usr/bin/java
# 測試是否安裝正常,顯示 java version "1.8.0_261" 則為正常
java -version
```
### 1.2.2 或yum安裝
```shell
sudo yum install java-1.8.0-openjdk
```
有詢問輸入y即可
## 1.3 安裝screen
安裝screen,後面開服時會用到。使用screen可以讓伺服器程序在後臺執行,而不會因為遠端連線的斷開而停止程序。
```shell
# RedHat/CentOS
yum install -y screen
# Ubuntu/Debian
apt install screen
```
## 1.4 配置防火牆
一定要在root使用者中操作。
這步很關鍵,開服之後連線不到伺服器,很可能就是因為防火牆沒配置好!
新增一個**埠**(25565預設)
```text
firewall-cmd --zone=public --add-port=25565/tcp --permanent
```
然後 重啟防火牆
```text
firewall-cmd --reload
```
檢視埠狀態
```text
firewall-cmd --zone= public --query-port=25565/tcp
```
在網頁端的管理控制檯 安全 防火牆 右上新增規則
TCP 25565
## 1.5 建立使用者
不建議使用root系統進行後面的操作,接下來為Minecraft建立一個專門的使用者。
```shell
useradd -m Minecraft # 新建一個名為Minecraft的使用者
passwd Minecraft # 為使用者Minecraft設定密碼
su - Minecraft # 切換至新建的Minecraft使用者。改成root,可以切換回root使用者
```
# 2.Minecraft服務端
給MC服務端建立一個資料夾
```shell
cd ~
mkdir MinecraftServer #建立資料夾
cd MinecraftServer #進入資料夾
```
## 2.1 獲取服務端
MC目前主流的服務端分很多種,簡單可以分為三類:
①原版純淨:官網直接下服務端,不能裝mod不能裝外掛
②forge服務端:Mod服,只能裝Mod,不能裝外掛
(http://files.minecraftforge.net/)
③Craftbukkit、Spigot服務端:外掛服,只能裝外掛,不能裝Mod
④CatSetver服務端:國人開發的,MOD+外掛服,白火現在在用。
以上服務端,按需要選擇一個,到對應官網下載。(或直接下載別人配置好的懶人服務端,別人配置好的服務端,可視情況跳至2.3步驟。)
你可以在自己的電腦上下載好服務端,然後利用Xshell等遠端終端的lrzsz外掛,傳輸到伺服器上。
用cd MinecraftServer指令,進入剛才建立的MinecraftServer內。輸入指令:
```shell
rz
```
就會彈出上傳視窗,將下載好的服務端上傳。
![](https://img2020.cnblogs.com/blog/1660935/202103/1660935-20210314143927235-1515448069.png)
下載好後執行下面這一句。這裡分別以Forge和CatServer舉例。不論你用那種服務端,你只需要把-jar後面的名字改成你服務端檔案的名字即可。善用Tab補全程式碼,避免輸錯。
```shell
#Forge服
java -jar forge-1.12.2-14.23.4.2705-installer.jar -nogui -installServer
#CatServer服
java -Xmx2G -jar CatServer-2a9163f-universal.jar
```
這一步其實是在安裝服務端,還要在下載一會服務端資源,網路比較慢。有意思的是,其中CatServer服端安裝服務端的指令,和後面正真執行服務端的指令是一樣的。(Forge則是不同的)
如果提示下載失敗了,或部分資源下載超時了,就再重執行一次上面的forge-*-installer.jar
```shell
#用ls指令檢視檔案
ls #會看到多了幾個檔案
```
![](https://img2020.cnblogs.com/blog/1660935/202103/1660935-20210314143937249-1316214419.png)
你看到肯定沒我截圖那麼多,是正常的,不用擔心。因為我這裡有很多mod的配置資料夾之類的,你們的新伺服器還沒裝mod或外掛。
現在伺服器資源都正確下載了,執行以下程式碼:
```shell
#Forge服
java -Xmx1G -jar forge-1.12.2-14.23.4.2705-universal.jar
#CatServer服
java -Xmx2G -jar CatServer-2a9163f-universal.jar
```
## 2.2 同意協議
首次執行必定失敗,會提示你需要同意協議。這時我們輸入`ls`就能看到目錄下多了一個eula.txt。我們需要修改eula檔案同意協議,才能啟動。
```shell
vim eula.txt
```
將eula=false改成eula=true即可。
然後按esc,輸入`:wq`儲存退出。
## 2.3 配置檔案
為了方便以後開服,我們建立一個startServer.sh檔案。(別人配置好的服務端可能已經建立過了)
```shell
vim startServer.sh
```
然後i寫入
```shell
#Forge服
java -Xmx1G -jar forge-1.12.2-14.23.4.2705-universal.jar
#CatServer服
java -Xmx2G -jar CatServer-2a9163f-universal.jar
```
按esc,輸入:wq儲存退出。
其實就是把剛才我們執行伺服器的指令,寫進了shell中,以後省的敲指令了,直接執行這個shell即可。
*這和windows的bat批處理性質相似,在windoes中開服,也是把開服的指令寫進一個bat中,每次執行bat就省的敲指令了。*
```shell
# 給start.sh執行許可權
chmod 777 startServer.sh
# 執行start.sh即可開服
./startServer.sh
# 控制檯不再跳新的資訊時,說明開服成功了
# 我們先結束伺服器,完成伺服器配置
stop
```
首次成功開服後,會產生一個server.properties檔案,是伺服器的配置檔案。
```shell
vim server.properties #修改配置檔案
```
其中online-mode=true是檢測正版登入使用者,true是隻允許正版玩家進入可以使用,false則允許離線進入。
更多配置參考這個檔案。
https://minecraft-zh.gamepedia.com/index.php?title=Server.properties&variant=zh
## 2.4 正式開服
建立一個名為MinecraftServer的screen,可以讓伺服器在後臺執行,斷開遠端連線也不終止程序。
```shell
screen -S MinecraftServer
```
啟動伺服器
```shell
./start.sh
```
![](https://img2020.cnblogs.com/blog/1660935/202103/1660935-20210314143955633-525459888.png)
![](https://img2020.cnblogs.com/blog/1660935/202103/1660935-20210314144000437-212446231.png)
不要管我這裡綠色的提示,那是我裝的領地外掛的提示,新伺服器肯定沒有的。你只要看到有Type “/help” for help,就說明你的伺服器已經跑起來了。
然後按住Ctrl + A +D ,將screen加入後臺執行
當你需要回到這個sreen頁面時,使用如下指令。
```shell
screen -ls # 檢視screen,記下MinecraftServer的編號
screen -r
```
現在進遊戲,輸入自己伺服器的ip就可以連上了。
![](https://img2020.cnblogs.com/blog/1660935/202103/1660935-20210314144051819-631591351.png)
# 補充
如果服務端正常開服,但是遊戲就是無法連線伺服器,一般都是防火牆的問題。回去1.4好好看看,再配置下防火牆。
Mod放在伺服器資料夾內的mods資料夾內,即MinecraftServer/mods下。前提是你的伺服器端必須支援mod,如Forge端、CatServer端。
外掛放在伺服器資料夾的plugins資料夾內,即MinecraftServer/plugins下。前提是你的服務端必須支援外掛,如Craftbukkit、Spigot、CatServer。
沒錯,CatServer永遠的神!
整體來說在Linux上開服不難,前提是有一定的Linux基礎。如果有不明白,或者實際操作遇到困難,歡迎在評論,會逐一解答。
因為linux有CentOS、unbuntu等,分支眾多,而MC的服務端也五花八門,各不相同。可能會有紕漏,歡迎指正!
如何在Linux下搭建Minecraft伺服器
參考:
[MC雲伺服器搭建教程[非硬核]](https://zhuanlan.zhihu.com/p/55952581)
[如何在Linux下搭建Minecraft伺服器](https://www.bilibili.com/read/cv1267747/)
[Minecraft Wiki:server.properties](https://minecraft-zh.gamepedia.com/Server.properties?vari