AWS 上的免費 Minecraft 伺服器,對 Linux 零知識

你好,哈布爾! 更準確地說,騙子正在尋找如何設置我的世界伺服器來與朋友一起玩。

本文主要針對非程式設計師、非系統管理員,而非 Habr 的主要讀者。 本文包含建立具有專用 IP 的 Minecraft 伺服器的逐步說明,適合遠離 IT 的人員。 如果這與您無關,最好跳過這篇文章。

什麼是伺服器?

那什麼是伺服器呢? 如果我們將「伺服器」的概念作為軟體元件,那麼伺服器就是一個可以接收、處理和傳輸從連接到該伺服器的使用者(客戶端)接收的資料的程式。 以該網站為例,該網站位於某個 Web 伺服器上,您可以透過瀏覽器存取該伺服器。 在我們的例子中,minecraft 伺服器會產生一個玩家(客戶端)連結的世界,可以行走、打破方塊等。 我的世界伺服器負責連接玩家及其任何操作。

顯然,伺服器必須運行在電腦(機器)上。 您可以在家庭電腦上設定伺服器,但在這種情況下:

  • 您開啟電腦上的連接埠會危及電腦的安全
  • 伺服器會為您的電腦帶來負載,這可能會幹擾您的工作
  • 您無法讓您的家用電腦保持 24/7 運作:有時您將其關閉,有時您的電腦失去網路連線等。
  • 要從外部世界存取您的伺服器,您必須透過以下方式存取您的計算機 IP位址,對於「家庭」網路供應商來說 動態的,也就是說,它可能會因為您無法控制的原因每 2-3 天更改一次。

而我們要如何解決這些問題呢?

所有這些問題的解決方案是使用 虛擬機靜止的,即不可更改的IP位址。

複雜的術語? 讓我們弄清楚一下。
讓我們轉向維基百科。

Виртуальная машина (VM, от англ. virtual machine) — программная и/или аппаратная система, эмулирующая аппаратное обеспечение некоторой платформы...

簡而言之,它是計算機中的計算機。 您也可以在其上安裝作業系統並像使用普通電腦一樣使用它。

我們在哪裡可以得到它?

答案很簡單—— AWS。 這個平台提供了許多不同的雲端服務,這些服務不僅對每個使用網路的人都有用。 要創建 Minecraft 伺服器,AWS 產品之一是完美的 - 亞馬遜EC2 — 24/7 可用的雲端虛擬機器。 AWS 提供最低虛擬機器(10GB SSD、1GB RAM) 免費一年此外,還可以綁定免費的專用(靜態)IP 位址,以便在相同位址永久存取您的 VM(虛擬機器)。

我們創建並配置虛擬機

轉到該網站 AWS 並註冊。 然後進入管理控制台。

AWS 上的免費 Minecraft 伺服器,對 Linux 零知識

在控制台的服務中,找到 EC2 去吧。

選擇資料中心很重要簡單來說就是亞馬遜伺服器所在的地方。 您應該根據您所在的位置進行選擇,因為網路上的通訊速度各不相同,並且您應該選擇一個與您所在城市的通訊速度盡可能快的資料中心。

AWS 上的免費 Minecraft 伺服器,對 Linux 零知識

要選擇資料中心,我建議使用該服務 旺達網絡,測量資料包與其他城市的傳輸速度。
就我而言(莫斯科),愛爾蘭資料中心適合我。

是時候創建虛擬機器了。 為此,請轉到選項卡 啟動實例

AWS 上的免費 Minecraft 伺服器,對 Linux 零知識

讓我們開始配置虛擬機器。

1) 選擇作業系統鏡像。 Linux 搭建伺服器非常方便;我們將使用發行套件 CentOS7的

應該注意的是,您的虛擬機器上不會有圖形環境;將透過控制台存取電腦。 它涉及使用命令而不是電腦滑鼠來控制虛擬機器。 不要害怕這一點:這不應該阻止你現在或放棄建立自己的 Minecraft 伺服器的想法,因為它「太難了」。 透過控制台操作機器並不困難 - 您很快就會親眼目睹。

AWS 上的免費 Minecraft 伺服器,對 Linux 零知識

2) 現在讓我們定義VM的技術配置。 免費使用,亞馬遜提供配置 t2.micro,對於一個成熟的大型我的世界伺服器來說還不夠,但足夠和朋友一起玩了。

AWS 上的免費 Minecraft 伺服器,對 Linux 零知識

3) 將其餘設定保留為預設值,但停在選項卡上 設定安全群組.

AWS 上的免費 Minecraft 伺服器,對 Linux 零知識

這裡我們需要配置minecraft伺服器的連接埠存取。

簡單來說,連接埠是一個非負數,指示來自外部世界的傳入資料的位址。 虛擬機器可以託管許多不同的服務和伺服器,因此所有傳入資料包都將虛擬機器內目標(服務、伺服器)的連接埠(號碼)儲存在其標頭中。

對於minecraft伺服器,事實上的標準是使用連接埠 25565。 讓我們新增一條規則,指示可以接受透過此連接埠存取您的虛擬機器。

AWS 上的免費 Minecraft 伺服器,對 Linux 零知識

AWS 上的免費 Minecraft 伺服器,對 Linux 零知識

我們點選按鈕進入完成VM建立的視窗 審查並啟動

為虛擬機器設定 SSH 金鑰對

因此,與機器的連接將使用 SSH 協定進行。

SSH協定的工作原理如下:產生一對金鑰(公鑰和私鑰),公鑰儲存在VM上,私鑰儲存在連接到VM的人(客戶端)的電腦上。 連線時,VM 檢查客戶端是否有適當的私鑰。

發佈會。 您面前將出現以下視窗:

AWS 上的免費 Minecraft 伺服器,對 Linux 零知識

輸入密鑰對的名稱(為了方便起見)並點擊 下載金鑰對。 你應該下載 .pem 包含您的私鑰的檔案。 點擊按鈕 啟動實例。 您剛剛建立了一個將安裝伺服器的虛擬機器。

取得靜態IP

現在我們需要取得靜態 IP 並將其綁定到我們的虛擬機器。 對於此選單,我們找到選項卡 彈性 IP 我們沿著它前進。 在選項卡上,按一下按鈕 分配彈性IP位址 並獲得靜態IP。

AWS 上的免費 Minecraft 伺服器,對 Linux 零知識

現在收到的 IP 位址必須與我們的 VM 關聯。 為此,請從清單和選單中選擇它 動態 選擇 關聯IP位址

AWS 上的免費 Minecraft 伺服器,對 Linux 零知識

接下來,我們將虛擬機器綁定到我們的IP位址

AWS 上的免費 Minecraft 伺服器,對 Linux 零知識

完成!

我們進入虛擬機

現在虛擬機器已配置並分配了 IP 位址,讓我們連接到它並安裝我們的 Minecraft 伺服器。

要透過 SSH 連接到虛擬機,我們將使用該程式 膩子. 從此頁面立即安裝 PuTTYgen

安裝PuTTY後,打開它。 現在您需要設定連線。

AWS 上的免費 Minecraft 伺服器,對 Linux 零知識

  1. 在選項卡中 會議 選擇連線類型 SSH, 港口 22。 指定連接的名稱。 透過 SSH 連接的主機名稱是一個字串,如下所示: имя_пользователя@публичный_dns.

CentOS 在 AWS 中的預設使用者名稱是 CentOS的。 您可以在此處查看您的公共 DNS:

AWS 上的免費 Minecraft 伺服器,對 Linux 零知識

我接到電話了 [email protected]

  1. 在選項卡中 SSH -> 身份驗證 輸入您的 SSH 私鑰。 它儲存在一個檔案中 .pem,我們之前下載的。 但 PuTTY 無法處理文件 .pem,他需要一個格式 .ppk。 對於轉換,我們將使用 PuTTYgen。 來自 PuTTYgen 網站的轉換說明。 收到文件 .ppk 我們在這裡保存並指出:

AWS 上的免費 Minecraft 伺服器,對 Linux 零知識

  1. 我們透過使用按鈕打開連接來連接到虛擬機 已提交.
    恭喜! 我們剛剛連接到您的虛擬機器的控制台。 剩下的就是在上面安裝我們的伺服器了。

安裝並設定我的世界伺服器

讓我們開始設定我們的伺服器。 首先,我們需要在虛擬機器上安裝幾個軟體包。

sudo yum install -y wget mc iptables iptables-services java screen

讓我們弄清楚每個包的用途。

  • wget的 - 用於在 Linux 中下載檔案的實用程式。 使用它我們將下載伺服器檔案。
  • mc - 控制台文字編輯器。 對於未經培訓的用戶來說,它簡單且易於使用。
  • iptables的 — 用於管理和配置防火牆的實用程序,在它的幫助下,我們將為虛擬機器上的伺服器開啟一個連接埠。
  • Java的 —minecraft運行在java上,所以需要伺服器工作
  • 屏幕 - Linux 的視窗管理器。 它將允許我們複製控制台來提升伺服器。 事實上,伺服器必須透過控制台啟動;如果您與虛擬機器斷開連接,伺服器進程將停止。 因此,我們將在單獨的控制台視窗中運行它。

現在讓我們來設定防火牆。

防火牆是電腦網路的軟體或硬體-軟體元素,它根據指定的規則控制和過濾通過它的網路流量。 (維基百科)

簡單來說:想像一座堅固的城市。 他不斷受到來自外界的攻擊,而城市裡的生活仍在繼續。 要進入城市,要塞的牆上有一扇門,守衛站在門邊,從名單上檢查這個人是否可以進入要塞。 電腦網路中的牆和門的作用由防火牆執行。

sudo mcedit /etc/sysconfig/iptables

我們剛剛建立了一個防火牆設定檔。 讓我們用標準配置資料填充它,包括連接埠規則 25565,這是我的世界伺服器的標準連接埠。

*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 25565 -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT
-A INPUT -j REJECT --reject-with icmp-host-prohibited
-A FORWARD -j REJECT --reject-with icmp-host-prohibited
COMMIT

按關閉文件 F10,儲存變更。

AWS 上的免費 Minecraft 伺服器,對 Linux 零知識

現在讓我們啟動防火牆並在啟動時啟用它:

sudo systemctl enable iptables
sudo systemctl restart iptables

我們將伺服器檔案儲存在一個單獨的資料夾中,創建它,轉到它並下載伺服器檔案。 為此,您應該使用 wget的

mkdir minecraft
cd minecraft
wget <ссылка_на_jar>

需要找到 直接鏈接 可供下載 .jar 伺服器文件。 例如,連結到伺服器檔案版本 1.15.2:

wget https://launcher.mojang.com/v1/objects/bb2b6b1aefcd70dfd1892149ac3a215f6c636b07/server.jar

使用命令查看資料夾內容 ls,確保文件已下載。

AWS 上的免費 Minecraft 伺服器,對 Linux 零知識

讓我們啟動伺服器檔案。 現在伺服器將無法運作:它將建立工作所需的所有文件,並會抱怨您不同意 EULA 許可證的條款。 開啟文件接受條款 eula.txt

sudo mcedit eula.txt

將條目更改為以下內容來確認您的同意:

eula=true

打開文件 server.properties:這是您的伺服器設定檔。 有關伺服器設定的更多信息

必須對其進行以下更改:

online-mode=false

其餘設定由您自行決定。

服務器啟動

是時候啟動伺服器了。 正如我已經說過的,伺服器直接從控制台啟動,但是如果我們關閉主控制台,伺服器進程將停止。 因此,讓我們建立另一個控制台:

screen

讓我們在此控制台中啟動伺服器:

 sudo java -Xms512M -Xmx1024M -jar <название_файла_сервера>.jar --nogui

伺服器啟動大約45秒,請勿中斷流程。 當伺服器初始化並運行時,您將看到類似以下內容:

AWS 上的免費 Minecraft 伺服器,對 Linux 零知識

恭喜! 您剛剛啟動並運行了您的 Minecraft 伺服器。 現在,正確退出第二個控制台非常重要,以便它繼續與正在運行的伺服器一起工作。 為此,請單擊 Ctrl+A然後 D。 您應該在主控制台中看到類似的訊息 [detached from 1551.pts-0.ip-172-31-37-146]。 如果需要返回伺服器運行的控制台,請使用 screen -r

現在您可以中斷與虛擬機器的連線。 您的伺服器將可以透過我們先前收到的靜態 IP 位址的連接埠 25565 進行存取。

AWS 上的免費 Minecraft 伺服器,對 Linux 零知識

原來進入伺服器的位址會是 <ваш_статический_IP>:25565.

結論

使用這些說明,您可以輕鬆設定具有專用 IP 的免費 Minecraft 伺服器。 本文以最簡單的語言編寫,面向非專業人士。 在這方面,聽到那些忙碌的人的評論很有趣,因為在簡化材料時,可能會出現術語上的事實錯誤。

來源: www.habr.com

添加評論