Здравей, Хабр! По-скоро, непознати, които търсят как да настроят Minecraft сървър за игра с приятели.
Статията е предназначена за непрофесионалисти, несистемни администратори, изобщо, не за основната аудитория на Хабр. В статията има стъпка по стъпка инструкция за създаване на Minecraft сървър с фиксирен IP, адаптирана за хора, които не са свързани с ИТ. Ако това не ви представлява интерес, може да пропуснете статията.
Какво е сървър?
И така, какво е сървър? Ако се опираме на понятието "сървър" като компонент на софтуера, то сървърът представлява програма, която може да приема, обработва и предава данни от потребители (клиенти), които са свързани с този сървър. На примера на сайт — сайтът се намира на определен уеб-сървър, до който имате достъп чрез браузър. В нашия случай — Minecraft сървърът генерира свят, към който се свързват играчите (клиенти), които могат да ходят, да чупят блокове и т.н. За свързването на играчите и техните действия отговаря Minecraft сървърът.
Очевидно е, че сървърът трябва да работи на компютър (машина). Можете да настроите сървър на домашния си компютър, но в такъв случай:
- Поставяте под заплаха сигурността на собствения си компютър, като отваряте портове.
- Сървърът ще натовари компютъра ви, което може да затрудни работата с него.
- Не можете да поддържате домашния компютър в работно състояние 24/7: понякога го изключвате, понякога компютърът ви губи свързаност с интернет и т.н.
- За достъп до вашия сървър от външния свят ще трябва да се обръщате към компютъра по IP адрес, който при "домашните" интернет доставчици е динамичен, т.е. той може да се променя на всеки 2-3 дни по причини, които не зависят от вас.
И как да решим тези проблеми?
Решението на всички изброени проблеми е използването на виртуална машина с фиксиран, т.е. неизменен IP адрес.
Сложна терминология? Нека да разберем.
Да се обърнем към Уикипедия.
Виртуална машина (VM, от англ. virtual machine) — софтуерна и/или хардуерна система, която емулира хардуерна платформа...Ако го обясним на много опростен език — това е компютър в компютър. На него също може да се инсталира операционна система и да се работи с него, както с обикновен компютър.
Къде ще я намерим?
Отговорът е прост — Това е платформа, която предлага много различни облачни услуги, полезни за всички, които работят с уеба и не само. За създаване на minecraft сървър, идеално подхожда един от продуктите на AWS — Amazon EC2 — облачна виртуална машина, която е налична 24/7. AWS предлага минимална виртуална машина (10GB SSD, 1GB RAM) безплатно за година, освен това, предоставя възможност за свързване на безплатен статичен IP адрес за постоянен достъп до вашата виртуална машина по един и същ адрес.
Създаваме и настройваме ВМ
Отидете на сайта и се регистрирайте. След това отидете в консолата за управление.

В консолата сред услугите намерете EC2 и преминете към него.
Важно е да изберете дата център, иначе казано, мястото, където се намират сървърите на Amazon. Изборът трябва да се направи в зависимост от вашето местоположение, тъй като скоростта на комуникация в интернет е различна, и трябва да изберете дата център, с който комуникацията от вашия град ще бъде максимално бърза.

Препоръчвам да използвате услугата , която измерва скоростта на предаване на пакети с други градове.
В моя случай (г. Москва) ми подхожда ирландският дата център.
Време е да създадете виртуална машина. За целта отидете на таба Launch instance

Нека започнем конфигурирането на ВМ.
1) Изберете образ на операционната система. За създаване на сървъри, linux е много удобен, ние ще използваме дистрибуцията CentOS7
Трябва да отбележа, че графична среда на вашата виртуална машина няма да има, достъпът до машината ще се осъществява чрез конзолата. Тя предполага управление на ВМ посредством команди, а не компютърна мишка. Не се страхувайте от това: това не трябва да ви спира сега или да се отказвате от идеята да създадете свой minecraft сървър, тъй като е "твърде сложно". Работата с машината чрез конзолата не е сложна — скоро сами ще се убедите в това.

2) Сега да определим техническата конфигурация на ВМ. За безплатна употреба Amazon предлага конфигурация t2.micro, малко е за полноценен голям minecraft сървър, но е достатъчно да играете с приятели.

3) Останалите настройки оставяме по подразбиране, но спираме на таба Configure Security groups.

Тук е необходимо да настроим достъпа до портовете за minecraft сървъра.
Ако го обясним на прост език, портът е ненегативно число, което показва на кого са адресирани входящите данни от външния свят. На виртуалната машина може да има множество различни услуги и сървъри, затова всички входящи пакети данни включват в заглавието си порта (номер) на получателя (услугата, сървъра) вътре във виртуалната машина.
За сървъри на Minecraft де факто стандарт е използването на порта 25565. Нека добавим правило, което указва, че достъпът до вашата виртуална машина през този порт е разрешен.


Преминаваме към прозореца за завършване на създаването на виртуалната машина, като натиснем бутона 2.1.6. Преглед на всички настройки
Настройка на SSH ключова двойка за виртуалната машина
И така, свързването към машината ще се осъществява по протокол SSH.
Протоколът SSH работи по следния начин: генерира се ключова двойка (открит и затворен), на виртуалната машина се съхранява откритият ключ, а на компютъра на лицето, което се свързва с виртуалната машина (клиента) — затвореният. При свързване виртуалната машина проверява наличието на подходящ затворен ключ при клиента.
Натиснете бутона 2.1.7. Създаване на ключове за достъп. Пред вас ще се появи следното прозорче:

Въведете името на ключовата двойка (за ваше удобство) и натиснете Download key pair. Трябва да изтеглите .pem файл, който съдържа вашия затворен ключ. Натиснете бутона Launch instances. Току-що създадохте виртуална машина, на която ще бъде активиран сървър.
Получаване на статичен IP
Сега трябва да получим и свържем статичен IP адрес с нашата виртуална машина. За целта, в менюто намираме раздела Elastic IPs и преминаваме към него. В раздела натискаме бутона Allocate Elastic IP address и получаваме статичен IP.

Сега полученото IP трябва да бъде свързано с нашата виртуална машина. За целта изберете я от списъка и в менюто Действия изберете Associate IP address

След това ще свържем виртуалната машина с нашия IP адрес.

Готово!
Влизаме във виртуалната машина
Сега, когато виртуалната машина е настроена и IP адресът е свързан, ще се свържем с нея и ще инсталираме нашия Minecraft сървър.
За свързване с виртуалната машина по SSH, използвайте програмата . Веднага инсталирайте PuTTYgen от същата страница
След инсталирането на PuTTY, отворете го. Сега е необходимо да настроите връзката.

- На таба Session изберете типа на връзката SSH, порт 22. Въведете име за връзката. Името на хоста за свързване по SSH е стринг от типа:
име_потребителя@публичен_dns.
Името на потребителя в AWS за CentOS по подразбиране е centos. Вашият публичен DNS може да се види тук:

Получих стринг centos@ec2-54-246-186-12.eu-west-1.compute.amazonaws.com
- На таба SSH -> Auth въведете вашия затворен SSH ключ. Той се съхранява в файл
.pem, който изтеглихме по-рано. Но PuTTY не може да работи с файлове.pem, необходим е формат.ppk. За конвертиране ще използваме PuTTYgen. . Полученият файл.ppkЩе го запазим и посочим тук:

- Свързваме се с ВМ, отваряйки връзката с бутона Open.
Поздравления! Току-що се свързахме с конзолата на вашата ВМ. Остава само да стартираме нашия сървър на нея.
Инсталиране и конфигуриране на minecraft сървър
Нека започнем настройката на нашия сървър. Първо, трябва да инсталираме няколко пакета на нашата ВМ.
sudo yum install -y wget mc iptables iptables-services java screenНека разгледаме за какво служи всеки от пакетите.
- wget — утилита за изтегляне на файлове в linux. С нея ще изтеглим файловете на сървъра.
- mc — консолен текстов редактор. Отличава се с простота и удобство за неподготвения потребител.
- iptables — утилита за управление и настройка на firewall, с нея ще отворим порт за сървъра на нашата ВМ.
- java — minecraft работи на java, така че тя е необходима за работата на сървъра
- screen — прозоречен мениджър за linux. Той ще ни позволи да дублираме нашата конзола за стартиране на сървъра. Факт е, че сървърът трябва да бъде стартиран през конзолата; ако се отключите от вашата ВМ, процесът на сървъра ще бъде спрян. Затова ще го стартираме в отделен прозорец на конзолата.
Сега ще настроим firewall.
Междувременно (firewall) — софтуерен или софтуерно-апаратен елемент на компютърната мрежа, който контролира и филтрира мрежовия трафик, преминаващ през него, в съответствие с установените правила. (Wikipedia)
Просто казано: представете си крепостен град. Непрекъснато е атакуван отвън, докато в града протича нормален живот. За достъп до града в стената на крепостта има врати, пред които стоят охранители и проверяват по списъците, дали може да пуснат този човек в крепостта. Ролята на стената и вратите в компютърните мрежи изпълнява firewall.
sudo mcedit /etc/sysconfig/iptablesТоку-що създадохме конфигурационен файл за firewall. Нека го попълним със стандартните конфигурационни данни, включвайки правило за порта 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, запазвайки промените.

Сега ще стартираме защитната стена и ще я добавим в автоматичното зареждане:
sudo systemctl enable iptables
sudo systemctl restart iptablesФайловете на сървъра ще се съхраняват в отделна папка, ще я създадем, ще преминем в нея и ще изтеглим файловете на сървъра. За това трябва да използваме wget
mkdir minecraft
cd minecraft
wgetНеобходимо е да намерите директен линк за изтегляне .jar файла на сървъра. За пример, линк към файла на сървъра версия 1.15.2:
wget https://launcher.mojang.com/v1/objects/bb2b6b1aefcd70dfd1892149ac3a215f6c636b07/server.jarПрегледайте съдържанието на папката с помощта на команда ls, уверете се, че файловете са изтеглени.

Нека стартираме файла на сървъра. Сега сървърът няма да работи: той ще създаде всички необходими за работата файлове и ще се оплаче, че не сте се съгласили с условията на лиценза EULA. Приемете условията, като отворите файла eula.txt
sudo mcedit eula.txtПотвърдете съгласието си, като промените записа на:
eula=trueОтворете файла server.properties: това е конфигурационен файл на вашия сървър.
В него задължително трябва да се направи следната промяна:
online-mode=falseОстаналите настройки са по ваше усмотрение.
Стартиране на сървъра
Време е да стартирате сървъра. Както вече споменах, сървърът се стартира директно от конзолата, но ако затворим основната конзола — процесът на сървъра ще бъде спрен. Затова ще създадем още една конзола:
screenВ тази конзола ще стартираме сървъра:
sudo java -Xms512M -Xmx1024M -jar .jar --noguiСървърът стартира около 45 секунди, не прекъсвайте процеса. Когато сървърът бъде иницииран и стартиран, ще видите нещо като:

Поздравления! Току-що стартирахте и пуснахте вашия.minecraft сървър. Сега е важно да излезете правилно от втората конзола, за да продължи работата с стартирания сървър. Затова натиснете Ctrl+A, след това D. Трябва да се окажете в основната конзола и да видите съобщение като [отделен от 1551.pts-0.ip-172-31-37-146]. Ако трябва да се върнете в конзолата, в която е активен сървърът, използвайте screen -r
Сега можете да се отделите от вашата ВМ. Вашият сървър ще бъде достъпен по статическия IP адрес, който получихме по-рано, на порт 25565.

Така адресът за достъп до сървъра ще бъде :25565.
Заключение
Съгласно това ръководство, ще можете лесно да настроите безплатен Minecraft сървър с отделен IP адрес. Статията е написана с максимална простота и е насочена към неспециалисти. Поради тази причина, интересно е да чуя коментарите на опитни специалисти, тъй като при опростяването на материала могат да бъдат допуснати фактически грешки в терминологията.
Източник: habr.com
