1. 程式人生 > >linux雲服務搭建Minecraft伺服器

linux雲服務搭建Minecraft伺服器

# 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