本章目的
可以多人一齊玩minecraft,自己搭建minecraft server也避免了各種的限制,如果把minecraft server端放在自己的VPS伺服器上,更可以24小時運行,隨時進出。 我是在Linux上搭建我的minecraft server,因為佔用的資料更少。
下載頁
-
開心版 截至2020-04-06版本為v4400,啟動器內可選擇任意minecraft版本,Windows/MacOS/Linux可用
-
minecraft_server.1.15.2.jar 截至2020-04-06最新minecraft版本為1.15.2
wget https://launcher.mojang.com/v1/objects/bb2b6b1aefcd70dfd1892149ac3a215f6c636b07/server.jar
(terminal下建議使用wget下載)
Client
先下載Client端,就可以先一人遊玩
正版(請支持正版)
開心版(也就是破解版)
來源: https://teamshiginima.com/update/
可用系統: Windows / MacOS / Linux
Java
如果無法運行遊戲,請記得下載Java
Java官網 : https://www.java.com/zh_TW/
踩坑的經驗分享:
我在Windows 10上安裝java時等了超長的一段時候都無法成功安裝(顯示100小時以上),估計是因為國內網路關係,最終解決方法是去Java官網找Offline installer,俗稱的脫機版來安裝。
Java官網的Offline版(目前只有英文頁文才有) : https://java.com/en/download/manual.jsp
Server
官網下載網址: https://www.minecraft.net/en-us/download/server/
1. 下載server端minecraft
wget https://launcher.mojang.com/v1/objects/bb2b6b1aefcd70dfd1892149ac3a215f6c636b07/server.jar
2. 在該檔案目錄下首次執行:
java -Xms800M -Xmx1024M -jar minecraft_server.1.15.2.jar nogui
-Xms800M記憶體初始佔用
-Xmx1024M記憶體最大佔用
這時候會出現了EULA協議同意的錯誤是正常的。
除此之外,還產生了EULA.txt , server.propertices , log目錄
3. 設定
A.同意EULA協議
編譯EULA.txt
eula=false
改成
eula=true
B.伺服器開放開心版玩家
如果您想讓使用盜版Minecraft的朋友能加入到伺服器的話,您可以在server.propertices 中將online-mode:true改為online-mode:false
編譯server.propertices
online-mode:true
改成
online-mode:false
C.設置管理員
在ops.txt內加入要作為admin的玩家名稱,該名稱的玩家在可以使用管理員指令
新增和編譯ops.txt
echo "minecraft_user_name" >> ops.txt
D.其他
檔名 | 功能 |
---|---|
banned-ips.txt | 你封鎖進入ip地址清單 |
banned-players.txt | 你封鎖進入的玩家ID清單 |
ops.txt | 伺服器管理員清單 |
server.properties | 伺服器中的設定 |
white-list.txt | 伺服器的白名單(即限制特定玩家進入) |
其實大部分的配置都在server.propertices。
譬如想如果想更換地圖,修改server.propertices
裡level-name=world就可以(world換成你地圖的名字)
更詳細的server.propertices內容
#此檔案創建時間
spawn-protection=16 //重生點保護(2x+1)格,OP 無視
max-tick-time=60000 //如果伺服器處理一個tick太久,判斷是崩潰,強制停止(單位毫秒),-1 停用
query.port=25565 //遠端控制的 port
generator-settings= //設定地圖生成條件(開特殊超平坦世界打的那一串)
force-gamemode=false //登入時要不要改遊戲模式
allow-nether=true //是否啟用地獄
enforce-whitelist=false //是否啟動白名單
gamemode=survival //預設遊戲模式
broadcast-console-to-ops=true //不明
enable-query=false //是否啟用遠端控制
player-idle-timeout=0 //掛機多少會被踢
difficulty=easy //難度(peaceful/easy/normal/hard)
spawn-monsters=true //是否生怪
broadcast-rcon-to-ops=true //不明
op-permission-level=4 //OP限權 決定可以用的指令
pvp=true //預設是否開啟同隊(無隊)玩家傷害
snooper-enabled=true //伺服器是否傳送除錯資訊給 Mojang
level-type=default //地圖型態 就是在創建世界時看到的(FLAT/LEGACY/DEFAULT)
hardcore=false //困難模式,不能復活,死後加入會直接被踢
enable-command-block=false //是否啟用指令方塊,玩地圖要開
max-players=20 //玩家數量上限
network-compression-threshold=256 //多少bytes的封包會被壓縮(-1關閉,0壓縮所有)
resource-pack-sha1= //材質包會加密
max-world-size=29999984 //邊境大小
rcon.port=25575 //遠端控制的port
server-port=25565 //伺服器用的port 同主機重複會自動關閉
server-ip= //伺服器ip 兩張網路卡/網路要改
spawn-npcs=true //是否生成村民
allow-flight=false //飛行會不會被踢,玩mod要改,跳上床有機率變成飛行被踢
level-name=world //主世界是哪個資料夾
view-distance=10 //預設視野距離
resource-pack= //強制使用的資源包
spawn-animals=true //是否生成動物
white-list=false //白名單是否開啟
rcon.password= //遠端控制用的密碼
generate-structures=true //是否生成結構
online-mode=true //是否與Mojang連線檢查玩家是否為正版,關了沒skin
max-build-height=256 //建築高度限制
level-seed= //種子碼
prevent-proxy-connections=false //無作用
use-native-transport=true //給 Linux 系統的優化,不用改
motd=A Minecraft Server //伺服器的名稱
enable-rcon=false //是否啟動遠端控制
4. 啟動minecraft伺服器
java -Xms800M -Xmx1024M -jar minecraft_server.1.15.2.jar nogui
等了大概3~5分鐘 看到這出現這樣表示server正常運作
[14:33:16] [Server-Worker-1/INFO]: Preparing spawn area: 91%
[14:33:16] [Server-Worker-1/INFO]: Preparing spawn area: 92%
[14:33:17] [Server-Worker-1/INFO]: Preparing spawn area: 94%
[14:33:18] [Server-Worker-1/INFO]: Preparing spawn area: 95%
[14:33:18] [Server-Worker-1/INFO]: Preparing spawn area: 96%
[14:33:19] [Server-Worker-1/INFO]: Preparing spawn area: 98%
[14:33:19] [Server thread/INFO]: Time elapsed: 57301 ms
[14:33:19] [Server thread/INFO]: Done (128.443s)! For help, type "help"
5. 服務常駐
因為開啟了minecraft會一直佔用當前的session,Ctrl+C就會關閉minecraft伺服器,想讓minectaft伺服器常期開著有很多方法:
A. 譬如官方的做一個啓動腳本
B. 我的方法就懶惰一些,什麼都不做,就放在tmux去運行
- 下載tmux
apt install tmux
- 開啟tmux
tmux
- 在tmux上運行minectaft
java -Xms800M -Xmx1024M -jar minecraft_server.1.15.2.jar nogui
-
關掉ssh視窗
由於是跑在tmux,所以斷掉ssh連線並不會影響正在tmux上執行的session
- 開啟ssh新視窗並回到tmux
tmux attach
6.連線
連線方式很簡單,就是選擇多人遊戲,然後輸入你server目前的Public IP
如何查Pulibc IP?在server端上:
curl ifconfig.me
7.關於連線失敗
其實我沒有遇到這部分的問題,不過也記錄一下好讓自己有個大致方向
A. 防火牆問題
開啟指定port (minecraft預設使用25565 port)
firewall-cmd --zone=public --add-port=25565/tcp --permanent
iptables -I INPUT -p tcp --dport 25565 --syn -j ACCEPT
(方法未經確認,主要是看你的伺服器用什麼作為防火牆,上面是linux用iptables的方式)
其實主要的關鍵就是把25565 port打開就是了
B. 設定問題
檢查server.properties,主要檢查下面2個地方
server-ip=server-ip= #我這行是空的也沒問題
server-port=25565