Безкоштовний сервер minecraft на AWS з нульовим знанням linux

Привіт, Хабре! Точніше, пройдисвіти, які шукають, як підняти minecraft сервер для гри з друзями.

Стаття розрахована на непрограмістів, несисадмінів загалом не на основну аудиторію Хабра. У статті - покрокова інструкція зі створення minecraft сервера з виділеним IP, адаптована для людей, далеких від ІТ. Якщо це не про вас – статтю краще пропустити.

Що таке сервер?

Отже, що таке сервер? Якщо спиратися на поняття "сервер" як на компонент програмного забезпечення, то сервер є програмою, яка може приймати, обробляти і передавати дані, що приймаються від користувачів (клієнтів), який до цього сервера підключені. На прикладі сайту сайт знаходиться на деякому веб-сервері, до якого ви отримуєте доступ через браузер. У нашому випадку сервер minecraft генерує світ, до якого підключаються гравці (клієнти), які можуть ходити, ламати блоки і т.д. За підключення гравців та будь-які їхні дії відповідає minecraft сервер.

Очевидно, що сервер має бути запущений на комп'ютері (машині). Можна підняти сервер на своєму домашньому комп'ютері, але в такому разі:

  • Ви ставите під загрозу безпеку власного комп'ютера, відкриваючи на ньому порти
  • Сервер навантажуватиме ваш комп'ютер, що може заважати роботі з ним
  • Ви не можете підтримувати домашній комп'ютер у робочому стані 24/7: іноді ви вимикаєте його, іноді ваш комп'ютер втрачає підключення до інтернету і т.д.
  • Для доступу до вашого серверу із зовнішнього світу доведеться звертатися до комп'ютера IP-адресу, який у "домашніх" інтернет-провайдерів є динамічним, тобто він може змінюватися кожні 2-3 дні з причин, що від вас не залежать.

І як ми вирішимо ці проблеми?

Вирішенням усіх перерахованих проблем є використання віртуальної машини зі статичним, тобто незмінною IP-адресою.

Складна термінологія? Давайте розумітися.
Звернемося до Вікіпедії.

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

Якщо пояснювати зовсім грубою мовою, це комп'ютер у комп'ютері. На нього також можна поставити операційну систему і працювати з ним, як зі звичайним комп'ютером.

Де ми її візьмемо?

Відповідь проста - AWS. Це така платформа, яка надає багато різних хмарних сервісів, корисних для всіх, хто працює з Інтернетом і не тільки. Для створення сервера minecraft відмінно підійде один із продуктів AWS. Amazon EC2 - Хмарна віртуальна машина, яка доступна 24/7. AWS пропонує мінімальну віртуальну машину (10GB SSD, 1GB RAM) безкоштовно на рік, до того ж, дає можливість прив'язати безкоштовну виділену (статичну) IP-адресу для постійного доступу до вашої ВМ (віртуальної машини) за тією ж адресою.

Створюємо та налаштовуємо ВМ

Перейдіть на сайт AWS і зареєструйтесь. Потім перейдіть у консоль керування.

Безкоштовний сервер minecraft на AWS з нульовим знанням linux

У консолі серед сервісів знайдіть EC2 І перейдіть до нього.

Важливо вибрати дата-центрПростіше кажучи, місце, де знаходяться сервери amazon. Вибирати слід залежно від вашого місця розташування, адже швидкість спілкування в мережі інтернет різна, і вибирати слід дата-центр, з яким спілкування з вашого міста буде максимально швидким.

Безкоштовний сервер minecraft на AWS з нульовим знанням linux

Для вибору дата-центру рекомендую скористатися сервісом WonderNetwork, що вимірює швидкість передачі пакетів з іншими містами.
У моєму випадку (м.Москва) мені підійшов ірландський дата-центр.

Настав час створити віртуальну машину. Для цього перейдіть на вкладку Запустити екземпляр

Безкоштовний сервер minecraft на AWS з нульовим знанням linux

Почнемо конфігурування ВМ.

1) Виберемо образ операційної системи. Для підняття серверів дуже зручний linux, ми будемо використовувати дистрибутив CentOS7

Слід зазначити, що графічного середовища на віртуальній машині не буде, доступ до машини буде здійснюватися через консоль. Вона передбачає управління ВМ з допомогою команд, а чи не комп'ютерної миші. Не бійтеся цього: це не повинно зупинити вас вже зараз або відмовитися від ідеї підняття свого minecraft-сервера, тому що це "занадто складно". Працювати з машиною через консоль нескладно - скоро ви самі в цьому переконаєтесь.

Безкоштовний сервер minecraft на AWS з нульовим знанням linux

2) Тепер визначимо технічну конфігурацію ВМ. Для безкоштовного використання Amazon пропонує конфігурацію t2.micro, обмаль для повноцінного великого minecraft сервера, але з друзями пограти достатньо.

Безкоштовний сервер minecraft на AWS з нульовим знанням linux

3) Інші пункти налаштувань залишаємо за замовчуванням., але зупиняємось на вкладці Configure Security groups.

Безкоштовний сервер minecraft на AWS з нульовим знанням linux

Тут нам потрібно налаштувати доступ до портів для сервера minecraft.

Якщо пояснювати простою мовою — порт — невід'ємне число, яке вказує, кому адресовані дані із зовнішнього світу. На ВМ може бути безліч різних сервісів і серверів, тому всі вхідні пакети даних зберігають у своєму заголовку порт (номер) адресата (сервісу, сервера) всередині ВМ.

Для minecraft серверів де-факто стандартом є використання порту 25565. Додамо правило, що вказує на те, що доступ до вашої ВМ через цей порт припустимо.

Безкоштовний сервер minecraft на AWS з нульовим знанням linux

Безкоштовний сервер minecraft на AWS з нульовим знанням linux

Переходимо до вікна завершення створення ВМ, натиснувши кнопку Перегляньте та запустіть

Налаштування пари ключів SSH для ВМ

Отже, підключення до машини здійснюватиметься за протоколом SSH.

Протокол SSH працює так: генерується пара ключів (відкритий і закритий), на ВМ зберігається відкритий ключ, на комп'ютері людини, що здійснює підключення до ВМ (клієнта) - закритий. При підключенні ВМ перевіряє наявність закритого ключа у клієнта.

Натисніть кнопку Запуск. Перед вами з'явиться наступне вікно:

Безкоштовний сервер minecraft на AWS з нульовим знанням linux

Введіть назву пари ключів (для вашої зручності) та натисніть Download key pair. У вас має скачатися .pem файл, що містить у собі ваш закритий ключ. Натисніть кнопку Запуск екземплярів. Щойно ви створили віртуальну машину, на якій буде піднято сервер.

Отримуємо статичний IP

Тепер нам потрібно отримати та прив'язати статичний IP до нашої ВМ. Для цього меню знаходимо вкладку Еластичні IP -адреси та переходимо по ній. На вкладці натискаємо кнопку Allocate Elastic IP address та отримуємо статичний IP.

Безкоштовний сервер minecraft на AWS з нульовим знанням linux

Тепер отриману IP-адресу треба прив'язати до нашої ВМ. Для цього виберемо її зі списку та в меню Дії оберемо Associate IP address

Безкоштовний сервер minecraft на AWS з нульовим знанням linux

Далі, прив'яжемо ВМ до нашої IP-адреси

Безкоштовний сервер minecraft на AWS з нульовим знанням linux

Готово!

Заходимо на ВМ

Тепер, коли ВМ налаштована та IP-адреса прив'язана, підключимося до неї та встановимо наш minecraft сервер.

Для підключення до ВМ з SSH скористаємося програмою PuTTY. Відразу встановіть PuTTYgen з цієї ж сторінки

Після встановлення PuTTY відкрийте його. Тепер потрібно налаштувати підключення.

Безкоштовний сервер minecraft на AWS з нульовим знанням linux

  1. У вкладці Session виберіть тип підключення SSH, порт 22. Вкажіть ім'я для підключення. Ім'я хоста для підключення по SSH являє собою рядок типу: имя_пользователя@публичный_dns.

Ім'я користувача в AWS для CentOS за замовчуванням CentOS. Ваш публічний DNS можна переглянути тут:

Безкоштовний сервер minecraft на AWS з нульовим знанням linux

У мене вийшов рядок [email protected]

  1. У вкладці SSH -> Auth вкажіть ваш закритий SSH-ключ. Він зберігається у файлі .pem, який ми завантажували раніше. Але PuTTY не вміє працювати з файлами .pemйому потрібен формат .ppk. Для конвертації скористаємося PuTTYgen. Інструкція з конвертації із сайту PuTTYgen. Отриманий файл .ppk Збережемо та вкажемо тут:

Безкоштовний сервер minecraft на AWS з нульовим знанням linux

  1. З'єднуємось із ВМ, відкривши з'єднання кнопкою відкритий.
    Вітаю! Щойно ми підключилися до консолі вашої ВМ. Залишилося підняти її сервер.

Встановлення та налаштування minecraft сервера

Почнемо налаштування нашого сервера. Для початку потрібно встановити кілька пакетів на нашу ВМ.

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

Розберемося, навіщо потрібен кожен із пакетів.

  • Wget - Утиліта для завантаження файлів в linux. За допомогою неї ми завантажуємо файли сервера.
  • mc - Консольний текстовий редактор. Відрізняється простотою та зручністю у використанні для непідготовленого користувача.
  • Iptables - Утиліта для керування та налаштування firewall'a, за допомогою неї ми відкриємо порт для сервера на нашій ВМ.
  • Ява - на java працює minecraft, тому вона необхідна для роботи сервера
  • екран - Віконний менеджер для linux. Він дозволить продублювати нашу консоль для підняття сервера. Справа в тому, що сервер повинен бути запущений через консоль, якщо ви відключитеся від своєї ВМ, процес сервера буде зупинений. Тому ми запускатимемо його в окремому вікні консолі.

Тепер налаштуємо firewall.

Міжмережевий екран (firewall) - програмний або програмно-апаратний елемент комп'ютерної мережі, що здійснює контроль і фільтрацію мережного трафіку, що проходить через нього, відповідно до заданих правил. (Wikipedia)

Пояснюючи простою мовою: уявіть собі місто-фортецю. Його постійно атакують ззовні, причому у місті тече звичайне життя. Для доступу до міста у стіні фортеці є ворота, біля яких стоять охоронці та перевіряють за списками, чи можна пустити цю людину у фортецю. Роль стіни та воріт у комп'ютерних мережах виконує firewall.

sudo mcedit /etc/sysconfig/iptables

Щойно ми створили файл конфігурації firewall'a. Заповнимо його стандартними даними конфігурації, увімкнувши туди правило для порту 25565є стандартним портом для сервера minecraft.

*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, зберігаючи зміни.

Безкоштовний сервер minecraft на AWS з нульовим знанням linux

Тепер запустимо firewall і включимо його в автозавантаження:

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, переконайтеся, що файли завантажені.

Безкоштовний сервер minecraft на AWS з нульовим знанням linux

Запустимо файл сервера. Наразі сервер не працюватиме: він створить усі необхідні для роботи файли, і посвариться на те, що ви не погодилися з умовами ліцензії EULA. Приймемо умови, відкривши файл eula.txt

sudo mcedit eula.txt

Підтвердьте свою згоду, змінивши запис на:

eula=true

Відкрийте файл server.properties: це файл конфігурації сервера. Докладніше про налаштування сервера

До нього обов'язково потрібно внести таку зміну:

online-mode=false

Інші налаштування – на ваш розсуд.

запуск сервера

Настав час запускати сервер. Як я вже сказав, сервер запускається прямо з консолі, але якщо ми закриємо основну консоль - процес сервера буде зупинено. Тому створимо ще одну консоль:

screen

У цій консолі запустимо сервер:

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

Сервер запускається близько 45 секунд, не переривайте процес. Коли сервер буде ініціалізований і запущений, ви побачите щось на зразок:

Безкоштовний сервер minecraft на AWS з нульовим знанням linux

Вітаю! Щойно ви підняли та запустили свій minecraft сервер. Тепер важливо правильно вийти з другої консолі, щоб вона продовжила роботу із запущеним сервером. Для цього натисніть Ctrl+A, Потім D. Ви повинні опинитися в основній консолі та побачити повідомлення типу [detached from 1551.pts-0.ip-172-31-37-146]. Якщо вам потрібно повернутися в консоль, в якій запущено сервер, використовуйте screen -r

Тепер ви можете відключатись від своєї ВМ. Ваш сервер буде доступний за статичною IP-адресою, яку ми отримували раніше, на порту 25565.

Безкоштовний сервер minecraft на AWS з нульовим знанням linux

Виходить, адреса для входу на сервер буде <ваш_статический_IP>:25565.

Висновок

За цією інструкцією ви зможете підняти безкоштовний minecraft сервер з виділеним IP легко. Стаття була написана максимально простою мовою та розрахована на нефахівців. У зв'язку з цим цікаво почути коментарі захоплених, адже при спрощенні матеріалу можна припуститися фактичних помилок у термінології.

Джерело: habr.com

Додати коментар або відгук