基於Windows 7(本地)和CentOS7.6(雲端)的Minecraft伺服器(無Forge/有Forge)搭建方法

来源:https://www.cnblogs.com/wdz-/archive/2019/08/07/11306588.html
-Advertisement-
Play Games

炎炎夏日中想和小伙伴們開黑的同學可以進來看一下了,本教程教你搭建基於兩個平臺的Minecraft伺服器,這裡我以Minecraft 1.11.2版本為例給大家講解搭建流程。其中有Forge版本可以加入mods。 一、Windows下的Minecraft純凈(無Forge)伺服器搭建 1.獲取伺服器文 ...


  炎炎夏日中想和小伙伴們開黑的同學可以進來看一下了,本教程教你搭建基於兩個平臺的Minecraft伺服器,這裡我以Minecraft 1.11.2版本為例給大家講解搭建流程。其中有Forge版本可以加入mods。

 

  一、Windows下的Minecraft純凈(無Forge)伺服器搭建

 

   1.獲取伺服器文件

  首先我們先去網上下載JAR伺服器文件minecraft_server.1.11.2.jar。不能訪問國外網站的同學,可以去一些網盤分享網站搜索,一般都可以找得到這個文件。網盤鏈接

 

  

  2.編寫啟動腳本

  打開記事本,輸入下列代碼後保存在和伺服器文件同一個目錄下:

  

@echo off
java -Xms1024m -Xmx1024m -jar minecraft_server.1.11.2.jar nogui
View Code

 

  這個腳本中,“java”表示運行javaw.exe,系統會自動在你的環境變數的path中尋找包含javaw.exe的目錄,後面的參數表示一些限制條件,其中“Xms1024m”表示堆記憶體初始值為1024MB,“Xmx1024m”表示堆記憶體最大值為1024MB(這兩個值可根據大家的電腦配置酌情更改即可),“-jar”表示運行jar包,“nogui”是jar包中的main方法的參數,表示不以圖形界面運行。

 

  3.修改配置文件

  將啟動腳本更換尾碼名為".bat",雙擊啟動:

  這時會有一個黑框一閃而過,內容是這樣的:

 

  第三行的意思是說我們需要同意EULA協議才能啟動我們的伺服器。執行完啟動腳本之後,我們發現文件夾下多了個“log”文件夾和兩個文件,其中一個就是eula.txt文件。我們雙擊打開eula.txt文件,將eula=false改為eula=true,保存退出。

  重新啟動腳本,這時又彈出了剛纔的黑框,不過這次不再是一閃而過了。如果看到最後一行的“Done”那麼表示伺服器創建成功了:

 

 

  打開Minecraft 1.11.2客戶端,選擇“多人游戲”->“添加伺服器”,伺服器地址中輸入"localhost:25565"(埠號可在server.properties中更改)。選中我們的伺服器,點擊“加入伺服器”,卻發現這樣的提示:“無法連接至伺服器”,“登入失敗:無效的會話(請嘗試重啟你的游戲)”。

 

    

  切換到伺服器,發現有一條登錄的消息,但是該消息中id的值是空的:

 

  

  原來,Minecraft伺服器預設開啟了正版客戶端驗證,我們的客戶端一般都是盜版的,所以伺服器驗證不通過,自然就不能夠登錄了。

  在伺服器文件夾下,找到server.properties,使用任意文本編輯器打開:

  

 

  找到第33行,將online-mode=true改為online-mode=false,保存退出

 

 

 

  要使新配置生效,我們要切換到伺服器的黑框,輸入“stop”,回車後伺服器就將數據保存好後安全關閉。再次雙擊打開我們的啟動腳本重新打開伺服器,這次就能連接得上我們的伺服器了。

 

   二、Windows下的Minecraft Forge伺服器搭建

 

  第一步創建的伺服器是不能添加我們喜歡的MOD的,要想添加MOD,我們要換一個伺服器。

 

  1.獲取Forge伺服器文件

 

  瀏覽器打開https://files.minecraftforge.net ,下載下圖中的兩個文件:forge-1.11.2-13.20.1.2588-installer-win.exe,forge-1.11.2-13.20.1.2588-universal.jar。其中exe文件是可選的,jar文件是必須要下載的。

 

  

  說明一下兩個文件的用途:exe文件負責下載libraries文件夾的內容,jar文件是我們新伺服器文件。

  沒下載exe文件的同學,可以直接下載libraries文件,這裡分享一個MCBBS上的整合包http://zsn741656478.ys168.com,下載對應版本的libraries即可。

 

 

   下好之後的文件應該是這樣的:

  其中minecraft_server.1.11.2.jar是上一步我們下載的伺服器,這裡我們也要把它放在這個目錄下。

 

 

  下載了exe文件的同學看這一步:

  雙擊打開exe文件,選擇“Install server”,勾選Mercurius,選擇伺服器文件夾,點擊確定。

 

   等待後臺下載對應版本的libraries即可。

 

 

 

  程式下載完成後,我們可以看見伺服器文件夾下多了一個libraries和mods文件夾。

 

 

  沒有下載exe文件的同學,直接把libraries文件解壓到當前目錄也可以:

 

 

  當伺服器文件夾下有了libraries文件夾之後我們就開始下一步了(mod文件夾不用管)。

 

  2.編寫啟動腳本

 

   到了這一步就和剛纔配置伺服器的步驟一模一樣了。打開記事本輸入以下指令,不過註意的是這次運行的jar文件是我們新添加的forge版本的文件:

@echo off
java -Xms1024m -Xmx1024m -jar forge-1.11.2-13.20.1.2588-universal.jar nogui
View Code

   

 

 

  3.修改配置文件

 

   將.txt文件拓展名更改為.bat後雙擊啟動,這時一個黑框一閃而過。打開文件夾下的eula.txt,將eula=false改為eula=true。雙擊啟動腳本,黑框最後一行出現“Done”字樣的時候,輸入“stop”並回車,退出伺服器。

 

 

  記事本打開伺服器目錄下的server.properties,將online-mode=true改為online-mode=false,保存退出:

 

 

  重新雙擊啟動腳本,啟動伺服器,若無問題則進行下一步。

 

  4.更改客戶端

  

  伺服器更改了,客戶端也要更改為對應的forge版本才能連的上。一般的客戶端都是有啟動程式的,這裡我只試過了路由俠和HMCL,這兩個啟動程式都可以幫幫我們更新客戶端的版本,具體操作看啟動程式的說明。

   路由俠:

 

  HMCL:

  

 

  客戶端版本不是亂選的,一定要跟伺服器的forge版本對應才行,這個千萬要註意。

  

 

   更新好客戶端版本後,我們就可以連接伺服器了。25565埠號可以自行更改,但是不能和其他埠號衝突。

 

 

  想加入mod就直接在客戶端的./minecraft/mods/文件夾中放入對應的.jar文件,重啟客戶端即可。(部分mod要求伺服器端也要添加)

  如果你想和其他小伙伴一起玩,如果搭建的是本地伺服器那麼需要開啟外網埠映射,詳見https://www.mcbbs.net/thread-622873-1-1.html;如果是雲伺服器那麼所有人都可以直接連接。下麵教大家搭建Minecraft雲端伺服器(敲黑板)。

 

  三、CentOS下的Minecraft純凈(無Forge)伺服器搭建方法

 

  1.申請伺服器

 

  國內性價比比較高的三個雲伺服器:阿裡雲,騰訊雲和景安公司的快雲,大家可以去對應的官網選擇適當的配置自行申請。

 

  

 

  本來打算在阿裡雲租一個VPS的,但是我在快雲抽到了1塊錢30天體驗券,就選快雲的VPS了。

 

  2.配置伺服器

 

  大家可以看到我申請到的伺服器系統是Win2003的,所以我們還要重裝一下系統(一般的雲伺服器供應商都會有這個功能)。Linux比Windows占用的資源更少,這裡說明一下,Ubuntu和CentOS的最重要的區別是Ubuntu有圖形界面而CentOS沒有,而載入處理圖形界面(哪怕你不顯示)會占用不少CPU資源,所以強烈推薦使用最新版本的CentOS

 

 

 

   使用SSH工具登錄你的VPS,XSHELL或者PUTTY都可以,這裡我以XSHELL為例。

   選擇“文件”->“新建”,在“協議”中選擇“SSH”,“主機”輸入你申請到的VPS的公網IP地址,埠號輸入雲伺服器供應商提供的埠號(預設22)。

  

 

  左側的視窗點擊“用戶身份驗證”,“用戶名”一般是“root”,“密碼”輸入你設置的密碼即可。

 

 

  這裡要註意的是,左側視窗選擇“隧道”,將“轉發X11連接到”的多選框取消勾選

 

 

  點擊“連接”即可遠程連接伺服器:

 

 

   有的雲伺服器供應商會在重裝系統後幫你配置好了一些常用命令,如wget等;而有的則是很純凈的系統,很多常用命令都沒有,所以這裡我給大家列舉一些我們要用到的命令:

  wget:文件自動下載工具,將遠程伺服器的文件下載到雲伺服器

  lrzsz:文件上傳下載命令,將本地文件上傳到雲伺服器或者將雲伺服器的文件下載到本地

  net-tools:用於查詢埠狀態,常用到的是netstat

  screen:同一終端下的多會話管理器

  

  首先我們先將系統的更新源更改為阿裡雲的源(當然也可以更改為清華大學或者163的源),這樣我們下載鏡像的時候就不會從外國網站下載而是轉到我們指定的國內網站下載。下麵以更改阿裡雲的源為例:

  安裝wget:

yum -y install wget

   下載阿裡雲換源文件update_source.sh:(更新界面在這裡:https://help.aliyun.com/knowledge_detail/41177.html)

wget http://docs-aliyun.cn-hangzhou.oss.aliyun-inc.com/assets/attach/41177/cn_zh/1504061676920/update_source.sh

   添加執行許可權:

chmod 777 update_source.sh

   執行換源腳本:

./update_source.sh

    然後更新並升級系統:

yum -y update && yum -y upgrade

  在yum庫中查找java安裝包:

yum -y list java*

 

  我們可以看到可用java1.8的版本,我們這裡就選1.8的java版本(要註意Minecraft 的1.7以下的版本最好選1.7的java,Minecraft 1.8+的選1.8的java)

yum -y install java-1.8.0-openjdk*

   輸入“java -version”我們可以看到已經安裝配置成功:

  安裝GNU Screen:

yum -y install screen

   

  如果有同學按照上一步在本地搭建好了Windows的Minecraft伺服器那麼這裡可以直接上傳到我們的雲端伺服器上。如果沒有,那麼我們用lrzsz命令將伺服器文件上傳到雲伺服器。

   安裝lrzsz:

yum install -y lrzsz

   選中伺服器文件Minecraft_server.1.11.2.jar,直接拖入XSHELL視窗中:

 

   等待傳輸結束即可。

 

 

   新建文件夾mc_server:

mkdir mc_server

   切換工作目錄到mc_server:

cd mc_server/

   移動文件,將上一級目錄下的minecraft_server.1.11.2.jar移動到當前目錄下:

mv ../minecraft_server.1.11.2.jar ./

   有了前面兩次的搭建經驗,那麼大家應該知道接下來做什麼了。

  新建文件eula.txt,並將“eula=true”寫入eula.txt中:

echo eula=true > eula.txt

   新建啟動腳本start.sh,並將啟動命令寫入start.sh中,同時賦予此腳本執行許可權:

echo -e '#!/bin/sh \njava -Xmx768M -Xms512M -jar ./minecraft_server.1.11.2.jar' > start.sh && chmod 777 start.sh

   由於我申請的VPS記憶體有點小,所以此處最小記憶體就設置了512MB,最大設置了768MB,這些參數大家可以根據自己的VPS配置酌情修改。

  我們查看一下現在mc_server目錄下的文件,如果按著步驟來那麼就會得到這三個文件:

ls -l

 

 

  運行start.sh啟動我們的伺服器:

./start.sh

   啟動成功最後一行就會出現“Done”等字樣:

 

  關閉伺服器:

stop

   查找server.properties文件中的online-mode=true並修改為online-mode=false

find -name 'server.properties' | xargs perl -pi -e 's|online-mode=true|online-mode=false|g'

   打開並啟動防火牆:

systemctl start firewalld && systemctl enable firewalld

   將25565埠設置為開放而不是阻止:(修改開放的埠號要在server.properties中更改)

firewall-cmd --zone=public --add-port=25565/tcp --permanent

   立即應用防火牆改動:

firewall-cmd --reload

  新建名稱為“mc”的會話:

screen -S mc

   在此會話下啟動伺服器:

./start.sh

   啟動成功後,按下Ctrl+A再按下Ctrl+C鍵離開此會話。

  查看埠開放:

netstat -nltp

 

 

   可見25565埠出現LISTEN說明打開成功,那麼我們的客戶端(無Forge版本)就可以連接上了。

   客戶端連接上後,我們可以隨時切換到“mc”會話中查看伺服器的消息:

  按下Ctrl+A再按下Ctrl+N回到“mc”會話。

 

  四、CentOS下的Minecraft Forge版本伺服器

 

  這裡跟Windows下搭建的方法類似。

  上傳libraries.zip文件。選中並將libraries.zip拖入我們的伺服器文件夾mc_server中:

 

 

   或者直接把我剛纔分享的網站的libraries.zip地址複製下來:

 

  然後輸入“wget 網址”回車即可,記得版本號要一致。我的下載命令是:

wget http://ys-o.ys168.com/557791622/i4N157N4H6JP2HSMTLs5/libraries.zip

 

  同樣要把forge的伺服器文件也複製進來:

 

  如果上傳速度為0,那麼我們需要關閉後臺的“mc”的screen會話:

screen -S mc -X quit

   查看所有screen會話:

screen -ls

 

  可見已經沒有後臺screen會話了,我們繼續上傳文件,此時上傳速度正常。

 

  上傳完成後,安裝unzip解壓命令:

yum -y install unzip

   解壓libraries.zip文件:

unzip libraries.zip

   現在我們的伺服器目錄下的文件應該是這樣的:

 

  更改start.sh的內容,將啟動minecraft_server.1.11.2.jar改為forge-1.11.2-13.20.1.2588-universal.jar

find -name 'start.sh' | xargs perl -pi -e 's|minecraft_server.1.11.2|forge-1.11.2-13.20.1.2588-universal|g'

   新建“mc”會話:

screen -S mc

   在此會話下啟動伺服器(Forge版本):

./start.sh

   

 

   客戶端也要換為對應的Forge版本才能登陸。

   我們可以嘗試在mods文件夾中添加我們喜歡的mods。比如顯示血量的Neat(下載地址:http://mods2.minecraftyard.com/1.11.2/Neat%201.4-13.jar ,其他版本的伺服器請註意版本號),小地圖JourneyMap(下載地址:http://ys-f.ys168.com/557791613/TKUJw4u4M1J6W44I6P3J/journeymap-1.11.2-5.4.7.jar,同樣註意版本號),礦物位置透視xRay(下載地址:http://mods2.minecraftyard.com/1.12.2/xray-1.11.2-1.3.3.jar)。

  我列舉的這三個mods只需要客戶端./minecraft/mods目錄下添加即可,並不需要在伺服器添加。

 

   游戲內效果:

  為了截圖把自己害死了,切換到伺服器端,把自己改為管理員:(dagger是我進入游戲取的名字)

op dagger

 

  回到客戶端發現自己已經是管理員了,那麼可以用“/gamemode 1”命令進入創造模式,這樣就不會受到蜘蛛傷害了:)

 

  mods的使用方法大家就自行搜索吧,這裡就不深入討論了,反正我們的伺服器已經搭建好了,可以呼叫小伙伴一起開黑了。記得把版本號跟他們說一下呀,不然會有大麻煩的。

 

  參考文獻:

  1.《Minecraft個人私服搭建指南(3):服務端配置運行》,https://www.jianshu.com/p/ca27a32f7826

  2.《在本地運行官方服務端以及服務端forge教程》,https://www.mcbbs.net/thread-829318-1-1.html

  3.《伺服器核心合集 建好的服務端》,https://www.mcbbs.net/thread-661632-1-1.html

 


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 第一分鐘:委托 有些教材,博客說到委托都會提到事件,雖然事件是委托的一個實例,但是為了理解起來更簡單,今天只談委托不談事件。先上一段代碼: 下邊的代碼,完成了一個委托應用的演示。一個委托分三個步驟: step01:首先用delegate定義一個委托 。 step02:聲明一個方法來對應委托。 ste ...
  • 我們已經講了人臉識別(入門+進階)、圖片識別(入門)。下麵是鏈接: C# 10分鐘完成百度人臉識別——入門篇 C# 30分鐘完成百度人臉識別——進階篇(文末附源碼) C# 10分鐘完成百度圖片提取文字(文字識別)——入門篇 今天我們來盤一盤語音識別與合成。 PS:僅供瞭解參考,如需進一步瞭解請繼續研 ...
  • C# Hello World實例 一個C#程式註意包括以下部分: 命名空間聲明(Namespace declaration) 一個class Class方法 Class屬性 一個Main方法 語句(Statements) & 表達式(Expressions) 註釋 讓我們看看一個可以列印出 "Hel ...
  • 最近項目有用到騰訊雲的身份識別介面,話不多說,直接上代碼: 開始的時候,使用了HTTP的POST這種請求方式進行調用,但後面發現這種請求方式有Bug,一旦用戶上傳的圖片尺寸太大(跟圖片大小沒關係,主要是尺寸),請求騰訊的API就會返回下麵這個錯誤(PS:因為我這邊使用的是OCR身份證識別API,如果 ...
  • 經過WTM團隊和LayUI團隊多次深入協商,雙方於2019年7月29日在北京中國國際展覽中心正式達成戰略合作意向, 雙方簽署了戰略合作框架協議,LayUI團隊承諾使用WTM框架的任何項目都可以免費使用其收費版的後臺模板,WTM團隊則從受捐助款項里拿出固定比例作為回饋。 簽署儀式在歡快祥和的氣氛中圓滿 ...
  • 由於C#是,Net框架的一部分,且用於編寫.Net應用程式,所以我們需先瞭解下C#與.Net框架之間的關係。 .Net框架(.Net Framework) .Net框架是一個創新的平臺,能幫你編寫出下麵類型的應用程式: Windows應用程式 Web應用程式 Web服務 .Net框架應用程式是多平臺 ...
  • 1. .Net Core的序列化方式 1.1 json.Net 常用的工具包,如Newtonsoft.Json, 它是基於json格式的序列化和反序列化的組件 json.net 有以下優點: 侵入性:可以不添加attribute,就能進行序列化操作 靈活性:可以靈活性配置,比如允許被序列化的成員自定 ...
  • 此方法針對的是在沒有顯示器(這裡說的顯示器為可以接受HDMI信號的顯示器,故不包括一般的筆記本顯示器)情況下如何設置樹莓派和網路連接 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...