Перейти к содержимому

Как сделать чтобы сервер работал

  • автор:

Домашний веб-сервер для чайников

Привет, Хабр! Относительно недавно после пары лет перерыва в айти, потраченных на изучение японского языка, мне пришлось срочно обновлять свои знания на работе. Ну знаете, искать возможности исполнить все хотелки начальника, как и положено эникею. Меня ждало много увлекательных открытий, но при этом, как водится, и немало боли и борьбы с непонятками. Docker, контейнеры, реверс DNS и реверс прокси, получение TLS сертификатов. В какой-то момент я наконец дошёл до удобного решения, которым я теперь хочу поделиться.

В своё время домашний сервер очень облегчил бы мне понимание Docker’а, да и удобство работы с ним неслабо бы повысил. Поэтому возникла идея написать эту статью, после прочтения которой любой человек даже с поверхностными знаниями в информационных технологиях сможет поставить себе постоянно доступный домашний сервер на базе Docker Swarm с удобной веб-мордой, простым получением TLS-сертификатов и Heroku-подобным функционалом (для чего будем использовать PaaS CapRover).

Статья, в общем-то, рассчитана на новичков, обладающих какими-то техническими знаниями — школьников старших классов, студентов и просто любителей — а потому вряд ли будет интересна серьёзным профессионалам.

Зачем оно нужно?

Ну как минимум потому что это круто, иметь домашний сервер! Да и настраивать всё это дело интересно. При этом он уже за месяца три отобьёт свою стоимость в сравнении с VPS’ом схожей конфигурации. Ну и наконец он просто радует глаз и миленький.

Что же до использования — иметь возможность развернуть в пару кликов дома Docker-контейнеры сразу в формате http://контейнер.мой.домен/ и в ещё один клик подключить к нему SSL неплохо упрощает жизнь. Сейчас всё больше и больше разнообразных приложений и сервисов переезжают в контейнеры и, если вы не любите лишний раз платить большим компаниям, иметь свои аналоги платных сервисов на домашнем сервере это очень удобно.

Ну а удобство для разработчиков и так понятно.

Подготовка

Поскольку мы хотим, чтобы наш домашний сервер был доступен из внешней сети, нужно сделать несколько приготовлений.

Port Forwarding

Схема работы перенаправления портов

Проверьте наличие у вашего маршрутизатора (роутера) опции Fort forwarding/Port mapping/Перенаправление портов. Это не самый безопасный, но самый простой способ дать нашему серверу путь во внешний мир. Убедитесь что 80, 443 и 3000 порты у вас ничем не заняты — именно их вы будете прописывать IP адресу вашего сервера. Возможно в будущем, например, если вы захотите поднять почтовый сервер, вам придётся прописать дополнительные порты, но пока нужно только это.

Если проводить аналогию для понимания перенаправления портов, то представьте работу мамы в детстве. По умолчанию охранник туда не пустит, но стоит только сказать волшебную фразу «Я к маме», как строгий охранник уже пускает и говорит куда пройти. Вот и тут так же, с нашим NAT’ом роутера, только вместо «Я к маме» вы говорите порт, на что вас направляют куда надо.

Так же стоит убедиться, что у DHCP вашего роутера есть возможность зарезервировать выданный IP адрес за MAC. Скорее всего ваш сервер будет стоять включённым всё время и не просрочит свой выданный IP адрес, но подстраховаться никогда не бывает лишним. Если нельзя — выпишите машине статичный IP вне зоны выдачи адресов DHCP. Это сложнее и неудобнее, но тоже вариант (Кто-то даже скажет что так даже лучше сделать. Но я сейчас за простоту).

Нету этих опций? Возможно ещё не всё потеряно. Проверьте базу https://dd-wrt.com/support/router-database/ на наличие вашего роутера и есть ли тема по нему на 4pda. Если и там пусто. Ну, либо сворачивайте это руководство, либо пора купить новый роутер.

Домен

Конечно, ничто не мешает нам обращаться к нашему домашнему серверу и напрямую по IP адресу, но делать так не рекомендуется: и не особо безопасно, и запоминать IP адрес не просто, да и если у вас динамический, меняющийся каждый раз как вы заново подключаетесь к интернету, IP адрес, то запоминать его вообще бессмысленно. Ну и наконец, у нас много сервисов планируется, а чтобы к ним доступ был тупо по IP адресу, придётся их на разные порты навешивать. Оно вам надо?

Именно поэтому мы будем использовать домен.

Ну, знаете, ту самую штуку, которую вы вводите в адресной строке. В результате сможем давать сервисам поддомены для удобства и не страдать. Ну, например https://пароли.мой.домен/ для парольного сервиса или https://почта.мой.домен/ для почты. Удобно, в общем, запоминается. Делать это будет Ngnix под капотом нашего PaaS, при желании всегда можете разобраться в конкретике.

Схема работы обратного прокси Ngnix в случае контейнеров

Рекомендую я, конечно, домен купить. Цены на домены в популярных зонах достаточно либеральные, платить раз в год, регистраторов куча. В плане выбора регистратора я ничего конкретного советовать не буду. Адекватнее всего ориентироваться по цене и отзывам. Разве что маленькое наблюдение: если регистратор требует миллиарды шекелей за такие вещи, как банальное управление DNS записями, то возможно это не очень хороший регистратор и следует посмотреть в другую сторону.

Впрочем если вы только пощупать пришли, то домен можно получить и бесплатно. Есть такой регистратор — Freenom, там можно бесплатно достать домен в зонах .tk, .ml, .ga, .cf или .gq. Правда как часто бывает с чем-то бесплатным, сайт глючный. Если на проверке доменов у вас всё время пишется, что домен занят, попробуйте поставить сразу полный путь. То есть вводите в проверочное поле не мой_домен, а сразу, скажем, мой_домен.tk.

Очевидно, что если что-то досталось бесплатно, то и потерять его легко — отзывы у Freenom в этом плане далеки от хороших. Так что если планируете что-то серьёзное, то лучше домен себе всё-таки купить у регистратора. Однако для маленького домашнего сервера потенциальная потеря домена не критична.

Cloudflare

Тут мы уже входим в пространство вкусовщины. Вам ничто не мешает использовать и редактор DNS записей вашего регистратора или любой другой сервис управления DNS записями домена. Тут, на хабре, вон вообще CloudFlare раком интернета недавно называли. Но с другой стороны, CloudFlare даже в базовой, бесплатной версии имеет достаточно много приятных фишек, которые ваш регистратор скорее всего не предоставляет. Тут и какая-никакая защита от DDoS, кеширование, расширенные возможности управления доступом и так далее и в том же духе. Плюс в одном из следующих пунктов, когда мы поднимем контейнер для DDNS, будет использоваться именно CloudFlare (впрочем настроить DDNS с другим провайдером вроде DuckDNS — задача достаточно тривиальная).

Правда многие фишки пройдут мимо нас, поскольку проксирование у CloudFlare на wildcard-записи (ну, это записи включающие всё пространство имён *.мой.домен) не работает (ну, за бесплатно). Однако ничего не мешает потом, уже для отдельных сервисов, сделать конкретную запись и пожать все плюшки платформы. Ну или ещё лучше, если у вас статический IP адрес, вообще без DDNS обойтись.

Платформа

Физический путь

Удобство физического пути очевидно — стоит отдельная машинка, не мешает основной работе, радует глаз.

Если спросить, что же использовать как платформу, наверняка многие ответят Малинку (то есть Raspberry Pi). На мой взгляд это не самый лучший выбор для данного случая.

Raspberry Pi отлично подходят для самодельных решений разнообразной направленности, но по соотношению цена/производительность не являются каким-либо лидером. И, хотя сейчас уже множество софта доступно под ARM системы, под x86 программы всё-таки чувствуют себя постабильнее.

Кто-то захочет переоборудовать старую машину или собрать на старых Xeon’ах себе компьютер для веб-сервера. И это тоже вариант, хотя по потреблению электроэнергии не оптимальный.

Я же советовал бы купить для данных целей недорогой (или не очень дешёвый, если вы хотите постоянно запускать «тяжёлые» задачи на вашем сервере) мини-пк (иначе называемый неттоп). Доступные варианты с 8 гигабайтами оперативной памяти, четырёхядерным Celeron и SSD на 128 гигабайт можно найти за 150-200 долларов и этого более чем хватит для домашних задач. При этом он будет компактным, тихим, удобным в размещении, достаточно приятно выглядящим и с низким TDP. Даже в самые дешёвые модели обычно можно доставить как минимум один, а порой и два 2,5 дюймовых диска, так что как файловую помойку его, в общем-то, тоже можно использовать. Хотя лучше превратить его в личное облако, а как файловый сервер использовать отдельное NAS-устройство — для отказоустойчивого хранения большого количества данных форм фактор мини-пк не слишком располагает.

Помимо этого, если вы «наиграетесь» и решите, что оно не ваше, такому компьютеру будет легко найти место. Например поставить обратно Windows и отдать маме/тёте Вале из третьего подъезда. Для офисной работы и использования браузера он подойдёт прекрасно.

А если вы за чуточку большую цену взяли мини-пк с несколькими сетевыми портами, то сможете превратить его в невероятно мощный и функциональный маршрутизатор, поставив сверху OpenWRT, PFsense, ClearOS или ещё какую-нибудь систему для роутеров. Ну и вообще альтернатив много, когда и если наиграетесь с предложенным мной вариантом.

Сразу, правда, надо учесть: шансы, что у такой машинки не будет работать Wi-Fi под линуксом, мягко говоря, не самые маленькие. Так что планируйте проводное соединение.

Заранее погуглите, на какую клавишу вызвать boot menu у вашей машинки. А образ для установки, если вы на Windows, лучше всего на флешку записывать программой Rufus.

Виртуальный путь

Если у вас есть просто живой интерес к тому, что и как настроить, определиться надо ли оно или не надо, то настраиваем виртуальную машину.

Тут стоит провести некоторое разграничение в понимании, поскольку дальше у нас будут ещё и контейнеры Docker. Внешне и по структуре они очень похожи, но вот по использованию неплохо так различаются.

Виртуальная машина — это именно то, как оно звучит — компьютер, которой на самом деле не существует, живущий внутри нашего. Её в какой-то мере можно сравнить с картонной коробкой. Её нужно где-то достать, развернуть, заполнить. Она стоит и занимает место, даже если не до конца заполнена. И залезть внутрь этой коробки иначе как сверху достаточно проблематично.

А контейнер — это как пакетик из магазина. Вроде и служит примерно той же цели, что и коробка, но внутрь что-то положить и достать проще, укладывать по-особому не нужно,места много не занимает, и выкинуть не жалко, и продырявить просто. Говоря же чуть более нормальным языком — контейнер это такая недо-виртуалка, которая ведёт себя скорее как процесс программы.

Конкретный гипервизор (ну, программа, где ваши виртуальные машины создаются и управляются) — на ваше усмотрение. Лучше, конечно, использовать гипервизор первого типа (они, как правило, быстрее, поскольку работают “под” операционной системой, а не “над” ней, как гипервизоры второго типа), но нашему серверу это не очень критично.

Внимание, любители всяких игруль, мобильных и не очень, на Windows — большая часть гипервизоров конфликтуют с эмуляторами Android для игр и с некоторыми античит решениями. Нормально только Bluestacks для Hyper-V работает, так что заранее выберите, что вам важнее.

VirtualBox

Для начала распишу для VirtualBox, который доступен на всех основных платформах, хотя и не отличается высокой скоростью.

Нажмите на кнопку New (Создать) для создания новой машины, и, ориентируясь по своей логике, задайте все настройки — если что, то потом всегда сможете поправить. Правда, меньше чем 2 гигабайта оперативной памяти лучше не ставить.

После создания машины войдите в её настройки. В разделе Storage (Носители) добавьте ваш образ к дисководу (синяя иконка), а в разделе Network (сеть) поменяйте тип подключения на Bridged Adapter (Сетевой мост) и выберите сетевую карту, по которой к вам приходят интернеты, после чего сохраните.

Hyper-V

Поскольку сам я в основном пользуюсь Windows, то предпочитаю использовать Hyper-V — встроенный в Pro версию системы гипервизор первого типа. Если вы пользователь Windows, то вам я тоже его советую — как и положено гипервизору первого типа, он весьма радует своей производительностью.

Чтобы использовать Hyper-V, активируйте его в Turn Windows Features on or off (Включение или отключение компонентов Windows) и перезагрузите компьютер. Вероятно, вам ещё придётся включить аппаратную виртуализацию в BIOS, если вы ещё не делали это. Также необходимо создать в Hyper-V manager (Диспетчер Hyper-V) сетевой интерфейс, ведущий во внешнюю сеть. Кликните справа на Virtual Switch Manager (Диспетчер виртуальных коммутаторов), выберите External (Внешний) и нажмите Create Virtual Switch (Создать виртуальный коммутатор). Далее в настройках External Network (Внешняя сеть) выберите сетевую карту, по которой к вам приходят интернеты, а потом сохраните.

После этого создайте новую машину в Hyper-V manager (но только не создавайте «быструю» машину, там всё не слава богу), а потом пройдите в её свойства и отключите Secure Boot (если машина 2-ого поколения). Остальные параметры по вкусу, но меньше 2 гигабайт оперативной памяти лучше не ставить. Ну и как сетевой интерфейс, очевидно, нужно поставить свежесозданный.

Установка и настройка системы

При выборе дистрибутива для установки у нас есть некоторый выбор (Но свериться с поддерживаемыми платформами на https://docs.docker.com/engine/install/ не помешает). Официально докер рекомендуется ставить на Ubuntu, я обычно предпочитаю Debian, но нам в целом не принципиально. Однако возможные подводные камни я распишу только для этих двух дистрибутивов.

И да, если можете, то лучше напрямую смотрите инструкции. А то информация в интернете имеет привычку устаревать и есть шанс, что к моменту, как вы это читаете, всё уже десять раз поменялось.

В случае с Ubuntu скачайте Ubuntu Server — на сервере графический интерфейс ни к чему, вы даже не будете подключать к нему монитор после изначальной установки. При установке важный момент — НЕ отмечайте Docker в качестве установки по умолчанию. Иначе он поставится как snap пакет, будет глючить, тупить и вообще, зачем вам лишние проблемы, не дружите со snap’ами, это плохая компания.

После установки системы копипастим по одной эти строчки (вы же уже подключились по SSH, правда ведь? Если нет, то чуть подальше будет инструкция) или вбиваем вручную:

sudo apt-get update sudo apt-get install \ ca-certificates \ curl \ gnupg \ lsb-release curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg echo \ "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu \ $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null sudo apt-get update sudo apt-get install docker-ce docker-ce-cli containerd.io

При установке Debian не надо отмечать web server, поскольку в качестве него у нас Nginx внутри контейнера Docker’а с нашим PaaS работать будет.

После установки системы копипастим эти строчки:

sudo apt-get update sudo apt-get install \ ca-certificates \ curl \ gnupg \ lsb-release curl -fsSL https://download.docker.com/linux/debian/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg echo \ "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/debian \ $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null sudo apt-get update sudo apt-get install docker-ce docker-ce-cli containerd.io

В общем скачайте что вам нравится, запишите на флешку при физическом пути, подключите к виртуалке при виртуальном и давайте, устанавливайте по инструкциям.

Помимо того, чтобы вводить команды вручную, вы можете использовать Ansible или другие системы для развёртывания, но данное руководство их проигнорирует, поскольку ничего сложного мы не делаем. Просто знайте, что если вам потребуется однотипно настраивать несколько машин, то можно по ssh удобненько это делать через Ansible. Но ssh игнорировать всё же не стоит, ведь как минимум подключившись к своей машине по нему, вы сможете тупо копипастить все команды из руководств, а не вводить вручную.

Ansible это достаточно важный инструмент для Linux-админа и, если вы планируете сдавать или хотя бы просто учиться на сертификации от RedHat, то он вам понадобится. Ну так, на будущее.

Ssh клиентов великое множество, я обычно пользуюсь встроенным в Windows OpenSSH (хотя он встроен, но в старых версиях Windows 10 может быть по-умолчанию отключен. Включается в Turn Windows Features On and Off (Управление дополнительными компонентами)). Просто открываете PowerShell и пишите:

ssh логин_в_linux@IPшник_сервера

А после вводите пароль своего пользователя. Тут стоит отметить, что использовать ssh с паролем это не особо безопасно (но зато проще всего), и, если у вас будет желание с этим разобраться, то лучше настроить ssh ключ.

Систему мы настроили, но не спешите ставить CapRover. Сначала вернёмся к роутеру. Найдите в нём ваш сервер и зарезервируйте его IP адрес в DHCP. Ну или поменяйте его на что-нибудь приятное и зарезервируйте. У вас есть чувство прекрасного, я уверен. После этого пропишите перенаправление с 80, 443 и 3000 портов маршрутизатора на 80, 443 и 3000 порты нашего сервера.

Вот пример того, как оно выглядит в моём роутере TP-Link:

Теперь идём к домену. Войдите в CloudFlare или DNS редактор вашего регистратора и создайте следующую запись:

Тип: A
Хост: *.ваш.домен
Запись: указывает на ваш внешний IP адрес

Если вы не знаете как узнать ваш внешний IP адрес, то посмотрите в настройках интерфейса, роутера, где угодно. Ну или наберите в поисковике что-нибудь вроде «мой IP», если копаться не хочется.

Можете сразу не отходя от кассы создать токен, если планируете динамически обновлять DNS при изменении вашего IP адреса.

Для этого пройдите по ссылке https://dash.cloudflare.com/profile/api-tokens и создайте токен со следующими свойствами:

Zone — Zone Settings — Read
Zone — Zone — Read
Zone — DNS — Edit

Include — All zones

Сохраните длинный Cloudflare API токен, но далеко не убирайте.

Всё, теперь заходим на сервер и пишем волшебную команду, которая поднимает нашу систему для управления контейнерами:

docker run -p 80:80 -p 443:443 -p 3000:3000 -v /var/run/docker.sock:/var/run/docker.sock -v /captain:/captain caprover/caprover

Если вы плохо знакомы с Docker’ом, то тут мы запускаем наш первый контейнер — небольшой PaaS CapRover. Помимо этого мы даём портам в контейнере путь на волю (-p 80:80 -p 443:443 -p 3000:3000), позволяем контейнеру иметь доступ к демону Docker на хост-машине (-v /var/run/docker.sock:/var/run/docker.sock) и делаем так, чтобы папка из контейнера хранила своё содержимое в папке на хосте (-v /captain:/captain). Если так не сделать, то при перезапуске контейнера всё содержимое: настроечные файлы и другие данные нашего контейнера, потеряются навсегда. Так что никогда не забывайте указывать команду -v при работе docker в консоли, чтобы потом не плакать у разбитого корыта. Ну а caprover/caprover — это образ на Docker Hub.

Подождите немного и зайдите либо по айпи адресу, либо по адресу вашего домена:3000 (например http://мой.домен:3000), введите пароль captain42 . После этого тут же введите в нижнее поле ваш домен и нажмите Update Domain. Можете также нажать на Enable HTTPS, но вот на Force HTTPS не надо нажимать — Cloudflare и так трафик у вас (если вы оставили рекомендуемые настройки) с http на https переводит. Конфликтов на этом поводе нам не надо.

Настала пора запустить наш первый контейнер внутри PaaS.

Перейдите в веб панели в раздел Apps, нажмите на One-Click Apps/Database, найдите CloudFlare DDNS. Это достаточно простой контейнер, весь смысл которого сводится к тому чтобы раз в пять минут проверять, изменился ли IP адрес сервера, и, если изменился, обновлять DNS запись на CloudFlare.

После того как вы нажали на него, вы увидите много опций для ввода. Вообще говоря, чтобы всё заработало нам достаточно просто указать наш сохранённый токен CloudFlare и задать какое-нибудь имя. Но давайте всё-таки разберёмся, что именно мы видим.

А видим мы опции ввода так называемых переменных окружения. Не всех правда, а только тех, которые указал автор конфигурационного файла для CapRover. Значения из этих переменных контейнер может достать и использовать в своих целях, проще говоря через них задаётся начальная конфигурация контейнера.

Так вот, задайте какое-нибудь имя, вставьте ранее сохранённый токен и нажмите Deploy. Контейнер заработал. Теперь можете делать что угодно!

Чуть сложнее

Этот контейнер был простым, без веб доступа, но что у тех, к которым мы будем иметь доступ? Да в общем всё так же, разве что ещё можно включить https, задать домен, указать HTTP порт контейнера и включить websocket. Попробуйте, это просто и интересно!

Использование

И вот наконец у нас всё стоит и работает.

Зачем оно вам? Ну, если вы до сих пор не знаете — придумайте. Для установки в один клик в CapRover доступно множество приложений для повседневного использования. Например менеджер паролей Vaultwarden. Торрент-клиент Qbittorrent. Сервер Minecraft. Боты для Discord. Вариантов много.

Я, например, держу стол для игры в DnD с друзьями Foundry VTT, веб-интерфейс для пробуждение от спячки моего домашнего компьютера (чтобы потом подключаться по RDP), свой маленький гит на базе Gitea, удобный фронтэнд для чтения Reddit’а libReddit, веб-архив для закладок и ещё кучу всякой всячины для тестов и изучения.

Ничто не мешает вам самому поэкспериментировать с контейнерами, которых в списке ещё нет, а если результат будет удовлетворительным — опубликовать свой конфиг на Github среди других приложений для установки в один клик.

В самом начале мы установили SSH, так что если вы захотите более тонкой настройки, подключите и тыкайтесь. Советую также зайти на SSH через VS Studio Code с установленным расширением Docker’а, и установить его же сразу там на ваш сервер. Теперь наблюдать, управлять и чистить мусор в контейнерах гораздо удобнее.

Что дальше?

Возможно, вам уже хватило, вы поняли что это не ваше и вообще. Тоже неплохой результат. Возможно, вы просто хотели домашний сервер и получили его — опять же, к результату мы пришли. Или же вы хотите большего — и это тоже прекрасный результат! Надо понимать, что хотя Docker Swarm уже несколько протух, для небольших нагрузок, вроде домашнего использования, он подходит на отлично. А если вам мало, то, разобравшись как и что тут работает, вы можете медленно начать своё движение к изучению kubernetes.

Что можно посоветовать конкретного? Ну, если Docker вам интересен и хочется в нём разобраться поглубже, то вводный цикл статей от Microsoft достаточно приятно и наглядно объясняет как и что оно.

Если хотите покрупнее брать — и в Hyper-V получше разобраться, и в контейнерах и чуточку затронуть кубер, то вот ещё у них есть неплохие материалы.

Не, не, вы не подумайте, я хоть и виндовый админ (ну хорошо-хорошо, эникей а не админ), но не сказать чтобы прям топлю за Microsoft, просто материалы у них бесплатные и достаточно толковые, на мой взгляд.

Коли от Microsoft тошнит — ищите курсы. В англоязычных интернетах с этим проще — идёшь на Udemy или Pluralsight и выбираешь курс по теме, где люди поменьше в комментах бугуртят на качество, и в бой. С русскоязычными курсами посложнее в выборе, но кто ищет — тот найдёт.

Ну и наконец если в целом вся эта тема с сервисами на своём домашнем сервере вам интересна, то вот отличный список selfhosted решений на все случаи жизни.

В общем, да пребудет с вами IT сила!

Как сделать, чтобы nodeJs сервер работал без активированной консоли?

Дали пробную неделю на VPS хостинг, поставил там NodeJS, но проблема в том, что он работает, только тогда, когда активирована консоль. Как сделать, чтобы он работал бесконечно?

Отслеживать
задан 28 авг 2012 в 7:14
2,468 22 22 золотых знака 50 50 серебряных знаков 96 96 бронзовых знаков

6 ответов 6

Сортировка: Сброс на вариант по умолчанию

С момента последнего ответа прошло уже три года. Node.js существенно «повзрослел» за это время, так что вопрос не потерял своей актуальности.

Думаю стоит упомянуть еще несколько вариантов, которые отсутствуют в других ответах.

Forever

В экосистеме Node.js существует пакет forever. Его можно использовать как порождающего демона для вашего приложения. Из плюсов этого решения можно отметить простоту и возможность не писать дополнительный код. Кроме того, можно настроить forever так, чтобы он автоматически перезапускал приложение при его падении. Из минусов — необходимость тащить в систему node.js скрипт-демон, который нужно устанавливать глобально. В ряде случаев это может оказаться неприемлемым. Запуск приложения, с использованием этого решения выглядит так:

forever start app.js 

а его остановка:

forever stop app.js 

PM2

Другим популярным решением из экосистемы Node.js является менеджер процессов PM2. Как и в случае с forever, pm2 это глобальный установленный node.js процесс-демон (со всеми плюсами и минусами). После его установки запуск приложения осуществляется командой:

pm2 start app.js 

а его остановка:

pm2 stop app.js 

init.d

Можно написать обычный init.d скрипт для вашего приложения. Этот путь используют все нормальные службы Linux. Если говорить о плюсах этого решения, то ваше приложение будет запускаться и останавливаться самой системой, нет необходимости устанавливать лишний процесс демон. Из минусов — вам перезапускать приложение при падении в ручную (или с помощью специальных утилит). Так же вам придется написать сам init.d скрипт. За основу можно взять, например, вот это решение. Запуск приложения, с использованием этого решения выглядит так

service app-service-name start 

а его остановка

service app-service-name stop 

Создание и настройка сервера

Данная статья знакомит читателя с особенностями работы чистого (без модификаций) сервера Minecraft текущей версии. В отличие от клиента, распространяется бесплатно через официальный сайт игры и работает со всеми версиями клиента (пиратской и официальной). Информация в этой статье была приведена в соответствие с версией 1.15.2.

  • 1 Подготовка к работе
    • 1.1 Загрузка необходимого ПО
    • 2.1 Знакомство с параметрами сервера
    • 2.2 Описание параметров
    • 3.1 Подключение к собственному серверу
    • 3.2 Сервер в локальной сети
      • 3.2.1 Подключение к локальному серверу
      • 3.2.2 Определение внутреннего IP-адреса
      • 3.3.1 Подключение к серверу
      • 3.3.2 Сервер через VPN
      • 4.1 Описание GUI
      • 4.2 Консольный режим
      • 4.3 Описание доступных команд

      Подготовка к работе

      Загрузка необходимого ПО

      Для работы сервера требуется установить на Ваш ПК пакет Java. Его можно скачать на этой странице. Но если клиент Minecraft запускается, то это индикатор того, что данный пакет уже установлен на компьютер. (Теперь minecraft можно установить через установщик, который сам скачивает для себя Java. В этом случае вам все равно нужно установить Java.)

      Для того чтобы скачать сервер, требуется перейти на страницу загрузки официального сайта. Нажмите на соответствующую ссылку и сохраните файл в отдельной директории, которая будет основной для Вашего сервера. При создании сервера на Linux или OS X основной директорией сервера является рабочая директория; используйте команду cd /путь/до/сервера/ .

      Создание и настройка сервера

      Знакомство с параметрами сервера

      Когда загруженный файл оказался в будущей папке сервера, запустите его и подождите, пока закончится процесс генерации уровня. Вы увидите, что в Вашей папке появилось несколько новых файлов и подпапок.

      Рассмотрим файл server.properties. Данный файл содержит в себе все основные параметры сервера. Откройте этот файл при помощи любого текстового редактора. Вы увидите примерно такое содержимое:

      #Minecraft server properties #Wed Apr 08 20:35:49 MSK 2020 spawn-protection=16 max-tick-time=60000 query.port=25565 generator-settings= sync-chunk-writes=true force-gamemode=false allow-nether=true enforce-whitelist=false gamemode=survival broadcast-console-to-ops=true enable-query=false player-idle-timeout=0 difficulty=easy broadcast-rcon-to-ops=true spawn-monsters=true op-permission-level=4 pvp=true snooper-enabled=true level-type=default hardcore=false enable-command-block=false network-compression-threshold=256 max-players=20 max-world-size=29999984 resource-pack-sha1= function-permission-level=2 rcon.port=25575 server-port=25565 server-ip= spawn-npcs=true allow-flight=false level-name=world view-distance=10 resource-pack= spawn-animals=true white-list=false rcon.password= generate-structures=true online-mode=true max-build-height=256 level-seed= prevent-proxy-connections=false use-native-transport=true motd=A Minecraft Server enable-rcon=false

      Описание параметров

      Параметр Значения По умолчанию Описание
      allow-flight true / false true Разрешает игроку совершать полёты по миру Minecraft. Эта опция действует только на полёты в режиме Выживание и оказывает эффект только при наличии соответствующего плагина (например, Flight). На полёты в режиме Творчество никак не влияет.
      allow-nether true / false true Данный параметр определяет возможность перехода в Нижний мир. Если отключить, все игроки, находившиеся в Нижнем мире, будут перемещены в обычный. Не влияет на переход в Край.
      broadcast-console-to-ops true / false true Позволяет вывести результат выполнения команды в консоли всем операторам сервера.
      broadcast-rcon-to-ops true / false true Позволяет вывести результат выполнения команды в консоли RCON всем операторам сервера.
      announce-player-achievements true / false true Данный параметр определяет, должен ли сервер отправлять в чат сообщения о получении достижений.
      difficulty Строка easy Уровень сложности: peaceful — Мирный easy — Лёгкий normal — Нормальный hard — Сложный
      enable-command-block true / false false Позволяет использовать командный блок. Эта опция не генерируется при первой загрузке, а появляется при первой попытке использования командного блока.
      enable-jmx-monitoring true / false false Позволяет включить MBean (функция в Java, позволяющая предоставлять определенные статистические данные для мониторинга) с объектом net.minecraft.server:type=Server и двумя атрибутами:

      averageTickTime — среднее время на совершение одного тика (в миллисекундах),

      tickTimes — время cовершения порядка 100 последних тиков (в наносекундах).

      Чтобы включить выполнение JMX в Java, необходимо задать соответствующие флаги запуска JVM. Более подробно описано в этой документации

      Если значение установлено на false, то в меню сетевой игры работающий сервер будет отображаться как «оффлайн», однако также сможет принимать подключения игроков.

      Это настройка выражается в процентах (100% по умолчанию). Например, установка этого значения на 50 уменьшит дальность рендера энтити вдвое. Представляет собой серверный аналог изменения прорисовки у клиента.

      При выборе порта вы можете руководствоваться данным списком стандартных портов, которые могут принадлежать другим сетевым службам и программам.

      Когда эта опция включена, сервер кикнет игрока только после того, как автоматически перезагрузит вайтлист для поиска изменений.

      false — Игроки не будут отключены от сервера, если их нет в вайтлисте. true — Игроки будут отключены от сервера, если их нет в вайтлисте.

      Требуется проверка перевода.

      Устанавливает границу мира на выбранном радиусе, считая от нулевой координаты. Установка границы, выходящей за пределы мира не сделает ничего.
      • Если указан радиус в 1000 блоков, то вы получите рабочее пространство 2000 х 2000 блоков.
      • Если указан радиус в 4000 блоков, то вы получите рабочее пространство 8000 х 8000 блоков.

      Примечание: интернет требует, чтобы пакеты размером менее 64 байтов дополнялись до 64 байтов. Таким образом, установка значения ниже 64 может быть нецелесообразной. Также не рекомендуется превышать 1500 байт.

      -1 — полностью отключить сторожевой таймер (эта опция была добавлена в 14w32a)

      Первая строчка «#Minecraft server properties» необходима для определения сервером, что это именно тот действующий файл server.properties, который он будет использовать в данный момент.

      Вторая строчка «#Thu Jul 07 16:45:52 MSK 2016» описывает даты последнего изменения сервером данного файла. Важно помнить, что сервер берёт те дату и время, которые установлены операционной системой.

      Непосредственно перед началом игры на сервере вы можете настроить указанные выше параметры сервера.

      • Поле server-ip лучше всего оставить пустым — игра сама определит и настроит данный параметр. Но если вы хотите присвоить серверу особый IP-адрес, то можете изменить этот параметр.
      • Поле gamemode указывает на игровой режим, который автоматически будет включен всем игрокам, зашедшим на сервер. Игровой режим для конкретного игрока можно сменить во время работы.
      • Если вы включили white-list, сделайте себя оператором или добавьте себя в белый список.
      • При заполнении поля max-build-height неподходящим числом сервер автоматически подбирает ближайшее число, возможное для использования.

      Любое изменение настроек в этом файле требует перезапуск сервера. Кроме того, сервер иногда может записывать изменения в этот файл, поэтому перенастройку лучше производить при отключенном сервере.

      Настройка подключения к серверу

      Стоит отметить, что на сервере могут одновременно играть игроки как из локальной сети, так и из сети Интернет.

      Подключение к собственному серверу

      Если вы держите сервер на том же компьютере, на котором собираетесь играть, для подключения достаточно ввести адрес 127.0.0.1 или localhost . Этот адрес задействует виртуальный сетевой интерфейс (loopback), который доступен всегда, даже если у компьютера нет сетевой карты.

      Если вы не можете подключиться даже через петлевой интерфейс, это повод проверить настройки антивируса и файерволла. Добавьте в исключения Minecraft Server и порт 25565.

      Сервер в локальной сети

      Процесс настройки сервера игры по локальной сети намного проще создания доступного из Интернета, и является более простым в плане возникновения ошибок при подключении к серверу.

      С версии 1.3.1 вы можете открыть свой мир из одиночной игры для локальной сети, для этого достаточно загрузить мир, нажать паузу и выбрать «Открыть мир для локальной сети». Однако, такой способ несколько ограничивает возможности владельца сервера.

      Подключение к локальному серверу

      Чтобы игроки смогли подключится к вашему серверу, их компьютеры должны быть объединены с компьютером-сервером по локальной сети (LAN). В строке ввода IP-адреса сервера они должны написать внутренний IP-адрес компьютера, на котором создан сервер. Локальный IP-адрес желательно должен быть статическим (быть прописанным в настройках сетевого подключения вручную) или привязанным к MAC-адресу.

      В качестве локальной сети может выступать как ваша домашняя локальная сеть, так и локальная сеть провайдера или псевдолокальная сеть (VPN), предоставляемая программами вроде Hamachi.

      Определение внутреннего IP-адреса

      Internal-IP Internal Ip Linux

      Чтобы узнать внутренний IP-адрес сетевой соединения, на котором вы создаете LAN сервер, выполните следующие пункты:

      • Windows
      1. Нажмите комбинацию клавиш на клавиатуре Windows + R
      2. В открывшемся окне «Выполнить» в строке ввода введите cmd
      3. В новом открывшемся окне напишите команду ipconfig

      После этого программа ниже отобразит основные данные про сети, к которым подключен компьютер. Внутренний IP-адрес отвечает строке «IP-адрес» в блоке «Home Network — Ethernet адаптер:».

      • Linux, OS X
      1. Выполните в терминале команду ifconfig
      2. Ваш локальный IP-адрес указан после «inet addr» или «inet» в секции вашего сетевого интерфейса.

      Настройка сервера для игры по Интернету

      Для того, чтобы понять возможность подключения к вашему серверу из Интернета нужно сначала определить тип IP-адреса, который используется. Данная информация может быть размещена в условии договора с провайдером интернета или на личной странице пользователя на сайте провайдера.

      Во-первых, провайдер может предоставлять выделенный IP-адрес, который присвоен именно вам (то есть у вас прямой выход в Сеть), а может использовать один внешний адрес для многих пользователей. В первом случае проблем с настройкой доступа быть не должно, и вам достаточно разобраться со своим оборудованием. Однако если вы находитесь в локальной сети провайдера, ваш компьютер не будет виден из Интернета и доступ к серверу будет невозможен. Возможно, провайдер может предоставить внешний адрес как дополнительную услугу.

      Для того, чтобы различить внешний и внутренний адрес, стоит сравнить адрес, под которым вы видны в сети и адрес, который получает ваш компьютер или роутер/модем, подключенный к линии провайдера (как правило, доступен по адресу 192.168.1.1 или 192.168.0.1). Существует много сайтов, которые определяют IP-адрес посетителя в онлайн-режиме, например, 2IP.ru.

      Кроме того, ваш адрес может быть постоянным, статическим, или меняться при каждом переподключении к провайдеру, то есть быть динамическим. Самым легким способом определения типа адреса является переподключение модема и сравнение внешних IP-адресов. Если после повторного подключения модема IP-адрес изменился, то это значит, что у вас динамический IP-адрес. Динамические адреса являются более распространенными, чем статические, но при создании сервера игры рекомендуется иметь статический IP-адрес, так как динамический адрес меняется при каждом переподключении к провайдеру (и вам придется постоянно сообщать новый адрес вашим игрокам). Тем не менее, статический адрес — необязательное условие для работы сервера.

      К тому же, существуют сервисы (в том числе и бесплатные), предоставляющие домены третьего уровня, например, dyn.com/dns/. Обновление адреса производится обычно при помощи специальной программы, которую вы должны будете установить на компьютер, но некоторые модемы и роутеры могут сами выполнять эту функцию (посмотрите в интерфейсе маршрутизатора на предмет Dynamic DNS). Многие провайдеры предлагают статический IP-адрес в качестве дополнительной услуги.

      Подключение к серверу

      Чтобы подключиться к Вашему серверу, игроки в строке ввода IP-адреса сервера в клиенте игры должны ввести Ваш внешний IP-адрес или домен (адрес сайта) и нажать кнопку подключения к серверу. Внешний IP-адрес может узнать владелец сервера и сказать его игрокам, которые хотят подключиться к его серверу. Узнать ваш внешний IP-адрес могут помочь сайты: SpeedTest.net, 2IP.ru, Smart-IP.net.

      Если игроки не могут подключиться к вашему серверу, смотрите раздел FAQ.

      Сервер через VPN

      Если у вас возникают проблемы с внутренним IP-адресом, можно попробовать Hamachi, P2PLauncher, EasyVPN, Garena или подобные сервисы. Самым популярным из них является Hamachi. Создатель сервера и подключающиеся должны скачать и установить Hamachi. Далее:

      1. Создать комнату.
      2. server-ip оставить пустым.
      3. Запустить сервер.
      4. Сообщить свой IP в Hamachi (рядом с кнопкой подключения) подключающимся.
      1. Зайти в комнату с сервером.
      2. Попробовать подключиться по полученному IP.

      Самая простая в использовании — это программа P2PLauncher, соединяющая компьютеры через сеть peer-to-peer. Просто поместите её в папку с игрой и запустите. На сервере:

      1. Введите никнейм (он же — будущее имя сервера) и название комнаты, нажмите «Запустить сервер».
      2. Сообщите название комнаты и свой ник, тому кто хочет к вам присоединиться.
      1. Запустите P2PLauncher. Введите свой никнейм и название комнаты, нажмите «Запустить клиент».
      2. В качестве имени сервера используйте ник игрока, создавшего сервер.

      Открытие портов

      Открытие, или проброс портов (Port Forwarding) позволяет клиентам, подключащимся из Интернета, получать доступ к серверу, который находится за маршрутизатором или модемом. Проблема с открытием портов часто встречается при создании сервера в локальной подсети. Маршрутизатор или модем могут блокировать порт, который пытается использовать сервер игры. Для разных моделей эта процедура происходит немного по-разному.

      Есть 2 способа открытия портов:

      Port cheker

      • На сайте portforward.com представлена сборка специального ПО, которое предназначено для открытия портов на различных моделях модемов. Зайдите на этот сайт и в списке найдите модель своего модема или маршрутизатора. Перейдите на страницу вашей модели и скачайте оттуда утилиту, предназначенную для открытия портов. С помощью неё откройте порт, который использует ваш сервер (по умолчанию 25565).
      • Зайдите в веб-интерфейс вашего модема или маршутизатора через веб-браузер. Как правило, чтобы зайти в него, в строке ввода веб-адреса нужно ввести 192.168.1.1 или 192.168.0.1. После того, как вы оказались в меню веб-интерфейса, найдите пункт Port Forwarding или NAT. После открытия этого меню вам потребуется ввести некоторые параметры. Параметры, которые могут потребоваться: Start Port — 25565, End Port — 25565, IP adress — локальный IP-адрес компьютера, на котором вы создаете сервер (например, 192.168.1.2), Protocol — сначала введите TCP, а после этого повторите всю процедуру снова для протокола UDP. Примеры открытия портов для многих моделей модемов можно найти на portforward.com.

      Чтобы проверить, удалась ли процедура открытия порта, попросите кого-нибудь вне вашей локальной сети подключиться к серверу, используя внешний IP-адрес (вы также можете попробовать подключиться к себе по внешнему адресу самостоятельно, но неудача в этом случае не всегда означает недоступность сервера). Или же загрузите и установите программу PFPortChecker. В поле Port введите номер порта, который вы пытались открыть. В поле Protocol сначала выберите UDP, а потом TCP. Затем нажмите кнопку проверки. После окончания проверки программа выведет 3 итога для TCP и 3 для UDP. Если текст всех 6 результатов проверки будет зелёного цвета, значит процедура удалась полностью. Для примера смотрите скриншот справа.

      Иногда некоторые провайдеры, предоставляют пользователям «серые» IP-адреса. Если в вашем маршрутизаторе указан IP-адрес из диапазонов ниже, то тогда вы не сможете открыть порты на вашем компьютере.

      Список наиболее частых «серых» IP:

      • От 10.0.0.0 до 10.255.255.255 с маской 255.0.0.0 или /8
      • От 172.16.0.0 до 172.31.255.255 с маской 255.240.0.0 или /12
      • От 192.168.0.0 до 192.168.255.255 с маской 255.255.0.0 или /16
      • От 100.64.0.0 до 100.127.255.255 с маской подсети 255.192.0.0 или /10; данная подсеть рекомендована согласно rfc6598 для использования в качестве адресов для CGN (Carrier-Grade NAT)

      Администрирование сервера

      В данном разделе описаны элементы администрирования сервера — процесс управления и поддержания корректной работы сервера во время его работы при использовании командной строки и элементов графического интерфейса.

      Описание GUI

      GUI окна сервера состоит из следующих элементов:

      SMP-GUI

      1. Окно информации. В данном окне отображается информация про объем использованной оперативной памяти, идет динамическое построение графика используемого объема RAM и т.д.
      2. Список игроков. В данном окне отображается список никнеймов всех игроков, которые подключены к серверу.
      3. Лог и чат. Здесь отображается информация о состоянии работы сервера, ошибки, итог выполнения операций, применение игроками команд управления сервером и т.д. Здесь же отображаются все сообщения, отправленными игроками в чат. Вся информация, которая есть в окне лога, автоматически записывается в файл server.log, находящемся в том же каталоге, где расположен сервер.
      4. Командная строка. Данная панель является самой важной часть GUI. Из нее администратор может осуществлять администрирование сервером: добавлять в вайтлист, банить, давать игрокам предметы или полномочия операторов (см. дальше), делать сохранения карты, остановку работы сервера и т.д.

      Консольный режим

      В консольном, или nogui, режиме присутствуют только лог и командная строка. Они исполняют те же функции, что и соответствующие окна графического режима.

      Запустить в консольном режиме можно только .jar-версию сервера (server.jar). Для этого нужно в команде запуска указать параметр nogui :

      java -Xmx1024M -Xms1024M -jar server.jar nogui

      Описание доступных команд

      Основная статья: Команды консоли

      Команды в игре делятся на две группы: для операторов и игроков. С их помощью можно получить доступ к некоторым полезным возможностям, а операторам осуществлять контроль за состоянием сервера.

      FAQ

      Q: Игроки не могут разрушать блоки, всё сломанное возвращается обратно. Как это исправить?
      A: Рядом с точкой спауна есть защищенная зона, блоки в которой могут ставить и уничтожать только операторы сервера. То есть, игрокам нужно просто отойти ровно на столько блоков в любую сторону, сколько стоит в spawn-protection в настроечном файле сервера.

      Q: В логе сервера всё время появляется сообщение «Can’t keep up! Is server overloaded or system time changed?» Что это значит?
      A: Это значит, что сервер в данный момент перегружен и его работа может быть не совсем исправна. Уменьшить нагрузку на сервер можно, закрыв все сторонние программы, тем самым снизив нагрузку на процессор и освободив дополнительный объём оперативной памяти. Можно попробовать перезапустить сервер. Скорость работы сервера сильно зависит от количества игроков, играющих на нём.

      Q: Игроки жалуются на то, что сервер жутко лагает. Как мне исправить это?
      A: Возможно, скорость подключения к сети Интернет недостаточная, или аппаратное обеспечение компьютера слишком «слабое». Постарайтесь минимизировать использование интернет-трафика (закрыть интернет-браузеры, торрент-клиенты и прочее) и снизить нагрузку на использование ресурсов компьютера. Добавьте Server.jar в список исключений Вашего фаерволла/антивируса, а лучше всего выключите их. Попробуйте перезапустить сервер. Попросите игроков, у которых лагает, переподключиться к серверу — возможно, проблема лагов на стороне клиента.

      Q: Игроки не могут подключиться к моему серверу. Что делать?
      A: Сначала попробуйте подключиться к нему самому, использовав в качестве IP-адреса сервера localhost. Если Вам не удалось подключиться, сервер создан полностью неправильно. Возможно, Вы допустили ошибку при конфигурации файла server.properties, или Ваш антивирус агрессивно блокирует сервер игры. Если же Вам удалось подключиться к собственному серверу, проверьте, правильно ли Вы определили собственный IP-адрес. Возможно, Вы забыли открыть порты, которые использует сервер игры. Просмотрите лог сервера на наличие ошибок — они могут указать Вам на причину возникновения проблемы.

      Q: При подключении игроки получают сообщение «Outdated server!» / «Outdated client!»
      A: Сервер и клиент должны быть одной и той же версии, внимательно проверьте это.

      Q: Я хочу запустить на сервере свою карту из одиночной игры. Как мне это сделать?
      A: Из папки saves, которая находится в каталоге установленной игры (.minecraft), перенесите папку с Вашей картой (например, New World) в папку, где лежит сервер игры. Не забудьте поменять level-name в файле server.properties, если ваша папка называется не так, как текущая папка сервера. Перенос должен осуществляться при выключенном сервере.

      Q: Как мне создать новый мир?
      A: Удалите все файлы из Вашей папки мира сервера или укажите новое имя мира в параметре level-name в файле server.properties.

      Q: Я хочу обновить сервер. Что для этого нужно?
      A: Сначала сделайте бекап — если что-то пойдет не так, Вы сможете восстановить сервер из резервной копии. Затем заново скачайте с официального сайта исполняемый файл сервера и замените им Ваш старый. Затем запустите сервер — все настройки, карты и игроки должны сохраниться.

      Q: Как мне добавить на сервер функции /home /warp /spawn и другие?
      A: Поищите в плагинах к Bukkit. Например, есть большой плагин CommandBook.

      Q: При создании сервера в логе появляется сообщение: «FAILED TO BIND TO PORT. Perhaps a server is already running on that port?». Что делать?
      A: Это значит, что порт, который использует сервер, уже занят, или доступ к нему закрыт. Отключите Ваш антивирус и файерволл, программы использующие интернет. Вероятно, вы указали порт, использующийся другой программой (например, веб-сервером или торрент-клиентом) или перед началом создания сервера Вы забыли проделать процедуру открытия портов на модеме/маршрутизаторе. Чтобы узнать, как её сделать, смотрите последний раздел данной статьи.

      Q: В логе сервера появляется сообщение: «[INFO] %username% lost connection: End of stream». Что мне делать?
      A: Такая проблема может иногда случаться на операционной системе Windows XP SP3. Попробуйте запустить сервер на виртуальной машине (например, VirtualBox) или смените операционную систему.

      Q: При запуске сервера я получаю ошибку, что моя версия Java устарела. Как мне узнать, какая у меня версия Java?
      A: Для работы игры требуется Java 8. Чтобы проверить Вашу версию, сделайте следующее:

      1. Откройте командную строку (консоль, терминал):
        • Windows: [Win+R] -> cmd -> [Enter]
        • Linux: размещение в меню различается в зависимости от оболочки, обычно это Приложения -> Системные / Стандартные -> Терминал
        • OS X: В Доке или Finder’е: Программы -> Служебные программы -> Терминал
      2. В командной строке введите java -version и нажмите Enter
      3. В ответе найдите строку начинающуюся с java version . Число, стоящее далее — версия Java.

      Если в ответ вы получили сообщение такого вида:

      java не является внутренней или внешней командой, исполняемой программой или пакетным файлом (Windows) bash: java: command not found (Linux & OS X)

      то это означает, что Java у Вас не установлена или не настроены переменные среды (последнее обычно только для Windows). Попробуйте сделать следуещее:

      1. Нажмите правой кнопкой мыши на Мой компьютер
      2. Кликните на Свойства
      3. Кликните на Расширенные параметры системы
      4. Кликните на Переменные среды
      5. В списке системных переменных найдите переменную Path
      6. Кликните Редактировать и допишите в конец: ;%ProgramFiles(x86)%\Java\jre6\bin
      7. Откройте командную строку заново и попробуйте снова

      Если Ваша версия ниже 1.6.1 или Java у Вас не установлена, перейдите на страницу загрузки Java и скачайте последнюю версию.

      Q: У меня динамический IP! А покупать статический адрес ради сервера Minecraft’a не хочется…
      A: Используя сервисы вроде DynDNS или No-IP, Вы можете получить статический домен третьего уровня ( myminecraft.dyndns.org , serverminecraft.zapto.org …)

      Как создать сервер Minecraft: 6 способов

      Как создать сервер Minecraft

      Все мультиплеерные онлайн-игры работают на отдельных серверах. Бывает, что предлагаемые параметры пользователя не устраивают. В таких случаях оптимальным вариантом будет установка собственного сервера. Сегодня расскажем о том, какими способами можно создать сервер Minecraft.

      Зачем создавать свой сервер в Майнкрафт

      Подключение к серверу Майнкрафт

      Создавая собственный сервер в Minecraft, пользователь получает практически безграничный контроль над игровым процессом. В нем можно создавать собственные правила, устанавливать какие-либо моды или фильтры, приглашать своих друзей в приват и так далее. Это не так сложно и дорого, как может показаться на первый взгляд. Но это не все преимущества, есть еще несколько:

      • Гибкая настройка конфигураций.
      • Собственная библиотека материалов, которую можно пополнять на свое усмотрение.
      • Выбор любого удобного способа создания и обслуживания сервера.
      • Возможность заработать на аренде. Этот вариант наиболее распространен, так как позволяет окупить все затраты, связанные с поддержкой игрового сервера.
      • Возможность создать приватный сервер только для друзей.

      Комьюнити теперь в Телеграм
      Подпишитесь и будьте в курсе последних IT-новостей

      Как создать внутренний сервер в Realms

      Майнкрафт – очень крупная игра с огромной базой пользователей. Естественно, что разработчики игры Mojang AB совместно с Microsoft создали готовое решение для создания сервера – Realms. На данный момент оно доступно в виде ежемесячной подписки Realms Plus и стоит 7,99 долларов США. В дополнение еще прилагается куча пакетов текстур, скинов и мэшапов, облачное хранилище, пятьдесят миров Майнкрафт, а еще одновременное подключение к серверу до 10 игроков.

      Подписка Realms Plus на сайте Minecraft

      Плюсы : Так как это предложение от официальных разработчиков, пользователю не придется заботиться о защите, постоянно обновлять ПО или создавать резервные копии. Все эти заботы на себя возложили разработчики.

      Минусы у подобного сервера тоже имеются. Пользоваться сервером Realms смогут только владельцы лицензионной версии игры. Устанавливать различные плагины и моды на такой сервер невозможно.

      Вдобавок, на мобильных устройствах, консолях и Windows 10 предусмотрена своя версия Minecraft. На Mac и Linux придется устанавливать Minecraft: Java Edition с другой версией кода. Эти два варианта несовместимы друг с другом, разрабатываются по отдельности и имеют разный функционал. Не отличается только цена, но, если вы используете обе версии, переплачивать придется вдвойне.

      Как купить и подключить в Minecraft сервер Realms

      Как создать сервер Minecraft на специализированном хостинге бесплатно

      Помимо официальных разработчиков, серверные услуги в игре Minecraft предлагают и другие компании. Некоторые из них предоставляют услуги бесплатно. Взамен пользователю просто придется просматривать назойливые рекламные баннеры. Пример подобной компании, предоставляющей бесплатные серверы, – Aternos .

      Специализированный хостинг Aternos для предоставления серверов на Майнкрафт

      Одно из явных преимуществ в сравнении с предыдущим сервером – добавление модификаций и плагинов на усмотрение пользователя. Есть еще возможность подключения с неофициальных версий игры.

      В числе минусов присутствует сложность в настройке подобного сервера. Придется вручную устанавливать разные параметры; моды и плагины подключаются тоже самостоятельно игроком. Компании, бывает, внедряют дополнительные услуги, за которые придется платить. Стабильность в работе таких серверов тоже не так часто встретишь, все же зависит от хостинга.

      Именно данный сервер, Aternos, отличается еще и нестабильной скоростью работы. Также приходится постоянно ждать своей очереди, потому что желающих воспользоваться бесплатным сервером немало. Реклама в процессе будет выскакивать « на каждом шагу » .

      По поводу компаний с полностью платными услугами – у каждой из них цена и функционал могут отличаться. Среднюю стоимость вычислить практически нереально, выбор остается за игроком. Например, Advens предоставляет серверные услуги по цене от 800 рублей, а игровой хостинг MyArena предоставляет тарифы с оплатой за слоты и ресурсы.

      Как создать домашний сервер для Minecraft

      Как сделать домашний сервер Майнкрафт для игры с друзьями

      Создать сервер Майнкрафт можно и самостоятельно на компьютере, без посредников. Как говорится, дешево и сердито. Единственным требованием в таком случае будет только статический IP-адрес. Для его приобретения необходимо обратиться к провайдеру. После остается только создать собственный одиночный мир и открыть к нему доступ. Друзьям останется только подключиться через установленный IP.

      Плюсы – можно устанавливать любые моды и плагины, применять любые конфигурации, проводить детальную настройку мира.

      Но чтобы все работало хорошо, компьютер должен обладать неслабыми характеристиками. Это скорее минус . Если начинка недостаточно мощная и производительная, создавать сервер на своем ПК будет не лучшей идеей. Любые операции будут сопровождаться постоянными багами и подтормаживанием.

      Кроме того, важно иметь стабильное и высокоскоростное подключение к интернету. Рекомендуется иметь свободный пропускной канал для исключения лагов и высоких пингов. Но это все равно не гарантирует стабильную работу, скорость в итоге останется низкой. Подобный сервер полностью зависит от характеристик компьютера, домашнего интернета и электричества.

      Как создать сервер Minecraft на Windows без модов

      Прежде всего нужно скачать и установить последнюю версию Java на компьютер. Без него сервер не будет работать. Приложение бесплатное.

      Загрузка Java для установки приложения Minecraft на ПК

      Далее потребуется купить и скачать Minecraft: Java Edition с официального сайта разработчика. После нужно установить игру и запустить ее.

      Покупка оригинальной версии Minecraft на официальном сайте

      Пользователь должен войти в свой аккаунт. Если его нет, тогда следует зарегистрироваться. Как только авторизация будет завершена, надо прогрузить мир игры и сразу же закрыть ее.

      Потом нужно создать на компьютере папку, назвав ее Minecraft Server. Далее потребуется скачать сервер с официального сайта . Файл будет в формате server.jar. Его понадобится скопировать в созданную папку и запустить вот такой командой через командную строку:

      java -Xmx1024M -Xms1024M -jar minecraft_server.1.16.2.jar nogui

      На момент написания статьи актуальна версия сервера 1.16.2.

      Сразу после этого появятся дополнительные файлы. В их числе будет документ с названием eula.txt. Нужно открыть его в блокноте, найти в списке параметр eula=false, поменять значение на true и закрыть файл, сохранив изменения.

      Изменение значений некоторых параметров для функционирования сервера Майнкрафт

      Примерно то же самое надо проделать с документом под названием server.properties. Открыть в блокноте, поменять в параметре online-mode=true значение, оно должно быть отмечено как false. Потом следует сохранение изменений и повторный запуск файла server.jar.

      Далее откроется консоль, где будет показано состояние сервера. Пока эта самая консоль активна, сервер будет работать, и другие пользователи смогут без проблем к нему подключаться.

      Как создать сервер Minecraft на Windows с модами

      Сперва надо установить клиент Minecraft и добавить в него моды с помощью бесплатного приложения Forge . Его версия должна совпадать со скачанной версией игры. Устанавливать программу следует в ту же папку, в которой находится Майнкрафт.

      Теперь надо создать на компьютере папку под названием Minecraft Forge Server. Далее запускается Forge (файл формата jar) и устанавливается сервер. В качестве расположения выбирается только что созданная папка.

      Установка сервера с модами с помощью Forge

      Потом надо отредактировать через блокнот некоторые значения в файлах. Например, в eula.txt в строке eula=false нужно выставить значение true и сохранить изменения. Примерно то же следует проделать с документом server.properties, только там в параметре online-mode значение true меняется на false.

      Затем необходимо перейти в mods, расположенную в папке с клиентом Minecraft. Можно воспользоваться окном «Выполнить» нажатием на клавиши Win + R, ввести в поле «Открыть» значение %appdata%\.minecraft\ и нажать на Enter. Все файлы модификаций в указанном файле понадобится отправить другим игрокам, вместе с которыми планируется использовать сервер. И внимание, каждый из них должен переместить моды в ту же папку на своем компьютере.

      Файлы в папке mods в директории AppData

      Последний этап настройки – эти самые файлы из папки mods перемещаются в другую с точно таким же названием, только расположенную в директории Minecraft Forge Server.

      Снова запускаем клиент. Откроется консоль, и в ней будет отображаться состояние сервера. Теперь можно смело подключать новых игроков и приступать к игре.

      Консоль нового сервера Minecraft с отображением его текущего состояния

      Как создать сервер в Майнкрафт на Linux

      Чтобы создать сервер Майнкрафт для игры с друзьями необходимо, чтобы были установлены дистрибутивы Linux с версиями не выше указанных – Ubuntu 18.04 и CentOS 7. Еще для установки сервера требуется наличие свежей версии Java. Проверить ее можно, дав в «Терминале» такую команду:

      java -version

      Если Java на компьютере не установлена, в той же командной строке можно дать запрос на установку. В Ubuntu это будет выглядеть так:

      sudo apt-get update sudo apt-get install default-jdk

      В CentOS команда должна быть введена вот так:

      sudo yum update sudo yum install java -y

      Как только Java будет скачан и инсталлирован, потребуется установить Screen, позволяющий одновременно работать с несколькими окнами в одной сессии. Вот так надо вводить команду на установку на Ubuntu:

      sudo apt-get install screen

      А вот для CentOS следует вводить запрос таким образом:

      sudo yum install screen -y

      Теперь надо осуществить подключение к серверу по SSH. Для входа можно использовать «Терминал». Для подключения нужно активировать такой запрос, правильно подставив, конечно же, указанные значения:

      ssh имя_пользователя@ip_сервера

      После активации команды будут запрошены логин и пароль.

      Можно приступать к установке сервера Minecraft. Для начала создается отдельная папка, где будут храниться все конфигурационные файлы игры. Это необязательно, конечно, но для лучшей организации работы системы будет нелишним. Создать папку можно по команде:

      mkdir minecraft

      После успешного завершения процесса понадобится открыть папку, для этого вводим запрос такой формы:

      cd minecraft

      Еще перед скачиванием конфигурационных файлов надо будет установить wget. Вот как выглядит команда для такой операции на Ubuntu:

      sudo apt-get install wget

      А вот как должен выглядеть запрос на дистрибутиве CentOS:

      sudo yum install wget -y

      После завершения установки инструмент wget будет использован для загрузки файла свойств с сервера Minecraft. Дать при этом надо такой запрос:

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

      Теперь надо загрузить файл конфигурации с официального сайта игры. Обычно команда на установку и ссылка на скачивание даются на соответствующей странице .

      Но на этом настройка не завершена. Надо еще подтвердить лицензионное соглашение через файл eula. Открываем лицензионное соглашение в текстовом редакторе, находим строку eula=false, меняем ее на eula=true и сохраняем изменения.

      Сразу после этого можно приступать к запуску сервера. Чтобы он работал в фоновом режиме, потребуется активировать Screen вот такой командой:

      screen -S "Minecraft server 1"

      Пора запускать новый установленный сервер! Активируем вот такой запрос в «Терминале»:

      java -Xmx1024M -Xms1024M -jar minecraft_server.1.16.2.jar nogui

      Уточняем, что для запуска сервера минимальное значение ОЗУ составляет 1024 МБ. Именно поэтому данная цифра была прописана после -Xmx и -Xms. А если вам этого мало, просто поменяйте значение на любое другое, оптимальное для вас.

      Мощные игровые серверы для Minecraft от 3 руб./час

      От 4 Гб ОЗУ, от 80 Гб на скоростном NVMe и стабильные 200 Мбит/сек

      Запускаем Minecraft на VDS или выделенном сервере

      Создание выделенного и VDS сервера в Майнкрафт

      Сделать сервер Майнкрафт можно через хостинг. Для этого потребуется сервер с достаточно мощным железом. В таком случае нужно будет скачать серверную версию Minecraft и удаленно установить ее на арендованное оборудование.

      В хостинге Timeweb можно купить готовый выделенный сервер или самостоятельно подобрать конфигурацию. Правда, этот вариант не самый дешевый. Если у вас ограничен бюджет, можно подключить VDS сервер . Это отличный вариант для начинающих геймеров.

      Из минусов – это не самый простой способ, для его реализации требуются определенные знания и навыки в администрировании. При работе могут возникать какие-либо трудности и нюансы, также вполне допустимо возникновение проблем в процессе запуска и настройки сервера.

      Но результат определенно того стоит – пользователь сможет реализовать на таком сервере любые возможности для игры, использовать любые шаблоны, моды и защитное ПО. Такой сервер доступен круглосуточно и не зависит от того, включен ваш компьютер или нет. Такой сервер можно будет использовать для игры с друзьями или продавать.

      О том, как создать сервер Minecraft на VDS на базе платформы CentOS 7, ранее было рассказано в другой статье.

      Создание сервера Minecraft на VDS с Ubuntu 18.04

      Чтобы создать сервер Майнкрафт для игры с другом потребуется заранее установить на сервер дистрибутив Ubuntu 18.04 и включить поддержку SSH. В хостинге Timeweb можно выбрать тариф с оптимальными параметрами и ценами. Если выяснится, что этих характеристик недостаточно, вы сможете выбрать тариф с большей производительностью.

      Первым делом после подготовки сервера надо установить Java. Рекомендуется версия 8 OpenJDK для Java, в частности, headless JRE. Это минимальная версия, не имеющая поддержки графического интерфейса в приложении. Именно поэтому она отлично подходит для запуска приложений Java на сервере. Для скачивания и установки надо ввести следующую команду:

      sudo apt install openjdk-8-jre-headless

      Еще нужно будет скачать приложение Screen (о его назначении говорилось выше), для этого дается следующий запрос:

      sudo apt install screen

      После того как все необходимо ПО установлено, потребуется активировать брандмауэр для разрешения трафика на сервер Minecraft. В игре по умолчанию используется порт 25565. Чтобы внедрить это правило, запускается такая команда:

      sudo ufw allow 25565

      Наконец пришло время для скачивания и установки сервера Minecraft. Для этого используем утилиту wget. Открываем сайт разработчика для загрузки сервера , копируем ссылку на загрузку и вставляем ее после утилиты. Примерно так это будет выглядеть:

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

      Как только загрузка завершится, потребуется принять лицензионное соглашение через файл. Надо для этого открыть в текстовом редакторе nano файл eula.txt. Затем следует найти параметр eula=false и поменять значение на true. Теперь можно приступать к запуску файла jar. Открываем приложение screen и даем в нем вот такую команду:

      java -Xmx1024M -Xms1024M -jar minecraft_server.1.16.2.jar nogui

      В течение нескольких секунд будет совершена инициализация. Потом выйдут результаты, примерно вот такие:

      Server thread/INFO: Done (32s)! For help, type "help"

      Это значит, что подключение сервера завершилось.

      Подключение к выделенному серверу Майнкрафт успешно завершено

      Заключение

      Сделать свой сервер Майнкрафт для игры с другом можно несколькими способами. У каждого из них есть свои плюсы и минусы, различные возможности и ограничения. Выбирать стоит исходя из характеристик установленного железа и собственных потребностей, будь то установка плагинов и модов. Ну и финансовых возможностей, разумеется.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *