--- lang: zh-TW --- # Minecraft 伺服器架設全攻略 [TOC] --- :::info 本教學涵蓋以下主要內容,請根據上方目錄尋找需要的段落,或從頭一步步來。 其中的所有文句都有其存在的意義,不妨一字一句地把它看完吧,不然會...「誒 這個剛剛有說過嗎?」 我是一名接觸Minecraft多年的玩家,也曾是帶領眾多玩家一起遊玩的伺服主。模組、插件、Bungeecord、Geyser 等眾多工具皆有接觸。我想透過集合這些經驗,讓想了解伺服器的玩家,或是已經是大佬級的人物一起讓開伺服器變得不那麼困難。 ::: --- # 簡介 Minecraft 是一款買斷制付費遊戲,玩家不僅可以選擇預設的「最新版本」來啟動遊戲,還可以透過「安裝檔」選擇想要的遊戲版本,或是調整GC參數,更多細節會在之後說明。 除了單人遊戲外,最吸引人的便是他**多人遊戲**的內容,與其他大型遊戲不同,伺服器均是由玩家們自行建立並運行的,玩家可以自行選擇伺服器的「核心」、「版本」、「模組」,更甚至是自定義遊戲規則。整個過程完全不需要額外收費,若你沒有買Minecraft,仍然可以架設屬於自己的伺服器。 伺服器開啟後,便可以邀請朋友們進來一起玩,但是要怎麼加入呢?對於硬體上的設定也是勸退了不少準伺服主,如何只用如「`play.hypixel.net`」這個的IP位址就加入伺服器呢?如何設定數據機的端口導向?多層NAT網路,如何對路由器做多步重定向?DDNS、DNS該如何設定? \ 此攻略將分為以下部分說明 1. 硬體上的準備 2. 軟體上的準備 3. 伺服器連線的方式、方法 4. 伺服器架設步驟 # 硬體需要準備什麼 以[最低標準](https://arc.net/l/quote/lvktfozf)(1~3人)來說,你只需要一台電腦(或租用VPS),一個可靠的網路環境(6Mbp/s 以上),便可以開啟伺服器了。 --- # 軟體需要準備什麼 * 合適版本的 Java (JRE/JDK) * 伺服器啟動核心 - 地圖檔案(可選) - 模組(可選) - 插件(可選) ## 版本所需Java 以下為各MC版本所需之Java版本(JRE或JDK皆可)。 \[[資料來源](https://www.reddit.com/r/feedthebeast/comments/138sarj/what_version_of_java_to_use_for_a_forge_1192/)\] | Minecraft | 1.13 | 1.14 | 1.15 | 1.16 | 1.17 | 1.18 | 1.19 | 1.20 | |:---------:|:----:|:----:|:----:|:----:|:----:|:----:|:----:|:----:| | **Java** | 15 | 15 | 15 | 15 | 17 | 17 | 17 | 17 | ## 核心種類 為自己的伺服器選擇一個合適的核心,直接影響到伺服器的效能與第三方插件或模組的支援性,以下是一些常見的啟動核心。 ### [Vanilla](https://mcversions.net/) Minecraft官方提供的伺服器,絕大部分玩家可以選擇此核心。在巴哈姆特下載的地圖也可以透過這個核心開伺服器。 此核心保有最純粹的原版體驗,包含需多「特性」。 :::info 穩定性:中高 版本支援:全 插件支援:X 模組支援:X ::: ### [Spigot](https://getbukkit.org/download/spigot) 目前主流的插件伺服器核心,可用插件總數最多。原版的許多「特性」在此核心上被保留。 :::info 穩定性:中 版本支援:1.4.6 - latest 插件支援:O 模組支援:X ::: ### [Paper](https://papermc.io/downloads/all) Spigot的替代品,修復並提升了需多漏洞與性能,建議以Paper取代Spigot作為核心。 :::info 穩定性:高 版本支援:1.8.8 - latest 插件支援:O 模組支援:X ::: ### [Pufferfish(+)](https://pufferfish.host/downloads) Pufferfish是Paper的分支之一,提昇了效能。 Pufferfish+使用了全非同步架構,效能約提升30%。 :::info 穩定性:高 版本支援: Pufferfish: 1.17.1 - latest Pufferfish+: 1.18.2 - latest 插件支援:O 模組支援:X ::: ### [Purpur](https://purpurmc.org/downloads) Purpur是Pufferfish的分支之一,在他優點之下新增了許多有趣的設定(預設關),例如可以飛行魷魚、可騎乘生物等... :::info 穩定性:中 版本支援:1.16.5 - latest 插件支援:O 模組支援:X ::: ### [Sponge](https://spongepowered.org/) 獨立API與Forge兼容,可與可支援的插件並用 :::info 穩定性:中 版本支援:1.8 - latest 插件支援:O 模組支援:O ::: ### [BungeeCord](https://www.spigotmc.org/wiki/bungeecord/) [bridge work with Spigot] 可整合與連接不同伺服器,達到分流效果。主要應用在Spigot伺服器。 :::info 穩定性:高 版本支援:ALL 插件支援:O 模組支援:X ::: ### [Velocity](https://papermc.io/software/velocity) [bridge work with Paper] 可整合與連接不同伺服器,達到分流效果。主要應用在Paper伺服器。 :::info 穩定性:高 版本支援:ALL 插件支援:O 模組支援:X ::: ### [Forge](https://files.minecraftforge.net/net/minecraftforge/forge/) 主流模組啟動器、伺服器。 :::info 穩定性:高 版本支援:1.1 - latest 插件支援:X 模組支援:O ::: ### [Fabric](https://fabricmc.net/use/installer/) 還在發展並趨於成熟的Forge替代品,在高版本中流行使用。 :::info 穩定性:高 版本支援:1.14 - latest 插件支援:X 模組支援:O ::: --- # 伺服器連線 這個部分是相較下最困難的地方,客戶端要如何才能夠訪問到伺服器呢?反向代理、直連IP、DDNS動態域名又是什麼呢? 以下提供多種不同方法實踐,並且會附上其建議與優缺點。可透過DNS補足某些方法的缺點。 ## 方法1: [ngrok](https://ngrok.com/) 知名的FRP反向代理平台,人數少時可作為代理使用。可配合CNAME與SRV紀錄綁定在域名上,做到固定IP。 :::info 優點:快速、便捷、延遲相對低、安全性高 缺點:流量限制低,不適用高負載、每次重新啟動端口不固定、僅英文介面對部分人不友好、無圖形化介面 ::: ## 方法2: [ZeroTier](https://www.zerotier.com/) 用過都說讚。詳細使用說明,網路上已有大量文章可供參考。 :::info 優點:開源、快速、延遲相對低、系統支援廣泛 缺點:客戶端需安裝額外應用程式、僅英文介面對部分人不友好、25人數限制 ::: ## 方法3: [Radmin VPN](https://www.radmin-vpn.com/) 貌似是朋友間主流的選擇,學習成本較低,但連線很麻煩...。詳細使用說明,網路上已有大量文章可供參考。 :::info 優點:快速、延遲相對低,有中文介面 缺點:客戶端需安裝額外應用程式、僅支援Windows用戶、150人數限制 ::: ## ~~方法4: [LogMeIn Hamachi](https://vpn.net/)~~ 若只有Windows用戶,請改用Radmin,否則請改用ZeroTier。 :::info 優點:快速、延遲低、有中文介面 缺點:客戶端需安裝額外應用程式、5人數限制、穩定性疑慮 ::: ## 方法5: 直連 對客戶端最友善的連線方式,浮動IP可搭配[No-IP](https://www.noip.com/)的DDNS服務一起服用。詳細使用說明如下。 :::info 優點:一勞永逸(一般來說)、延遲極低 缺點:設定較難 ::: --- # 架設原版伺服器 此範例以 1.20.4 版本為主 1. 到這個[網站](https://mcversions.net/)找到欲安裝的版本核心,下載`server.jar`檔案  2. 根據上表「版本所需Java」可知,需要安裝Java 17。確定版本並選擇好作業系統後,可以到[此網站](https://www.oracle.com/tw/java/technologies/downloads/#jdk17-windows)下載並安裝Windows版本Java 17  3. 建立一個新空資料夾,並將`server.jar`伺服器核心放入  4. 再建立一個文字文件名為`start.txt`  5. 請先讀完敘述後再動作!先根據以下說明調整後,將調整後的文字輸入進`start.txt`中。將副檔名改為`bat`批次檔案 ```! REM GC來源與詳細說明 https://aikar.co/2018/07/02/tuning-the-jvm-g1gc-garbage-collector-flags-for-minecraft/ java -Xms?G -Xmx?G -XX:+UseG1GC -XX:+ParallelRefProcEnabled -XX:MaxGCPauseMillis=200 -XX:+UnlockExperimentalVMOptions -XX:+DisableExplicitGC -XX:G1HeapRegionSize=8M -XX:G1ReservePercent=20 -XX:G1HeapWastePercent=5 -XX:G1MixedGCCountTarget=4 -XX:InitiatingHeapOccupancyPercent=15 -XX:G1MixedGCLiveThresholdPercent=35 -XX:+PerfDisableSharedMem -XX:MaxTenuringThreshold=1 -Dusing.aikars.flags=https://mcflags.emc.gs -Daikars.new.flags=true -Djansi.passthrough=true -jar server.jar --nogui ``` :::warning 1. 將 `-Xms?G` 與 `-Xmx?G` 更改為欲分配的記憶體大小(實際上會略大於),兩者數字填一樣。單位可用`G`或`M` 2. 若設定之記憶體大於12G,請調整以下參數 ``` -XX:G1NewSizePercent=40 -XX:G1MaxNewSizePercent=50 -XX:G1HeapRegionSize=16M -XX:G1ReservePercent=15 -XX:InitiatingHeapOccupancyPercent=20 ``` 3. 若無法執行,可能是環境變數有問題,可指定`java`為需求之版本。例如:`"C:\Program Files\Java\jdk-17.0.2\bin\java" -Xms....` :::  6. 建立一個`eula.txt`檔案,並在內部輸入文字`eula=true`並存檔  7. 執行`start.bat`即可開啟伺服器,本機可以透過輸入IP位址 `0` 來登入。多人連線問題請參考「伺服器連線」  --- # 架設模組伺服器 此範例以 1.18.2 - 40.2.0 版本為主 1. 到這個[網站](https://files.minecraftforge.net/net/minecraftforge/forge/)找到欲安裝的版本核心,下載`server.jar`檔案  2. 建立一個新空資料夾,並將`forge-1.18.2-40.2.0-installer.jar`安裝器放入  3. 執行安裝器檔案,並選擇`Install server`,資料夾選擇當前資料夾,並開始安裝(他紅色的不要理他)   4. 可透過`user_jvm_args.txt`設定伺服器記憶體  5. 建立一個`eula.txt`檔案,並在內部輸入文字`eula=true`並存檔  6. 執行`run.bat`即可開啟伺服器,本機可以透過輸入IP位址 `0` 來登入。多人連線問題請參考「伺服器連線」  :::info 較新的版本不需要自行建立`start.bat`,若使用較舊的forge可參考「架設原版伺服器 4.」步驟完成設定 可在`run.sh`或`run.bat`後加上`--nogui`即可不啟動白色GUI視窗  ::: 7. 將模組放進`mods`資料夾裡,並重新啟動伺服器即可完成。 --- # 架設插件伺服器 TODO: ... # 關於客戶端 :::warning 由於新舊版本的設定檔無法相互兼容,客戶端強烈建議使用第三方的啟動器,將各個版本的設定檔案隔開,在後續安裝模組也可以更加便利。 會造成的影響 * 按鍵設定重置 (完整/部分) * 模組資料彼此污染 ::: --- > [name=XinShou] --- ###### tags: `Tutor` `Minecraft` <style> .markdown-body p { font-size: 18px; } </style>
×
Sign in
Email
Password
Forgot password
or
Sign in via Google
Sign in via Facebook
Sign in via X(Twitter)
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
Continue with a different method
New to HackMD?
Sign up
By signing in, you agree to our
terms of service
.