架設Minecraft 伺服器(Paper)

文章推薦指數: 80 %
投票人數:10人

尚未完成。

環境:. 雲端平台:Azure, Oracle Cloud 作業系統:Ubuntu 20.04 LTS Minecraft 版本:1.17. 租伺服器. Back 尚未完成。

環境: 雲端平台:Azure,OracleCloud 作業系統:Ubuntu20.04LTS Minecraft版本:1.17 租伺服器 我使用的是OracleCloud,因為有永久免費提供兩台1GRAM/1vCPU的機器可使用,比起GoogleCloud(永久670MBRAM/1vCPU*1)和Azure(12個月1GRAM/1vCPU*2(Windows及Linux各一)),算是非常大方了。

如果使用自己的機器可以直接跳到事前準備。

如果使用其他的雲端服務可以直接跳到SSH連線。

前往OracleCloud的官網,點選開始免費試用。

註冊一支帳號。

開啟選單,並選擇Compute>Instances。

oraclecloudcomputeinstance 建立機器。

SSH連線 推薦使用WindowsTerminal。

介面美觀、功能強大、微軟親兒子。

在MicrosoftStore即可下載安裝。

開啟後,按下向下箭號,選擇Settings,下拉左邊的側邊欄,點擊加號,在Name欄輸入你想使用的名稱,接著在CommandLine欄貼上以下的指令,然後修改指令中的參數。

PowerShell-NoExit-NoLogo-Commandssh-i'私鑰路徑'@ (第一次連接會顯示金鑰的指紋,並詢問是否要繼續連接,輸入yes就可以) sshfingerprint 以後只要開啟WindowsTerminal,按下拉選單,然後選擇剛才設定的名稱便可以快速存取遠端機器。

SFTP連線 Filezilla安裝程式爭議: BecarefulifyouareusingFileZillaforyour…(Reddit) Fw:[黑特]filezilla我這麼相信你結果你藏木馬! 這裡以Cyberduck做示範,但更推薦使用WinSCP(完全免費,不用看到購買金鑰提示),其他程式的流程應該也大同小異。

安裝完Cyberduck後,點左上角的OpenConnection。

mainui 即可開啟此視窗。

先在最上方的下拉選單選擇SFTP,接著在Server那欄填寫你的機器的IP,Username欄填寫你在系統內的使用者名稱,最後點擊SSHPrivateKey旁的Choose...,選擇你之前下載到的私鑰,就可以連接上了。

如果接下來有任何關於檔案操作的步驟,不方便(不習慣)在終端機中操作,皆可以透過Cyberduck完成。

openconnection 與SSH連接相同,第一次連接也會提示指紋,選擇允許就好了。

sftpfingerprint 事前準備 先更新Ubuntu的套件: sudoaptupdate&&sudoaptupgrade-y Swap空間 因為我們的機器的RAM只有1G,所以得拿硬碟的一小部分作為swap空間。

(如果機器的記憶體足夠,可以跳過此部分。

且硬碟的速度比RAM慢上許多,會影響實際執行的效能) sudofallocate-l3G/swapfile#分配空間 sudochmod600/swapfile#只有sudo使用者能存取此空間 sudomkswap/swapfile#啟用swap sudoswapon/swapfile#啟用swap 調整fstab,否則下次系統重開機時又要再重新設定一次。

sudonano/etc/fstab /swapfileswapswapdefaults00#在fstab裡面貼上這行指令 貼上後,按下Ctrl+X、Y、Enter就可以儲存並離開了。

防火牆 如果是使用OracleCloud的話,還要先開啟系統防火牆中Minecraft的連接埠。

sudoiptables-IINPUT-ptcp--dport25565--syn-jACCEPT sudoiptables-AINPUT-ptcp--dport25565-jACCEPT sudonetfilter-persistentsave 開始架設 接著就可以開始架設伺服器,安裝JDK: sudoaptinstallapt-transport-httpssoftware-properties-commongnupg wget-qO-https://adoptopenjdk.jfrog.io/adoptopenjdk/api/gpg/key/public|sudoapt-keyadd- sudoadd-apt-repositoryhttps://adoptopenjdk.jfrog.io/adoptopenjdk/deb/ sudoaptupdate sudoaptinstalladoptopenjdk-16-hotspot 前往Paper的下載頁面,選擇要架設的版本(示範為1.17),然後對著最新組建(目前是#71)的按鈕點右鍵,複製連結。

下載頁面 建立一個資料夾,名字可以隨便取,接著進到資料夾。

mkdir#建立資料夾Ex:mkdirmcserver cd#進入資料夾Ex:cdmcserver 使用你剛才複製的連結下載組建。

wget#Ex:wgethttps://papermc.io/api/v2/projects/paper/versions/1.17/builds/71/downloads/paper-1.17-71.jar 此時當你執行ls列出檔案列表的時候,應該就能看到資料夾裡面有一個.jar的檔案。

執行伺服器檔: java-Xms512M-Xmx2G-jarpaper-1.17-71.jar--nogui -Xms是指定伺服器剛啟動時的記憶體分配大小,-Xmx則是指定伺服器最多能使用的記憶體大小。

我這裡分別分配了512MB和2GB給伺服器使用,實際執行時能依自己的情況調整。

第一次開啟時,伺服器會要求簽許可協議,並自動關閉。

只要開啟eula.txt, nanoeula.txt 把裡面的eula=false改成eula=true就可以了。

再開啟伺服器一次。

這次就能順利看到伺服器在載入和產生世界,出現Done(xx.xxxs)!Forhelp,type“help”之後,就可以透過IP進到伺服器中。

問題 只要關掉終端機,伺服器就會跟著一起關掉 使用screen。

即使你斷線或是關掉終端,screen還是會在背景繼續執行你的工作。

Ubuntu已經有內建screen,在指令前面加上screen就可以了,例如: screenjava-Xms512M-Xmx2G-jarpaper-1.17-71.jar--nogui 之後若要返回終端機,只需輸入screen-r。

但如果出現以下的錯誤訊息,代表你的終端還綁在其他地方,需要先卸離。

輸入screen-d,再連接一次就好。

Thereisascreenon: 38940.pts-0.vm2(07/16/2119:44:58)(Attached) Thereisnoscreentoberesumed. 指令太長,每次都要用複製的 使用.sh檔,然後在裡面貼上要執行的指令。

設定好權限之後,未來只要執行該.sh檔就可以快速執行指令。

nanostart.sh//建立檔案 screenjava-Xms512M-Xmx2G-jarpaper-1.17-71.jar--nogui//貼上此行並儲存 chmod+xstart.sh//設定執行權限 ./start.sh//執行.sh檔 安裝插件 只要將下載回來的.jar檔放在plugins/資料夾中就可以了,下次開啟伺服器時就會自動產生檔案。

推薦: CoreProtect:紀錄或還原破壞方塊、放置方塊、儲物箱物品移動、聊天、登入登出…等事件。

/coi#切換檢查器,對方塊點右鍵即可查看紀錄 /corb#復原,可使用參數來縮小範圍 /col#查詢紀錄,可使用參數來縮小範圍 可使用的參數有: u: t:Ex:t:5w,3d,2h,1m,4s r: a:Ex:a:block(放置/破壞方塊) a:+block(放置方塊) a:-block(破壞方塊) a:chat(聊天對話) a:click(互動) a:command(指令) a:container(從儲物箱取出或放入物品) a:+container(放入物品) a:-container(取出物品) a:inventory(撿起或扔出物品) a:+inventory(撿起物品) a:-inventory(扔出物品) a:item(從儲物箱取出或放入物品、撿起或扔出物品) a:+item(放入物品到儲物箱或撿起物品) a:-item(從儲物箱取出物品或扔出物品) a:kill(殺死生物) a:session(登入/登出) a:+session(登入) a:-session(登出) a:sign(告示牌訊息) a:username(玩家名稱變動) b: e: FastChunkPregenerator:預先生成chunk,不用等到玩家在附近時才生成,對跑圖時的效能非常有幫助。

/fcpstart[世界][chunk的X座標][chunk的Z座標]#開始生成 /fcppause#暫停生成 /fcpresume#繼續生成 /fcpcancel#取消生成 可有可無: TAB:在玩家列表、頭上、計分板…等地方顯示自訂訊息。

example Source:TABPluginPage /tabreload SupportedRGBformats: #****** ****** {#******} # &x&*&*&*&*&*&* Gradients: Text#******> {#******>}Text{#******Text config.yml animation.yml Dynmap:讓世界能像Google地圖一樣瀏覽 預設可使用的世界及地圖:world-世界(主世界) ->flat-地圖(2D) ->surface-地圖(3D) ->cave-地圖(3D) world_nether-世界(地獄) ->flat-地圖(2D) ->surface-地圖(3D) world_the_end-世界(終界) ->flat-地圖(2D) ->surface-地圖(3D) 指令: /dynmaprender:渲染目前所在位置的一格區塊。

/dynmapfullrender(世界):(地圖):從中央開始,渲染指定世界的地圖。

/dynmapradiusrender(範圍)(地圖):從你所在位置開始,向外渲染你指定的範圍。

/dynmapradiusrender(地圖)xz(範圍):從`x,64,z`開始,向外渲染你指定的範圍。

/dynmapupdaterender(地圖):渲染需要更新的區塊。

/dynmapupdaterender(世界)xz(地圖):從(x,z)的區塊開始,渲染需要更新的區塊。

/dynmapcancelrender(世界):取消所有渲染工作。

/dynmappurgequeue:清除工作隊列。

/dynmappurgemap(世界)(地圖):刪除該世界的所有地圖檔。

若未提供地圖將刪除全部。

/dynmappauseall:暫停所有渲染工作。

/dynmappausenone:繼續所有渲染工作。

Multiverse:多個世界,可將個別調整世界的細項,像是遊戲模式、規則… 提升性能 參考 修改時區 根據租的機器的所在位置,時區也會跟著有所不同。

在察看伺服器的紀錄檔的時候可能會很麻煩。

如果想要把時區改回台灣的話,可以使用下面這條指令。

sudotimedatectlset-timezoneAsia/Taipei Relatedcontents 使用Netlify及Hugo架設部落格 Tableofcontents 租伺服器 SSH連線 SFTP連線 事前準備 Swap空間 防火牆 開始架設 問題 安裝插件 提升性能 修改時區



請為這篇文章評分?