Бясплатны 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 і зарэгіструйцеся. Затым перайдзіце ў кансоль кіравання.
У кансолі сярод сэрвісаў знайдзіце EC2 і перайдзіце да яго.
Важна абраць дата-цэнтр, прасцей кажучы, месца, дзе знаходзяцца серверы amazon. Выбіраць варта ў залежнасці ад вашага месцазнаходжання, бо хуткасць зносін у сетцы інтэрнэт розная, і выбіраць варта дата-цэнтр, з якім зносіны з вашага горада будуць максімальна хуткімі.
Для выбару дата-цэнтра рэкамендую карыстацца сэрвісам WonderNetwork, які вымярае хуткасць перадачы пакетаў з іншымі гарадамі.
У маім выпадку (г.Масква) мне падышоў ірландскі дата-цэнтр.
Нетутэйша час стварыць віртуальную машыну. Для гэтага перайдзіце на ўкладку Запусціце асобнік
Пачнём канфігураванне ВМ.
1) Выберам вобраз аперацыйнай сістэмы. Для ўзняцця сервераў вельмі зручны linux, мы будзем выкарыстоўваць дыстрыбутыў CentOS7
Варта адзначыць, што графічнага асяроддзя на вашай віртуальнай машыне не будзе, доступ да машыны будзе ажыццяўляцца праз кансоль. Яна мяркуе кіраванне ВМ пры дапамозе каманд, а не кампутарнай мышы. Не бойцеся гэтага: гэта не павінна спыніць вас ужо зараз ці адмовіцца ад ідэі ўзняцця свайго minecraft-сервера, бо гэта "занадта складана". Працаваць з машынай праз кансоль нескладана хутка вы самі ў гэтым пераканаецеся.
2) Цяпер вызначым тэхнічную канфігурацыю ВМ. Для бясплатнага выкарыстання Amazon прапануе канфігурацыю t2.micro, замала для паўнавартаснага вялікага minecraft сервера, але з сябрамі пагуляць дастаткова.
3) Астатнія пункты налад пакідаем па змаўчанні., але спыняемся на ўкладцы Configure Security groups.
Тут нам неабходна наладзіць доступ да партоў для сервера minecraft.
Калі тлумачыць простай мовай – порт – неадмоўны лік, які паказвае, каму адрасаваны ўваходныя дадзеныя са знешняга свету. На ВМ можа знаходзіцца мноства розных сэрвісаў і сервераў, таму ўсе ўваходныя пакеты дадзеных захоўваюць у сваім загалоўку порт (нумар) адрасата (сэрвісу, сервера) усярэдзіне ВМ.
Для minecraft сервераў дэ-факта стандартам з'яўляецца выкарыстанне порта 25565. Дадамо правіла, якое паказвае, што доступ да вашай ВМ праз гэты порт дапусцім.
Пераходзім да акна завяршэння стварэння ВМ, націснуўшы кнопку Агляд і запуск
Настройка пары ключоў SSH для ВМ
Такім чынам, падлучэнне да машыны будзе ажыццяўляцца па пратаколе SSH.
Пратакол SSH працуе наступным чынам: генеруецца пара ключоў (адкрыты і закрыты), на ВМ захоўваецца адкрыты ключ, на кампутары чалавека, які ажыццяўляе падлучэнне да ВМ (кліента) - закрыты. Пры падлучэнні ВМ правярае наяўнасць падыходнага зачыненага ключа ў кліента.
націсніце кнопку Запуск. Перад вамі з'явіцца наступнае акно:
Увядзіце назву пары ключоў (для вашай зручнасці) і націсніце Download key pair. У вас павінен запампавацца .pem файл, які змяшчае ў сабе ваш закрыты ключ. Націсніце кнопку Launch instances. Толькі што вы стварылі віртуальную машыну, на якой будзе падняты сервер.
Атрымліваем статычны IP
Цяпер нам трэба атрымаць і прывязаць статычны IP да нашай ВМ. Для гэтага меню знаходзім укладку Эластычныя IP і пераходзім па ёй. На ўкладцы націскаем кнопку Allocate Elastic IP address і атрымліваем статычны IP.
Цяпер атрыманы IP-адрас трэба прывязаць да нашай ВМ. Для гэтага выберам яе са спісу і ў меню Дзеянні выберам Associate IP address
Далей, прывяжам ВМ да нашага IP-адрасу
Гатова!
Заходзім на ВМ
Цяпер, калі ВМ настроена і IP-адрас прывязаны, падключымся да яе і ўсталюем наш minecraft сервер.
Для падлучэння да ВМ па SSH скарыстаемся праграмай PuTTY. Адразу ўсталюеце PuTTYgen з гэтай жа старонкі
Пасля ўстаноўкі PuTTY адкрыйце яго. Цяпер неабходна наладзіць падлучэнне.
Ва ўкладцы сесія вылучыце тып падключэння SSH, порт 22. Назавіце імя для падлучэння. Імя хаста для падлучэння па SSH уяўляе з сябе радок тыпу: имя_пользователя@публичный_dns.
Імя карыстальніка ў AWS для CentOS па змаўчанні цэнтас. Ваш публічны DNS можна паглядзець тут:
Ва ўкладцы SSH -> Auth укажыце ваш закрыты SSH-ключ. Ён захоўваецца ў файле .pem, які мы спампоўвалі раней. Але PuTTY не ўмее працаваць з файламі .pem, яму патрэбен фармат .ppk. Для канвертавання скарыстаемся PuTTYgen. Інструкцыя па канвертацыі з сайта PuTTYgen. Атрыманы файл .ppk Захаваем і пакажам тут:
Злучаемся з ВМ, адкрыўшы злучэнне кнопкай адкрыты.
Віншую! Толькі што мы падключыліся да кансолі вашай ВМ. Засталося падняць на яе наш сервер.
Ўстаноўка і настройка 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, захаваўшы змены.
Цяпер запусцім firewall і ўключым яго ў аўтазагрузку:
Праглядзіце змесціва тэчкі пры дапамозе каманды ls, пераканайцеся, што файлы запампаваны.
Запусцім файл сервера. Цяпер сервер не будзе працаваць: ён створыць усе неабходныя для працы файлы, і пасварыцца на тое, што вы не пагадзіліся з умовамі ліцэнзіі EULA. Прымем умовы, адкрыўшы файл eula.txt
Нетутэйша час запускаць сервер. Як я ўжо сказаў, сервер запускаецца прама з кансолі, але калі мы закрыем асноўную кансоль - працэс сервера будзе спынены. Таму створым яшчэ адну кансоль:
Сервер запускаецца каля 45 секунд, не перапыняйце працэс. Калі сервер будзе ініцыялізаваны і запушчаны, вы ўбачыце нешта накшталт:
Віншую! Толькі што вы паднялі і запусцілі свой minecraft сервер. Цяпер важна правільна выйсці з другой кансолі, каб яна працягнула працу з запушчаным серверам. Для гэтага націсніце Ctrl+A, затым D. Вы павінны апынуцца ў асноўнай кансолі і ўбачыць паведамленне тыпу [detached from 1551.pts-0.ip-172-31-37-146]. Калі вам спатрэбіцца вярнуцца ў кансоль, у якой запушчаны сервер, выкарыстоўвайце screen -r
Цяпер вы можаце адключацца ад сваёй ВМ. Ваш сервер будзе даступны па статычным IP-адрасу, які мы атрымлівалі раней, на порце 25565.
Атрымліваецца, адрас для ўваходу на сэрвер будзе <ваш_статический_IP>:25565.
Заключэнне
Па гэтай інструкцыі вы зможаце падняць бясплатны minecraft сервер з выдзеленым IP без працы. Артыкул быў напісаны максімальна простай мовай і разлічаны на неспецыялістаў. У сувязі з гэтым, цікава пачуць каментарыі захопленых, бо пры спрашчэнні матэрыялу можна дапусціць фактычныя памылкі ў тэрміналогіі.