MAATRIX GAMES / Блог / Как поднять сервер Minecraft Bedrock: пошаговая инструкция

Как поднять сервер Minecraft Bedrock: пошаговая инструкция

MAATRIX GAMES

Ищете, как поднять сервер Minecraft Bedrock, а половина статей в выдаче на самом деле про Java-версию — с server.jar, портом 25565 и SteamCMD, который тут вообще ни при чём? Разберём с нуля: официальный Bedrock Dedicated Server, правильный порт, конфиги и автозапуск, чтобы сервер работал сам по себе после перезагрузки.

Чем Bedrock отличается от Java-версии

Если вы уже разворачивали сервер Minecraft на Java, забудьте часть привычек — Bedrock устроен иначе почти во всём, кроме общей идеи.

Главные отличия:

  • Кроссплатформенность — Bedrock-клиент есть на Windows, Xbox, PlayStation, Nintendo Switch, Android и iOS, и все они играют на одном сервере. Java-сервер принимает только Java-клиентов (ПК/Mac/Linux).
  • Другой движок сервера — это не тот же код, перекомпилированный под другую платформу, а отдельный продукт, написанный на C++ (Java-сервер, соответственно, на Java). Отсюда разные бинарники, разные конфиги, разный протокол сети.
  • Порт и протокол — Bedrock слушает UDP 19132 по умолчанию, Java — TCP 25565. Путаница с протоколом — частая причина «сервер не виден», когда админ по привычке открывает TCP.
  • Моды vs аддоны — на Bedrock нет Forge/Fabric/Paper и полноценных модов. Есть Add-Ons (поведенческие и ресурс-паки), которые меняют поведение мобов, крафт, текстуры и добавляют скрипты через Scripting API, но не дают того уровня контроля, что даёт Java-модификация серверного кода.
  • Не через Steam — в отличие от многих серверов из этого блога, Bedrock Dedicated Server не распространяется через SteamCMD вообще. Официальная поставка — только zip-архив с сайта Mojang/Microsoft.

Если вам принципиальна экосистема Forge/Fabric и плагины Bukkit/Paper — берите Java-версию. Если важен кроссплей с друзьями на консолях и телефонах — только Bedrock.

Требования к серверу

Bedrock Dedicated Server легче Java-версии на старте и неплохо держит небольшие компании на скромном железе.

Для ванильного сервера на 2-10 игроков хватает:

  • RAM: от 2 ГБ — на этом объёме сервер уверенно стартует и держит небольшую группу без аддонов
  • CPU: 1-2 ядра, важнее тактовая частота, чем их число — сервер, как и Java-версия, слабо распараллеливает игровую логику
  • Диск: SSD, 5-10 ГБ хватит с запасом под мир, паки и логи — миры на Bedrock обычно компактнее java-эквивалентов
  • ОС: Linux (Ubuntu — официально поддерживаемый дистрибутив для linux-сборки BDS) или Windows Server, если удобнее консоль Windows

Если планируете крупный паблик на 20+ игроков с активными аддонами (кастомные мобы, скрипты через Scripting API) — закладывайте 4 ГБ и больше, аддоны и увеличенный view-distance едят память заметнее, чем кажется на старте.

Отдельная грабля для свежих систем: на Ubuntu 22.04 и новее по умолчанию стоит OpenSSL 3, а bedrock_server слинкован с более старой libssl.so.1.1. При первом запуске можно словить error while loading shared libraries: libssl.so.1.1: cannot open shared object file. Лечится установкой пакета из focal-репозитория Ubuntu (точный .deb под вашу архитектуру ищите на packages.ubuntu.com/focal/libssl1.1):

wget http://archive.ubuntu.com/ubuntu/pool/main/o/openssl/libssl1.1_1.1.1f-1ubuntu2_amd64.deb
sudo dpkg -i libssl1.1_1.1.1f-1ubuntu2_amd64.deb

Поднять сервер Minecraft Bedrock за пару минут

Готовый образ MAATRIX GAMES: NVMe, AMD EPYC, DDoS-защита, панель управления. Локации UK, US, RU. Оплата картой РФ, СБП или криптой.

Создать сервер

Скачиваем и распаковываем Bedrock Dedicated Server

Официальная страница — minecraft.net/download/server/bedrock. Заходим туда в браузере, отмечаете чекбоксы согласия с лицензией и политикой конфиденциальности, и правой кнопкой по кнопке скачивания под Linux копируете прямую ссылку — она нужна, чтобы забрать архив на сервере через wget, без промежуточного скачивания на свой ПК.

На VPS создаём отдельную папку и убеждаемся, что есть unzip:

sudo apt update
sudo apt install unzip -y
mkdir -p ~/bedrock-server && cd ~/bedrock-server

Скачиваем архив по скопированной ссылке (подставьте свою — она содержит актуальный номер версии и меняется с каждым релизом) и распаковываем:

wget "СКОПИРОВАННАЯ_ССЫЛКА_С_MINECRAFT.NET" -O bedrock-server.zip
unzip bedrock-server.zip
rm bedrock-server.zip

После распаковки в папке появятся бинарник bedrock_server, набор .so-библиотек рядом с ним, папки worlds/, behavior_packs/, resource_packs/, а также конфиги server.properties, permissions.json и allowlist.json (в части старых сборок этот файл ещё называется whitelist.json — смотрите, что реально лежит в вашей версии архива).

Первый запуск

Даём файлу права на исполнение и запускаем — важно указать LD_LIBRARY_PATH=., иначе бинарник не найдёт свои же .so-библиотеки, лежащие рядом:

chmod +x bedrock_server
LD_LIBRARY_PATH=. ./bedrock_server

В консоли появится лог загрузки и в конце строка вида [INFO] Server started. — сервер поднят и слушает порт. Мир при первом запуске генерируется автоматически по параметрам из server.properties (включая level-seed, если вы его задали заранее — после генерации мира сид уже не сработает на смену, только на новый уровень).

Останавливать сервер лучше корректно — набрать в этой же консоли команду и нажать Enter:

stop

Так сервер сохранит мир перед выходом. Резкое закрытие терминала или kill -9 может привести к потере несохранённого прогресса на самой границе тика.

Настройка server.properties и проброс порта

Открываем конфиг и правим под себя:

nano server.properties

Ключевые параметры Bedrock-сборки (часть из них похожа на Java-конфиг, часть — своя):

server-name=Мой Bedrock сервер
gamemode=survival
difficulty=normal
allow-cheats=false
max-players=10
online-mode=true
allow-list=false
server-port=19132
server-portv6=19133
view-distance=32
tick-distance=4
player-idle-timeout=30
level-name=Bedrock level
level-seed=
default-player-permission-level=member
texturepack-required=false

Что важно не проглядеть:

  • server-port / server-portv6 — 19132 для IPv4, 19133 для IPv6. Это UDP, не TCP — если пробрасываете порт вручную (роутер дома, отдельный файрвол), протокол должен быть именно UDP.
  • online-mode — аналог Java-параметра, проверка лицензионных аккаунтов Xbox Live. Отключать стоит только для локальных/приватных случаев, где вы точно понимаете последствия.
  • allow-list — здесь это называется allow-list (белый список), а не white-list, как в Java-конфиге. Логика та же: true включает проверку по файлу списка разрешённых игроков.
  • default-player-permission-level — уровень прав по умолчанию для новых/незалогированных в permissions.json игроков: visitor, member или operator. На публичном сервере не ставьте operator по умолчанию.
  • view-distance / tick-distance — чем выше, тем больше нагрузка на CPU. На 2 ГБ RAM и слабом CPU разумно снизить до 16 и 3-4 соответственно, если видите просадки при заполненном сервере.

После правки конфига сервер нужно перезапустить — server.properties читается только при старте.

Проброс порта и файрвол

Bedrock слушает UDP, и это стоит проверять отдельно от Java-привычек — TCP-чекеры портов тут ничего не покажут, даже если сервер работает штатно.

Для Ubuntu с UFW:

sudo ufw allow 19132/udp
sudo ufw allow 19133/udp
sudo ufw status

Через iptables напрямую:

sudo iptables -A INPUT -p udp --dport 19132 -j ACCEPT

Если VPS — публичный IP и так доходит до машины, задача только не заблокировать порт файрволом ОС. Если сервер держите дома за роутером, дополнительно пробрасываете внешний UDP 19132 на локальный IP машины в настройках самого роутера — без этого протокол UDP снаружи просто не долетит до сервера.

Проверить доступность проще всего с телефона на мобильном интернете — заходите в Minecraft (Bedrock-издание), «Добавить сервер», вбиваете IP и порт 19132, и смотрите, отвечает ли пинг в списке серверов.

Whitelist, права игроков и управление без RCON

Управление доступом на Bedrock построено на двух файлах в папке сервера.

allowlist.json (белый список) — список игроков, кому разрешён вход, когда в server.properties включён allow-list=true:

[
  {
    "name": "ИгрокНик",
    "ignoresPlayerLimit": false
  }
]

permissions.json — права по XUID (уникальный идентификатор аккаунта Xbox Live) или по имени:

[
  {
    "permission": "operator",
    "xuid": "1234567890"
  }
]

Важный честный нюанс: у официального Bedrock Dedicated Server нет RCON, в отличие от Java-сервера. Единственный способ послать команду в работающий сервер — ввести её прямо в консоли, где он запущен (тот самый stdin). Это значит, что если вы держите сервер под systemd без интерактивного терминала, оперативно набрать /whitelist add или /kick вы не сможете — только через редактирование JSON-файлов и перезапуск, либо через сторонние обёртки (community-инструменты вроде bedrock-server-wrapper эмулируют что-то похожее на RCON, но это не официальная функциональность, и стабильность зависит от конкретного проекта).

Автозапуск: systemd и screen

Прямой запуск в открытом SSH — не вариант для боевого сервера: закрыли терминал, процесс оборвался.

Screen — простой способ, который к тому же оставляет доступ к консоли для команд (актуально, раз RCON недоступен):

sudo apt install screen -y
cd ~/bedrock-server
screen -S bedrock
LD_LIBRARY_PATH=. ./bedrock_server

Отсоединиться, оставив сервер работать: Ctrl+A, затем D. Вернуться и получить доступ к консоли:

screen -r bedrock

Это как раз тот случай, когда screen для Bedrock зачастую предпочтительнее systemd в чистом виде — раз команды можно отправить только через stdin, а не RCON, живая консоль в screen-сессии реально нужна для повседневного администрирования.

systemd, если приоритет — стабильность и автоматический рестарт при падении, а консоль вам не критична (все настройки делаете через allowlist.json/permissions.json и перезапуск):

sudo nano /etc/systemd/system/bedrock.service
[Unit]
Description=Minecraft Bedrock Dedicated Server
After=network.target

[Service]
WorkingDirectory=/home/youruser/bedrock-server
Environment=LD_LIBRARY_PATH=.
ExecStart=/home/youruser/bedrock-server/bedrock_server
User=youruser
Restart=on-failure
RestartSec=10

[Install]
WantedBy=multi-user.target

Замените путь и пользователя на реальные, затем:

sudo systemctl daemon-reload
sudo systemctl enable bedrock
sudo systemctl start bedrock
sudo systemctl status bedrock

Логи в этом случае смотрите через journalctl -u bedrock -f, но помните — интерактивно командовать серверу через этот канал не выйдет, только читать вывод.

Поднять сервер Minecraft Bedrock за пару минут

Готовый образ MAATRIX GAMES: NVMe, AMD EPYC, DDoS-защита, панель управления. Локации UK, US, RU. Оплата картой РФ, СБП или криптой.

Создать сервер

Частые вопросы

Почему нельзя поставить сервер через SteamCMD, как для многих других игр?

Потому что Bedrock Dedicated Server вообще не распространяется через Steam — это отдельный продукт Mojang/Microsoft, который выкладывается только в виде zip-архива на minecraft.net.

Можно ли поставить моды на Bedrock-сервер?

Полноценных модов в духе Forge/Fabric нет. Есть Add-Ons — поведенческие и ресурс-паки, которые меняют мобов, крафт, добавляют предметы и скрипты через Scripting API, но не дают такого же уровня контроля над серверной логикой, как модификация Java-сервера.

Могут ли Java-игроки зайти на Bedrock-сервер?

Напрямую нет, протоколы несовместимы. Мостом выступает сторонний проект GeyserMC (плюс Floodgate для входа без лицензионной привязки к Java-аккаунту) — он транслирует Bedrock-протокол в Java-протокол, но это отдельная настройка поверх Java-сервера, не встроенная функция Bedrock Dedicated Server.

Как обновить сервер до новой версии?

Останавливаете сервер, скачиваете новый архив с той же официальной страницы, распаковываете поверх — но bedrock_server, библиотеки и системные файлы замените, а папки worlds/, а также allowlist.json, permissions.json и server.properties сохраните нетронутыми, чтобы не потерять мир и настройки.

Почему друзья на телефоне не видят сервер, хотя он работает?

Чаще всего порт не открыт именно как UDP — проверьте sudo ufw status, что 19132/udp разрешён, а не только TCP-эквивалент по старой Java-привычке.