Как изменить максимальное количество игроков

Введение

Данная инструкция описывает процесс изменения лимита одновременных игроков (slots) на сервере Minecraft, размещённом на выделенном сервере с Ubuntu под управлением панели proxify.cloud (Proxmox VE). Рассматриваются два основных сценария: управление через системный сервис (systemd) и ручное редактирование конфигурационных файлов. Выберите способ, соответствующий тому, как именно развёрнут ваш сервер (как сервис или в контейнере/скрине).


Подготовка и доступ к серверу

1. Подключение через SSH

Все операции выполняются от имени пользователя с правами sudo (обычно root или созданный при заказе пользователь).

ssh root@<IP-адрес_вашего_сервера_proxify>

Примечание: IP-адрес и учётные данные для входа в консоль Proxmox и на сам выделенный сервер указаны в письме от proxify.cloud после заказа и в личном кабинете во вкладке «Мои услуги» → «Инструкция».

2. Определение способа запуска сервера

Проверьте, как запущен Minecraft:

systemctl list-units --type=service | grep -i minecraft
  • Если есть вывод (например, minecraft.service, mc-server.service) — сервер управляется через systemd. Переходите к Разделу 1.
  • Если вывода нет — сервер, скорее всего, запускается через screen, tmux, Docker или скрипт в /opt, /home, /srv. Переходите к Разделу 2.

Раздел 1. Сервер запущен как systemd-сервис (Рекомендуемый способ)

Это стандартный способ для выделенных серверов Ubuntu на proxify.cloud, так как обеспечивает автозапуск и логирование через journald.

1.1. Остановка сервера

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

systemctl stop minecraft.service
# Или ваше имя сервиса, например:
# systemctl stop mc-server.service

1.2. Поиск рабочей директории и файла свойств

Посмотрите юнит-файл сервиса, чтобы узнать точный путь к server.properties.

systemctl cat minecraft.service | grep -E '(WorkingDirectory|ExecStart)'

Типичный вывод:

WorkingDirectory=/opt/minecraft/server
ExecStart=/usr/bin/java -Xms4G -Xmx4G -jar paper.jar nogui

В этом случае конфиг находится в /opt/minecraft/server/server.properties.

1.3. Редактирование server.properties

Откройте файл в редакторе (nano, vim):

nano /opt/minecraft/server/server.properties

Найдите параметр max-players. По умолчанию стоит 20.

# Пример строки в файле
max-players=20

Измените значение на нужное (например, 50 или 100):

max-players=50

Важно: Не ставьте пробелы вокруг знака =. Сохраните: Ctrl+O, Enter, Ctrl+X.

1.4. Проверка ресурсов (RAM/CPU)

Увеличение слотов требует больше оперативной памяти. Примерная формула для Paper/Spigot/Purpur: База 2-3 ГБ + ~100-150 МБ на игрока (при легком геймплее) или 200-300 МБ (с тяжелыми плагинами/модами).

Для 50 слотов рекомендуется минимум 8-10 ГБ RAM (-Xmx8G или -Xmx10G).

Проверьте текущие флаги запуска в том же юнит-файле:

systemctl cat minecraft.service | grep ExecStart

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

systemctl edit minecraft.service

В открывшемся редакторе добавьте переопределение ExecStart с новыми флагами -Xms и -Xmx:

[Service]
ExecStart=
ExecStart=/usr/bin/java -Xms8G -Xmx10G -jar paper.jar nogui

Путь к .jar и имя файла должны совпадать с вашим текущим ExecStart.

Сохраните и выйдите. Перезагрузите конфигурацию systemd:

systemctl daemon-reload

1.5. Запуск сервера

systemctl start minecraft.service

1.6. Проверка статуса и логов

systemctl status minecraft.service
journalctl -u minecraft.service -f

В логах при старте должна появиться строка: [Server] Setting max players: 50


Раздел 2. Сервер запускается вручную (Screen / Скрипт / Docker)

Если systemd-сервиса нет, конфиг лежит в рабочей папке запуска.

2.1. Поиск файла server.properties

Частые пути на выделенных серверах proxify.cloud:

  • /home/minecraft/server.properties
  • /opt/minecraft/server.properties
  • /srv/minecraft/server.properties
  • /root/minecraft/server.properties

Найдите файл командой:

find / -name "server.properties" -type f 2>/dev/null | grep -v ".git\|backup\|old"

2.2. Остановка сервера

Если используется screen:

screen -list
# Найдите сессию, например: 12345.minecraft
screen -S minecraft -X stuff "stop\n"

Подождите 10-15 секунд до полной остановки.

Если запуск через скрипт start.sh — просто дождитесь остановки после команды stop в консоли.

2.3. Редактирование конфига

nano /путь/к/вашей/папке/server.properties

Измените max-players=50 (см. шаг 1.3).

2.4. Корректировка скрипта запуска (память)

Откройте ваш скрипт запуска (например, start.sh или run.sh):

nano /путь/к/папке/start.sh

Найдите строку с java -Xms... -Xmx.... Увеличьте -Xmx согласно рекомендациям в шаге 1.4.

Пример для 50 слотов:

#!/bin/bash
java -Xms8G -Xmx10G -XX:+UseG1GC -jar paper.jar nogui

Сохраните файл.

2.5. Запуск сервера

# Через screen (чтобы не умирал при разрыве SSH)
screen -S minecraft -d -m bash /путь/к/папке/start.sh
# Или просто в консоли для теста:
bash /путь/к/папке/start.sh

Раздел 3. Настройка прокси (BungeeCord / Velocity)

Если ваш сервер за прокси (Velocity/BungeeCord) на этом же выделенном сервере proxify.cloud, лимит слотов настраивается в конфиге прокси, а не в бэкенде. Бэкенд (Paper/Spigot) должен иметь max-players больше или равный лимиту прокси.

3.1. Velocity (velocity.toml)

Остановите прокси. Откройте конфиг:

nano /opt/velocity/velocity.toml

Найдите секцию [servers] или корневой параметр player-info-forwarding-mode (не связан со слотами). Лимит задается в [advanced] или просто параметр max-players в новых версиях (обычно в config.toml или velocity.toml в корне).

В современных версиях Velocity (3.x) параметр находится в velocity.toml:

# Максимальное количество игроков на всей сети
max-players = 50

3.2. BungeeCord / Waterfall (config.yml)

nano /opt/bungeecord/config.yml

Параметр:

max_players: 50

3.3. Синхронизация с бэкендом

В server.properties каждого бэкенд-сервера (Paper/Spigot) поставьте max-players с запасом (например, 100), чтобы прокси был единственным ограничителем.


Раздел 4. Сетевые настройки и Firewall (Ubuntu / Proxmox)

Изменение слотов не требует открытия новых портов (используется стандартный 25565 TCP), но при высокой нагрузке проверьте настройки сетевого стека.

4.1. UFW (Uncomplicated Firewall) на Ubuntu

Убедитесь, что порт открыт:

ufw status
# Если неактивно или порт закрыт:
ufw allow 25565/tcp comment "Minecraft Server"
ufw enable

4.2. Proxmox VE Firewall (Дата-центр / Узел / VM)

В панели proxify.cloud (Proxmox Web GUI):

  1. Выберите ваш узел (Node) или VM/CT с сервером.
  2. Перейдите в Firewall.
  3. Убедитесь, что правило ACCEPT для TCP 25565 существует и включено (Enable Firewall -> Yes).
  4. Если используется Cloud-Init или отдельный VLAN — проверьте правила на уровне Дата-центра (Datacenter -> Firewall).

Совет: На выделенных серверах proxify.cloud часто используется отдельный IPv4. Убедитесь, что в настройках IP (IP Config) в Proxmox нет ограничений по MAC-адресу, если вы мигрировали VM.

4.3. Оптимизация ядра (sysctl) для высокой нагрузки

Для 100+ слотов рекомендуется увеличить лимиты соединений. Создайте файл:

nano /etc/sysctl.d/99-minecraft.conf

Содержимое:

# Увеличение очереди ожидающих соединений
net.core.somaxconn = 8192
net.ipv4.tcp_max_syn_backlog = 8192

# Оптимизация TIME_WAIT
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_fin_timeout = 15

# Буферы сети (помогает при лагах чанков)
net.core.rmem_max = 16777216
net.core.wmem_max = 16777216
net.ipv4.tcp_rmem = 4096 87380 16777216
net.ipv4.tcp_wmem = 4096 65536 16777216

Примените:

sysctl --system

Раздел 5. Проверка результата

  1. Зайдите в игру -> Multiplayer -> Direct Connect -> введите IP сервера proxify.cloud.
  2. Наведите курсор на сервер в списке (или посмотрите в консоли сервера при входе).
  3. В строке статуса должно отображаться: `Игроков: X /