發表文章

[教學] 從無到有建立屬於自己的 Minecraft 伺服器:2-1 如何讓別人連進你的伺服器 - 區域網路篇

圖片
  前言 架好伺服器以後,接下來就是怎麼讓玩家連進來了。 本文適用以下狀況: 你和你的伺服器處在同一個區域網路內,且伺服器不在IPv4 NAT底下 若不滿足上述條件請參照後面幾篇 本文預設: 你熟悉對應系統的基本操作 你對網路的概念有基本的理解 你已經做好防火牆的設定 你很清楚你自己在幹嘛 本文以IPv4為主,因為筆者的網路設備不支援IPv6,且目前來說一般狀況下也用不到。 開放伺服器有一定風險,請做好相應的防護措施,造成損失本人不負任何責任 什麼是IPv4?什麼是區域網路、NAT?為什麼區域網路外面的人沒辦法連線? IPv4(Internet Protocol version 4, 網際網路通訊協定第四版 )是現今網路傳輸主要使用的通訊協定,IPv4位置即為一般俗稱的IP位置。 區域網路(Local Area Network,LAN)是指住家、公司、學校等單位內有限區域的電腦連接成的網路。 NAT(Network Address Translation, 網路位置轉換 ),可以讓多個IPv4終端共用一個IPv4位置,但由於從區域網路外面只看得到NAT,所以沒有經過特別設定之前是沒辦法直接連線NAT底下的終端的,這部分之後會講。 我要怎麼知道我是不是在區域網路裡面? 最簡單的方法是問管理你所在的地方的網路的人(草 如果這個方法不可行的話通常會透過IP位置來判斷: 如何知道自己的IP位置 Windows: 工作管理員 ipconfig 打開cmd(win+r,輸入cmd,按下enter) 輸入ipconfig,按下enter 找到你的網路卡後面顯示的IPv4位置 Linux: 使用ip addr指令 使用ifconfig指令 如何判斷IP位置是不是在區域網路內 只要是以下IP位置範圍內就是內網IP: 192.168.0.0 ~ 192.168.255.255 172.16.0.0 ~ 172.31.255.255 10.0.0.0 ~ 10.255.255.255 如何判斷兩台機器在同一個區域網路內 看網路線怎麼走 看Wifi是不是連到同一個 如果兩邊都是Windows並且有開啟探索功能的話看看能不能看到 亂猜吧 如何連線到區域網路的伺服器 打開遊戲 進入多人遊戲的選單 新增伺服器/直接連線 於伺服器位置輸入伺服器主機的IP位置 連線 總結 這篇好像有講跟沒講一樣(逃

[教學] 從無到有建立屬於自己的 Minecraft 伺服器:1-2-5 伺服器檔案結構、啟動、關閉伺服器

圖片
前言 設定好伺服器就可以準備啟動了 本文將會帶大家認識怎麼啟動、關閉伺服器以及伺服器的檔案結構 啟動伺服器 執行前面撰寫的啟動腳本 Windows:執行「start.bat」 Linux:在伺服器的路徑執行以下指令: ./start.sh 關閉伺服器 於伺服器後台輸入以下指令: /stop 伺服器檔案結構 各個檔案、資料夾由上到下分別是: banned-ips.json:紀錄遭到封禁的IP及相關資訊 banned-players.json:紀錄遭到封禁的玩家及相關資訊 eula.txt:終端使用者協議同意書 logs:存放記錄檔的資料夾 ops.json:紀錄伺服器操作者及相關資訊 server.jar:伺服器本體 server.properties:伺服器設定檔 start.sh:啟動腳本 usercache.json:玩家資訊快取檔 world:地圖檔 總結 介紹完伺服器本身以後,接下來就是怎麼讓別人連進來了。 有任何問題歡迎在下面留言,想繼續看的話可以按追蹤。

[教學] 從無到有建立屬於自己的 Minecraft 伺服器:1-2-4 設定檔 - Minecraft: Java Edition (server.properties)

圖片
  前言 這篇文章會帶大家大概認識一下伺服器的設定檔:server.properties 本文只是簡單介紹這份文件,詳細的部分請參閱Minecraft Wiki 因為只是介紹這份文件,所以平台並不會造成差別。 本文將使用1.16.5官方伺服器的設定檔進行解說 不同版本的設定檔可能不同,詳情請參閱Minecraft Wiki 本文解說所使用的設定檔: #Minecraft server properties - Pastebin.com 如果你還沒完成伺服器的安裝,請參閱: Windows 、 Linux 伺服器常用選項 spawn protection=<半徑> 以重生點為中心,保護的半徑內無法放置、破壞方塊 設定為0會關閉重生點保護 保護的區域是一個正方形 gamemode=<遊戲模式> 設定伺服器上的預設遊戲模式 可以是數字或文字:survival(0) - 生存、creative(1) - 創造、adventure(2) - 冒險、spectator(3) - 旁觀 difficulty=<難度> 設定伺服器的難度 可以是數字或文字:peaceful(0) - 和平、easy(1) - 簡單、normal(2) - 普通、hard(3) - 困難 pvp=<布林值> 是否啟用pvp (遊戲內能不能打人) hardcore=<布林值> 是否啟用極限模式 啟用後難度將強制設定為困難,如果死亡玩家將會被改成觀察者模式(1.8以後)或者封禁(1.8以前) enable-command-block=<布林值> 是否啟用指令方塊 max-players=<人數上限> 最大允許同時上線的人數 server-port=<通訊埠> 伺服器使用的通訊埠 allow-flight=<布林值> 是否允許模組、插件、外掛等的飛行 如果不允許,非正常懸空6秒以上將會被踢出伺服器 view-distance=<距離> 視野距離,單位為區塊 可用的設定值範圍為2~32 數字越大可以看得越遠,但對伺服器的負擔也會比較沉重 white-list=<布林值> 是否啟用白名單模式 啟用後不在白名單上的玩家無法加入伺服器 online-mode=<布林值> 是

[教學] 從無到有建立屬於自己的 Minecraft 伺服器:1-2-3 伺服器軟體初次設定 - Linux平台 + 原版(官方)伺服器

圖片
前言 接下來是Linux平台如何進行初次設定 本教學預設: 你已經完成對應的前置作業:Java環境安裝完畢並且已經下載到了伺服器軟體 Linux平台環境安裝 原版(官方)伺服器軟體下載 你熟悉對應平台的基本操作 你已經把伺服器主程式 server.jar放置在你想要存放伺服器檔案的位置並且位於你放置伺服器檔案的路徑。 請注意完整路徑如果包含非ASCII字元則可能導致伺服器無法啟動等問題。有關ASCII的相關資訊請參閱  ASCII - 維基百科,自由的百科全書 (wikipedia.org) 你神智清醒,清楚自己在做什麼 你已經安裝screen或類似的套件 本教學使用Ubuntu 20.04.2 Server搭配nano文字編輯器、Windows 10上的Termius SSH用戶端示範,不同發行版、文字編輯器、SSH用戶端操作基本一樣請放心照搬。 撰寫啟動腳本 建立新的腳本並使用文字編輯器開啟: nano start.sh 輸入啟動指令(如圖)並儲存。圖中兩行指令差別只在於Java安裝的途徑,撰寫腳本時擇一即可。詳情請參閱 Linux平台環境安裝 。                    各指令、參數代表的意義如下 screen:呼叫screen套件 -S <工作階段名稱>:指定screen工作階段的名稱 -dm <指令>:指定要在screen工作階段內執行的指令 java:通知系統呼叫Java Runtime /opt/jre1.8.0_291/bin/java:從指定的路徑呼叫Java Runtime執行檔 -Xmx<大小><單位G/M>:分配Java Runtime執行此程式時最大允許的記憶體容量,過大、過小都有可能造成問題。 -Xms<大小><單位G/M>:分配Java Runtime執行此程式時的初始記憶體容量,不大於前項設定的分配上限。 -jar server.jar:告訴Java Runtime你要執行的Java執行檔               Linux平台預設編碼通常為UTF-8,故無亂碼的問題,不須特別指定         3 . 更改腳本權限允許執行: sudo chmod 755 start.sh 初次執行、同意終端使用者協議 執行前述的的腳本: ./start.sh

[教學] 從無到有建立屬於自己的 Minecraft 伺服器:1-2-2 伺服器軟體初次設定 - Windows平台 + 原版(官方)伺服器

圖片
  前言 對我知道前一篇(1-2-1)是廢文 取得伺服器軟體以後接下來就是怎麼設定了 本教學預設: 你已經完成對應的前置作業:Java環境安裝完畢並且已經下載到了伺服器軟體 Windows平台環境安裝 原版(官方)伺服器軟體下載 你熟悉對應平台的基本操作 你已經把伺服器主程式 server.jar放置在你想要存放伺服器檔案的位置。 請注意完整路徑如果包含非ASCII字元則可能導致伺服器無法啟動等問題。有關ASCII的相關資訊請參閱  ASCII - 維基百科,自由的百科全書 (wikipedia.org) 你神智清醒,清楚自己在做什麼 你已經在檔案總管的設定裡面強制顯示副檔名 本教學使用Windows 8.1示範,不同版本操作基本一樣請放心照搬。 本教學使用Notepad++文字編輯器,如果你想要使用記事本也可以,但 請不要使用Word等針對文件的軟體,以避免造成問題。 撰寫啟動批次檔 在伺服器的目錄下新增文字文件,重新命名為你喜歡的名稱 .bat (windows批次檔)。這邊使用start.bat 右鍵編輯前面的bat檔, 不要直接點兩下。 兩個選項擇一即可。 在bat檔中輸入啟動的指令並儲存  各參數、指令等的意義如下: java:通知系統,呼叫Java Runtime -Xmx<大小><單位G/M>:分配Java Runtime執行此程式時最大允許的記憶體容量,過大、過小都有可能造成問題。 -Xms<大小><單位G/M>:分配Java Runtime執行此程式時的初始記憶體容量,不大於前項設定的分配上限。 -Dfile.encoding=UTF8:強制Minecraft使用UTF-8編碼對檔案進行編碼。Windows預設可能會以Big5(台灣)、GBK(大陸)等不相容UTF-8的編碼格式對檔案進行編碼。由於實際寫入的資料為UTF-8編碼的,使用文字編輯器開啟時可能會看到亂碼。以下兩張圖,第一張為使用UTF-8格式解碼的結果,第二張為使用Big5格式解碼的結果。 -jar server.jar:告訴Java Runtime你要執行的Java執行檔 PAUSE:暫停,等待使用者確認後再繼續執行後續動作 初次執行、同意終端使用者協議 開啟/執行前面創建的啟動批次檔。(直接點兩下就好了) 可能會看到如下圖的錯誤訊息,安

[教學] 從無到有建立屬於自己的 Minecraft 伺服器:1-2-1 取得伺服器軟體 - 原版(官方)伺服器

圖片
(圖片擷取自網路) 前言 環境設定好以後,就可以建立伺服器了。 建立伺服器之前我們會需要取得伺服器軟體。 在這篇文中我們會教大家如何下載原版的伺服器軟體。 本文預設: 你已經安裝Minecraft Launcher 你熟悉Minecraft Launcher相關操作 你的電腦上有瀏覽器 本文操作內容非常安全,歡迎嘗試酒後、神智不清等狀況下進行操作, If you can 本文使用Windows 8.1搭配Edge瀏覽器示範,其他平台的操作基本上一樣,請放心照搬。 實際操作 打開Minecraft Launcher,選擇安裝檔。 選擇「新安裝檔」。如果對現有的安裝檔進行編輯也可以。 選擇你喜歡的版本 選擇「下載伺服器」 部分瀏覽器可能會將JAR檔(java執行檔)視為有安全疑慮的檔案,如果遇到的話請保留 部分瀏覽器可能會把jar檔當做zip下載(就是在說你IE),下載後重新命名為jar檔即可 總結 之後還會有後續的操作,想繼續看的話可以按一下旁邊的追蹤按鈕 還敢湊阿

[教學] 從無到有建立屬於自己的 Minecraft 伺服器:1-1-2 環境設定 - Linux平台 + Java Edition 1.16以前版本原版(官方)伺服器

圖片
前言 前一篇文章裡面我們學到了如何設定Windows底下的Java環境。這篇文中我們會學到怎麼在Linux上做一樣的事。 1.17以上版本開始要求Java 16或更新版本,故不適用本教學的內容。Minecraft:Bedrock Edition不是使用Java編寫,故不須安裝Java環境 本教學預設: 你熟悉Linux平台的基本操作 你已經安裝作業系統並取得和 Linux 主機的SSH/Telnet等連線 或 你使用遠端桌面軟體/直接連接螢幕鍵盤滑鼠在主機上進行相關操作 你擁有系統的Root權限 你知道你自己在幹嘛 你對於使用指令介面進行操作沒有任何問題 本教學使用 Ubuntu Server 20.04 LTS以及 Termius SSH 用戶端從Windows 10以 SSH 遠端操作的方式進行示範, 其他Linux發行版本、SSH用戶端、作業系統的操作可能會有所不同 ,請自行尋求Google大神的幫助, 胡亂操作導致的任何傷害本人不負任何責任。 實際操作說明 如果先前曾經安裝過其他OpenJDK版本則可能導致問題。原版伺服器可以於Java 11環境底下正常運作,但Forge等模組伺服器則可能出現問題。 使用OpenJDK 8提供的Java 8 Runtime 更新套件索引: sudo apt-get update 安裝openjdk的java 8 runtime: sudo apt-get install openjdk-8-jre 確認Java版本是否正確。輸出openjdk version "1.8.0_(版本號)"代表正確安裝: java -version 若以上指令輸出並非正確版本,請遵照後面的指示。Ubuntu 20.04底下安裝Java 11容易造成Java 8無法正確安裝 (就算解除安裝Java 11也一樣),安裝java8以後仍然為Java 11的現象。(如下圖) 使用Oracle JDK提供的Java 8 Runtime 若使用 Oracle JDK 提供的 Java Runtime 不能用於商業用途,除非購買商業授權。如果你想要忽略警告的話可能面臨來自 Oracle 的法律訴訟。 如果你先前曾經安裝過Java 11等其他版本導致前面的操作無法正常安裝Java 8,請遵照以下的操作使用Oracle提供的Binary使用Ja