建立並設定 Minecraft 伺服器

建立並設定 Minecraft 伺服器

《我的世界》是當今最受歡迎的線上遊戲之一。 在不到三年的時間內(首次正式發佈於 2011 年秋季),他在全球贏得了數百萬粉絲。

遊戲開發者刻意關註二十年前的最佳例子,當時的許多遊戲以今天的標準來看,在圖形方面還很原始,在可用性方面也不完善,但同時它們確實令人興奮。

與所有沙盒遊戲一樣,《我的世界》為用戶提供了巨大的創造力機會 - 事實上,這就是其受歡迎的主要秘密。

多人遊戲的伺服器由玩家自己及其社群組織。 如今,互聯網上運行著數以萬計的遊戲伺服器(例如,請參見此處的列表)。

我們的客戶中有很多這款遊戲的粉絲,他們從我們的資料中心租用設備用於遊戲專案。 這篇文章我們就來談談在選擇伺服器時需要注意哪些技術點
我的世界。

選擇平台

Minecraft 包含以下建築元素:

  1. 伺服器 - 玩家透過網路相互互動的程式;
  2. 客戶端-安裝在玩家電腦上的用於連接伺服器的程式;
  3. 插件 - 新增功能或擴充舊功能的伺服器附加功能;
  4. 模組是遊戲世界的補充(新區塊、物品、功能)。

Minecraft 有很多伺服器平台。 最常見和最受歡迎的是 Vanilla 和 Bukkit。

雲尼拿 這是遊戲開發商的官方平台。 它有圖形版本和控制台版本。 Vanilla 的新版本總是與 Minecraft 的新版本同時發布。

Vanilla 的缺點是記憶體消耗過多(每個玩家大約 50 MB)。 另一個顯著的缺點是缺少插件。

布基特 由一群試圖改進 Minecraft 官方伺服器的愛好者創建。 這次嘗試非常成功:Bukkit 的功能比 Vanilla 廣泛得多,這主要是由於對各種 mod 和插件的支援。 同時,每個玩家消耗的記憶體更少 - 大約 5-10 MB。

Bukkit 的缺點是執行時間佔用過多 RAM。 另外,伺服器運行的時間越長,需要的記憶體就越多(即使玩家很少)。 當選擇 Bukkit 作為伺服器時,您應該記住,它的新版本通常包含錯誤; 穩定版本通常在 Minecraft 正式版發布後約 2-3 週出現。

此外,其他平台最近也很受歡迎(例如Spout、MCPC 和MCPC+),但它們與Vanilla 和Bukkit 的兼容性有限,並且對mod 的支援極為有限(例如,對於Spout,您只能從頭開始編寫mod) 。 如果使用它們,則僅用於實驗。

要組織遊戲伺服器,我們建議使用Bukkit平台,因為它是最靈活的; 此外,還有許多不同的模組和插件。 Minecraft伺服器的穩定運作很大程度上取決於硬體平台的正確選擇。 讓我們更詳細地考慮這個問題。

硬件要求

Minecraft 伺服器和用戶端對系統資源的需求都非常高。
選擇硬體平台時,您應該記住,多核心處理器不會提供太多優勢:Minecraft 伺服器核心只能使用一個運算執行緒。 然而,第二個核心會很有用:一些外掛程式在單獨的執行緒中執行,並且 Java 也消耗大量資源...

因此,對於Minecraft伺服器來說,最好選擇單核心效能較高的處理器。 功能更強大的雙核心處理器優於功能較弱的多核心處理器。 在專業論壇上,建議使用時脈頻率至少為 3 GHz 的處理器。

為了 Minecraft 伺服器的正常運行,需要大量 RAM。 Bukkit 大約佔用 1GB RAM; 此外,如上所述,為每個玩家分配 5 到 10 MB 的空間。 插件和模組也會消耗大量記憶體。 因此,對於擁有 30 - 50 名玩家的伺服器,您至少需要 4 GB RAM。

在 Minecraft 中,很多(例如,加載相同的插件)取決於檔案系統的速度。 因此,最好選擇SSD盤的伺服器。 由於隨機讀取速度較低,主軸磁碟不太適合。

網路連線的速度也非常重要。 對於 40-50 人的遊戲,10 Mb/s 的通道就足夠了。 然而,對於那些正在規劃一個更大的 Minecraft 專案(包括網站、論壇和動態地圖)的人來說,非常希望擁有一個具有更多頻寬的頻道。

具體選擇哪種配置最好? 從 我們提供的配置 我們建議您注意以下事項:

  • Intel Core 2 Duo E8400 3GHz,6GB RAM,2x500GB SATA,3000 RUR/月;
  • Intel Core 2 Quad Q8300 2.5GHz、6GB RAM、2x500GB SATA、3500 盧布/月。 — 我們將此配置用於我們的《我的世界》測試伺服器,您現在就可以在該伺服器上進行遊戲(下面寫瞭如何執行此操作);
  • Intel Core i3-2120 3.3GHz、8GB RAM、2x500GB SATA、3500 RUR/月。

這些配置非常適合創建 30-40 名玩家的 Minecraft 伺服器。 一些缺點是缺少 SSD 驅動器,但我們提供了另一個重要優勢:保證 100 Mb/s 通道,沒有任何限製或比率。 訂購上面列出的所有配置時,無需支付安裝費用。

我們也擁有生產力更高,但同時自然也更昂貴的伺服器(訂購這些配置時,也不收取安裝費):

  • 2x Intel Xeon 5130,2GHz,8GB RAM,4x160GB SATA,5000 盧布/月;
  • 2 個 IntelXeon 5504、2GHz、12GB RAM、3x1TB SATA、9000 盧布/月。

我們也建議您專注於基於 Intel Atom C2758 處理器的 SSD 驅動器的新預算型號:Intel Atom C2758 2.4 GHz,16 GB RAM,2x240 GB SSD,4000 盧布/月,安裝費 - 3000 盧布。

在 OC Ubuntu 上安裝並執行 Bukkit 伺服器

在安裝伺服器之前,我們先建立一個新使用者並將其新增至 sudo 群組:

$ sudo useradd -m -s /bin/bash <使用者名稱> $ sudo adduser <使用者名稱> sudo

接下來,我們將設定已建立的用戶連接伺服器的密碼:

$ sudo passwd <使用者名稱>

讓我們用新帳戶重新連接到伺服器並開始安裝。
Minecraft是用Java寫的,因此伺服器上必須安裝Java運行環境。

讓我們更新可用軟體包的清單:

$ sudo apt-get update

然後運行以下命令:

$ sudo apt-get install default-jdk

要安裝和執行 Bukkit,也建議安裝終端多工器 - 例如 screen(您也可以使用其他終端多工器 - 請參閱我們的 概觀):

$ sudo apt-get 安裝螢幕

如果我們透過 ssh 連接到遊戲伺服器,則需要 Screen。 有了它的幫助,你可以在單獨的終端機視窗中運行 Minecraft 伺服器,甚至在關閉 ssh 用戶端後,伺服器也能運作。

讓我們建立一個用於儲存伺服器檔案的目錄:

$ mkdir bukkit $ cd bukkit

之後我們去 Bukkit官網下載頁面。 在頁面的右上角,您可以看到指向伺服器的最新推薦版本的連結。 我們建議下載:

$ wget <推薦版本連結>

現在讓我們運行螢幕:

$sudo 螢幕

並執行以下命令:

$ java -Xmx1024M -jar craftbukkit.jar -o false

讓我們解釋一下所使用的參數的含義:

  • Xmx1024M - 每台伺服器的最大 RAM 量;
  • jar craftbukkit.jar - 伺服器的金鑰;
  • o false - 允許盜版客戶端存取伺服器。

伺服器將啟動。
您可以透過在控制台中鍵入 stop 命令來停止伺服器。

設定和配置伺服器

伺服器設定儲存在 server.properties 設定檔中。 它包含以下參數:

  • 生成器設定 — 設定產生超平坦世界的模板;
  • allow-nether - 決定移動到下層世界的可能性。 預設情況下,此設定設定為 true。 如果設定為 false,那麼所有來自下界的玩家都會被轉移到普通玩家;
  • level-name - 包含遊戲期間將使用的地圖檔案的資料夾的名稱。 該資料夾位於伺服器檔案所在的同一目錄中。 如果沒有這個目錄,伺服器會自動建立一個新的世界,並將其放置在同名目錄下;
  • enable-query - 當設定為 true 時,啟動 GameSpy4 協定來偵聽伺服器;
  • 允許飛行 - 允許在 Minecraft 世界各地飛行。 預設值為 false(禁止飛行);
  • 伺服器連接埠 - 指示遊戲伺服器將使用的連接埠。 我的世界的標準連接埠是25565,不建議更改該參數的值;
  • level-type - 決定世界的類型(DEFAUT/FLAT/LARGEBIOMES);
  • enable-rcon - 允許遠端存取伺服器控制台。 預設情況下它是禁用的(false);
  • level-seed - 級別產生器的輸入資料。 為了能夠創建隨機世界,該欄位必須留空;
  • force-gamemode - 設定連接到伺服器的玩家的標準遊戲模式;
  • server-ip - 表示玩家連接伺服器時所使用的IP位址;
  • max-build-height - 指示伺服器上建築物的最大高度。 其值必須是16的倍數(64、96、256等);
  • spawn-npcs - 允許(如果設定為 true)或禁止(如果設定為 false)NPC 在村莊中出現;
  • 白名單 - 啟用或停用伺服器上玩家白名單的使用。 如果設定為 true,管理員將能夠透過手動新增玩家暱稱來建立白名單。 如果值為 false,則任何知道其 IP 位址和連接埠的使用者都可以存取伺服器;
  • spawn-animals - 如果設定為 true,則允許自動產生友善的小怪);
  • snooper-enabled - 允許伺服器向開發人員發送統計資料和資料;
  • 硬核 - 在伺服器上啟用硬核模式;
  • texture-pac - 玩家連接到伺服器時將使用的紋理檔案。 此參數的值為帶有紋理的zip壓縮包的名稱,與伺服器保存在同一目錄下;
  • 線上模式 - 允許檢查連接到伺服器的使用者的高級帳戶。 如果此參數設為 true,則只有高級帳戶持有者才能存取伺服器。 如果帳戶驗證已停用(設定為 false),則任何使用者都可以存取伺服器(包括例如偽造暱稱的玩家),這會產生額外的安全風險。 當檢查被停用時,您可以透過本地網路玩《我的世界》,無需上網;
  • PVP - 允許或禁止玩家互相戰鬥。 如果這個參數為true,那麼玩家可以互相摧毀。 如果設定為 false,則玩家無法對彼此造成直接傷害;
  • 難度 - 設定遊戲的難度等級。 可以取從0(最簡單)到3(最難)的值;
  • gamemode - 指示將為進入伺服器的玩家設定什麼遊戲模式。 可以取以下值:0-生存,1-創意,2-冒險;
  • player-idle-timeout — 不活動的時間(以分鐘為單位),之後玩家將自動與伺服器斷開連線;
  • max-players — 伺服器上允許的最大玩家數量(從 0 到 999);
  • spawn-monsters - 允許(如果設定為 true)敵對生物的產生;
  • 生成結構 — 啟用(true)/停用(false)結構(金庫、堡壘、村莊)的生成;
  • view-distance - 調整發送給玩家的更新區塊的半徑; 可以取 3 到 15 之間的值。

Minecraft 伺服器日誌寫入 server.log 檔案。 它與伺服器檔案儲存在同一資料夾中。 日誌的大小不斷增長,佔用越來越多的磁碟空間。 您可以使用所謂的日誌輪替來簡化日誌記錄機制的工作。 對於輪換,使用一個特殊的實用程式 - logrotate。 它將日誌中的條目數量限制在一定限度內。

您可以設定日誌輪換,以便在日誌檔案達到一定大小時立即刪除所有條目。 您也可以設定一個期限,在此期限後,所有舊條目將被視為不相關並被刪除。

基本輪換設定位於 /etc/logrotate.conf 檔案中; 此外,您還可以為每個應用程式建立單獨的設定。 具有單獨設定的檔案儲存在 /etc/logrotate.d 目錄中。

讓我們建立一個文字檔案 /etc/logrotate.d/craftbukkit 並在其中輸入以下參數:

/home/craftbukkit/server.log { 每週旋轉 2 次壓縮missingok notifempty }

讓我們更詳細地看看它們的意義:

  • rotate參數指定刪除檔案前的旋轉次數;
  • week表示每週進行一次輪換(也可以設定其他參數:monthly-monthly和daily-daily);
  • compress 指定應壓縮歸檔日誌(反向選項為 nocompress);
  • missingok表示如果沒有日誌文件,則應該繼續工作並且不顯示錯誤訊息;
  • notifempty 指定如果日誌檔案為空則不移動該日誌檔案。

您可以閱讀有關日誌輪換設定的更多信息 這裡.

優化技巧

我們立即預約,本節將僅提供與優化遊戲伺服器相關的提示。 微調和優化安裝 Minecraft 的伺服器的問題是一個單獨的主題,超出了本文的範圍; 有興趣的讀者可以在網路上輕鬆找到自己需要的資訊。

玩《我的世界》時最常見的問題之一是所謂的滯後,即程式無法及時回應使用者輸入的情況。 它們可能是由客戶端和伺服器端的問題引起的。 以下我們將提供有助於減少伺服器端出現問題的可能性的建議。

定期監控伺服器和插件的記憶體消耗

可以使用專門的管理插件來監控記憶體消耗 - 例如, 滯後計.

請繼續關注插件更新

通常,新插件的開發人員會努力減少每個新版本的負載。

盡量不要使用很多功能相似的插件

大型插件(例如 Essentials、AdminCMD、CommandBook)通常包含許多較小插件的功能。 例如,同一個 Essential 包含 iConomy、uHome、OpenInv、VanishNoPacket、Kit 外掛的功能。 小插件的功能完全被一個大插件的功能所覆蓋,在大多數情況下可以刪除,以免伺服器超載。

限制地圖並自行加載

如果不限制地圖,伺服器的負載會顯著增加。 您可以使用外掛程式限制地圖 世界邊界。 為此,您需要運行此外掛程式並執行 /wb 200 命令,然後使用 /wb fill 命令繪製地圖。

畫畫當然要花很多時間,但最好只做一次,關閉伺服器進行技術工作。 如果每個玩家都繪製地圖,伺服器就會運行緩慢。

用更快且資源佔用更少的插件取代重型插件

並非所有 Minecraft 的插件都可以稱得上成功:它們往往包含許多不必要和不必要的功能,有時還消耗大量記憶體。 最好用替代插件替換不成功的插件(有很多)。 例如,LWC插件可以用Wgfix+MachineGuard替換,DynMap插件可以用Minecraft Overviewer替換。

始終清除掉落物或安裝插件以自動移除掉落物

遊戲中的掉落物是指生物死亡或某些方塊被破壞時掉落的物品。 儲存和處理drop會佔用大量的系統資源。

為了讓伺服器運作更快,建議刪除drop。 最好使用特殊插件來完成此操作 - 例如,NoLagg 或 McClean。

不要使用反作弊軟體

所謂的反作弊程式通常安裝在遊戲伺服器上,即阻止以不誠實的方式影響遊戲的嘗試的程式。

Minecraft 也有反作弊功能。 任何反作弊都會給伺服器帶來額外的負擔。 最好為啟動器(但是,它不能提供絕對的安全保證並且很容易被破壞 - 但這是一個單獨討論的主題)和客戶端安裝保護。

取而代之的是結論

如果有具體例子的支持,任何指示和建議都會更有效。 根據上面的安裝說明,我們創建了自己的 Minecraft 伺服器,並在地圖上放置了一些有趣的東西。

這是我們得到的:

  • Bukkit伺服器-穩定推薦版本1.6.4;
  • 統計插件 - 收集有關玩家的統計資料;
  • WorldBorder外掛-繪製和限制地圖;
  • WorldGuard 外掛程式(+WorldEdit 作為相依性)- 保護某些區域。

我們邀請所有人來玩:連接、添加新伺服器並輸入地址 slc.tl.

如果您在評論中分享您自己安裝、配置和優化《我的世界》伺服器的經驗,並告訴我們您對哪些模組和插件感興趣以及原因,我們將非常高興。

很酷的消息: 自1月50日起,專用固定設定伺服器安裝費用降低3000%。 現在一次性設定費用只需XNUMX盧布。

無法在此發表評論的讀者請造訪我們的網站 一個博客.

來源: www.habr.com

添加評論