Бясплатны minecraft сервер на AWS з нулявым веданнем linux

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

Артыкул разлічаны на непраграмістаў, несісадмінаў, увогуле, не на асноўную аўдыторыю Хабра. У артыкуле - пакрокавая інструкцыя па стварэнні minecraft сервера з выдзеленым IP, адаптаваная для людзей, далёкіх ад IT. Калі гэта не пра вас - артыкул лепш прапусціць.

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

Дык вось, што такое сервер? Калі абапірацца на паняцце "сервер" як на кампанент праграмнага забеспячэння, то сервер уяўляе з сябе праграму, якая можа прымаць, апрацоўваць і перадаваць дадзеныя, якія прымаюцца ад карыстачоў (кліентаў), які да гэтага сервера падлучаныя. На прыкладзе сайта - сайт знаходзіцца на некаторым вэб-серверы, да якога вы атрымліваеце доступ праз браўзэр. У нашым выпадку - сервер 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 файл, які змяшчае ў сабе ваш закрыты ключ. Націсніце кнопку Launch instances. Толькі што вы стварылі віртуальную машыну, на якой будзе падняты сервер.

Атрымліваем статычны 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. Ва ўкладцы сесія вылучыце тып падключэння SSH, порт 22. Назавіце імя для падлучэння. Імя хаста для падлучэння па SSH уяўляе з сябе радок тыпу: имя_пользователя@публичный_dns.

Імя карыстальніка ў AWS для 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

Дадаць каментар