Wiki Natural Selection 2
Настройка сервера
Обновлено: 27.06.2026 09:33

Настройка сервера

🕒 Последнее изменение: 27 июня 2026 в 09:33

Это руководство описывает настройку выделенного сервера Natural Selection 2: первый запуск, переменные запуска, конфигурационные файлы, ротацию карт, администраторов, моды, подключение игроков и базовую диагностику.

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

После выдачи сервера откройте панель управления и перейдите во вкладку Startup.

Перед первым запуском проверьте основные переменные:

txt
SERVER_NAME
SERVER_PASSWORD
MAX_PLAYERS
SPECTATOR_SLOTS
SERVER_MAP
ADDITIONAL_ARGS

После этого запустите сервер во вкладке Console.

При установке сервер создаёт основные каталоги и конфигурационные файлы:

txt
config/
logs/
workshop/

Готовность сервера определяется строкой:

txt
Finished loading

Стартовая команда сервера

Сервер запускается через Linux-бинарник:

txt
./x64/server_linux

Используемая команда запуска:

txt
./x64/server_linux -ip "0.0.0.0" -name "{{SERVER_NAME}}" -port {{SERVER_PORT}} -limit {{MAX_PLAYERS}} -speclimit {{SPECTATOR_SLOTS}} -map "{{SERVER_MAP}}" -config_path "/home/container/config" -logdir "/home/container/logs" -modstorage "/home/container/workshop" -password "{{SERVER_PASSWORD}}" {{ADDITIONAL_ARGS}}

Основные пути уже заданы в запуске:

Путь Назначение
/home/container/config Конфигурационные файлы сервера
/home/container/logs Логи сервера
/home/container/workshop Хранилище Workshop-модов
/home/container/x64/server_linux Исполняемый файл сервера

Переменные запуска

Основные настройки сервера задаются во вкладке Startup.

Переменная Описание
SERVER_NAME Название сервера в списке серверов
SERVER_PASSWORD Пароль для входа игроков
MAX_PLAYERS Максимальное количество игроков
SPECTATOR_SLOTS Количество слотов зрителей
SERVER_MAP Начальная карта при запуске
ADDITIONAL_ARGS Дополнительные аргументы запуска NS2

После изменения переменных запуска перезапустите сервер.

Название сервера

Название сервера задаётся переменной:

txt
SERVER_NAME

В запуске она передаётся через параметр:

txt
-name

Пример:

txt
Natural Selection 2 Server

Название отображается в браузере серверов Natural Selection 2.

Пароль сервера

Пароль задаётся переменной:

txt
SERVER_PASSWORD

В запуске она передаётся через параметр:

txt
-password

Если пароль не нужен, оставьте значение пустым.

После изменения пароля перезапустите сервер.

Лимит игроков

Максимальное количество игроков задаётся переменной:

txt
MAX_PLAYERS

В запуске она передаётся через параметр:

txt
-limit

В текущем Egg допустимый диапазон:

txt
1-24

Пример:

txt
MAX_PLAYERS=20

Слоты зрителей

Количество зрительских слотов задаётся переменной:

txt
SPECTATOR_SLOTS

В запуске она передаётся через параметр:

txt
-speclimit

В текущем Egg допустимый диапазон:

txt
0-16

Пример:

txt
SPECTATOR_SLOTS=2

Слоты зрителей не являются обычными игровыми слотами.

Начальная карта

Начальная карта задаётся переменной:

txt
SERVER_MAP

В запуске она передаётся через параметр:

txt
-map

Пример:

txt
ns2_summit

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

Дополнительные аргументы запуска

Для расширенной настройки используется переменная:

txt
ADDITIONAL_ARGS

Она добавляется в конец команды запуска.

Примеры использования:

txt
-webadmin -webport 8080 -webuser admin -webpassword strong_password

или:

txt
-file server.txt

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

Не дублируйте:

txt
-name
-port
-limit
-speclimit
-map
-config_path
-logdir
-modstorage
-password

Основные конфигурационные файлы

Конфигурация сервера находится в каталоге:

txt
config/

При установке создаются файлы:

Файл Назначение
MapCycle.json Ротация карт и список модов
ServerConfig.json Основные серверные настройки
ServerAdmin.json Администраторы и группы прав
BannedPlayers.json Список заблокированных игроков
ConsistencyConfig.json Настройки проверки файлов

Перед редактированием JSON-файлов остановите сервер. После изменения конфигурации запустите сервер заново.

MapCycle.json

Файл:

txt
config/MapCycle.json

управляет ротацией карт.

Пример стандартной конфигурации:

json
{
  "time": 30,
  "mode": "order",
  "maps": [
    "ns2_summit",
    "ns2_mineshaft",
    "ns2_tram",
    "ns2_veil",
    "ns2_docking"
  ],
  "mods": []
}

Параметры MapCycle.json

Параметр Описание
time Время карты в минутах
mode Режим ротации
maps Список карт
mods Список Workshop-модов

При режиме:

json
"mode": "order"

карты идут по порядку.

Стандартные карты

Примеры стандартных карт:

txt
ns2_summit
ns2_mineshaft
ns2_tram
ns2_veil
ns2_docking
ns2_descent
ns2_refinery
ns2_biodome
ns2_eclipse
ns2_derelict

Карта из переменной SERVER_MAP должна существовать и быть доступна серверу.

Workshop-моды

Папка хранения модов указана в запуске:

txt
-modstorage "/home/container/workshop"

Соответствующий каталог:

txt
workshop/

Моды подключаются через файл:

txt
config/MapCycle.json

Пример:

json
{
  "time": 30,
  "mode": "order",
  "maps": [
    "ns2_summit",
    "ns2_tram"
  ],
  "mods": [
    123456789
  ]
}

После изменения списка модов перезапустите сервер.

Пользовательские карты

Если карта загружается из Workshop, добавьте ID мода в mods, а затем укажите внутреннее имя карты в списке maps.

Пример:

json
{
  "time": 30,
  "mode": "order",
  "maps": [
    "ns2_summit",
    "ns2_custom_map"
  ],
  "mods": [
    123456789
  ]
}

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

ServerConfig.json

Файл:

txt
config/ServerConfig.json

содержит основные настройки сервера.

Стандартный файл создаётся в таком виде:

json
{
  "settings": {
    "rookie_friendly": false,
    "end_round_on_team_unbalance": 0.4,
    "auto_team_balance": {
      "enabled_after_seconds": 10,
      "enabled_on_unbalance_amount": 2
    }
  },
  "tags": []
}

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

Параметр Описание
rookie_friendly Пометка сервера как подходящего для новичков
end_round_on_team_unbalance Завершение раунда при сильном дисбалансе
auto_team_balance.enabled_after_seconds Задержка перед авто-балансом
auto_team_balance.enabled_on_unbalance_amount Разница игроков для включения авто-баланса
tags Теги сервера

ServerAdmin.json

Файл:

txt
config/ServerAdmin.json

используется для выдачи прав администратора.

Стандартная конфигурация:

json
{
  "groups": {
    "admin_group": {
      "type": "disallowed",
      "commands": []
    }
  },
  "users": {}
}

Добавление администратора

Для добавления администратора укажите его Steam Account ID в секции users.

Пример:

json
{
  "groups": {
    "admin_group": {
      "type": "disallowed",
      "commands": []
    }
  },
  "users": {
    "Admin": {
      "id": 123456789,
      "groups": [
        "admin_group"
      ]
    }
  }
}

Группа:

json
"type": "disallowed",
"commands": []

означает полный доступ ко всем командам, кроме явно запрещённых. При пустом списке запретов администратор получает полный набор доступных команд.

После изменения ServerAdmin.json перезапустите сервер.

BannedPlayers.json

Файл:

txt
config/BannedPlayers.json

хранит список заблокированных игроков.

Стандартная структура:

json
{
  "bans": []
}

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

ConsistencyConfig.json

Файл:

txt
config/ConsistencyConfig.json

используется для настройки проверки файлов.

Стандартная структура:

json
{
  "check": []
}

Изменяйте этот файл только если понимаете, какие файлы должны проверяться на соответствие у клиентов.

Порты сервера

Основной порт сервера задаётся переменной панели:

txt
SERVER_PORT

В запуске он передаётся через параметр:

txt
-port

Используйте порт, назначенный серверу во вкладке Network.

Если вы добавляете через ADDITIONAL_ARGS параметры, которым нужны дополнительные порты, эти порты также должны быть назначены серверу.

Пример:

txt
-webadmin -webport 8080

В этом случае порт 8080 должен быть выдан серверу отдельно.

Web-администрирование

В текущем Egg web-администрирование не включено по умолчанию.

Для включения используйте ADDITIONAL_ARGS.

Пример:

txt
-webadmin -webdomain "0.0.0.0" -webport 8080 -webuser admin -webpassword strong_password

Для web-админки нужен отдельный порт.

Не включайте web-администрирование без сложного пароля.

Логи сервера

Логи записываются в каталог:

txt
logs/

Он указан в запуске через параметр:

txt
-logdir "/home/container/logs"

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

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

IP-адрес и порт сервера отображаются во вкладке Network панели управления.

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

Запустите Natural Selection 2.

Откройте список серверов сообщества.

Найдите сервер по названию:

txt
SERVER_NAME

Выберите сервер и подключитесь.

Если установлен пароль, введите значение:

txt
SERVER_PASSWORD

Прямое подключение через консоль

Откройте консоль в игре и выполните:

txt
connect IP:PORT

Пример:

txt
connect 123.123.123.123:27015

Используйте основной порт сервера из вкладки Network.

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

Команда остановки сервера:

txt
exit

В панели управления используйте обычную кнопку Stop.

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

Сервер не запускается

Проверьте:

txt
наличие x64/server_linux
права на запуск x64/server_linux
корректность JSON-файлов в config/
значение SERVER_MAP
значение SERVER_PORT
ошибки в logs/
ошибки в Console

Если проблема появилась после изменения конфигурации, временно верните последнюю рабочую копию файлов из config/.

Сервер не отображается в списке

Проверьте:

txt
сервер полностью загрузился
в Console появилась строка Finished loading
SERVER_NAME задан корректно
SERVER_PORT назначен серверу
сервер принимает прямое подключение

Для проверки используйте прямое подключение:

txt
connect IP:PORT

Игроки не могут подключиться

Проверьте:

txt
сервер запущен
игрок использует правильный IP и порт
SERVER_PASSWORD введён правильно
SERVER_MAP существует
сервер не завершился с ошибкой

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

Ошибка карты

Если сервер не запускает карту, проверьте:

txt
SERVER_MAP
MapCycle.json
наличие карты
Workshop-мод пользовательской карты
ошибки в logs/

Стартовая карта должна совпадать с доступной картой.

Пример корректного значения:

txt
ns2_summit

Ошибка модов

Если сервер не загружает Workshop-моды, проверьте:

txt
MapCycle.json
mods
workshop/
ADDITIONAL_ARGS
логи сервера

После изменения модов перезапустите сервер.

Ошибка прав администратора

Если администраторские команды недоступны, проверьте:

txt
config/ServerAdmin.json
Steam Account ID администратора
группу пользователя
тип группы
перезапуск сервера после изменения файла

Администратор должен быть указан в секции users и привязан к группе с нужными правами.

Резервное копирование конфигурации

Перед изменением настроек создайте резервную копию каталога:

txt
config/

Минимум сохраните:

txt
MapCycle.json
ServerConfig.json
ServerAdmin.json
BannedPlayers.json
ConsistencyConfig.json

Также можно сохранить:

txt
logs/
workshop/

Рекомендации

Останавливайте сервер перед изменением JSON-файлов.

Проверяйте JSON-синтаксис после редактирования.

Не дублируйте основные параметры запуска в ADDITIONAL_ARGS.

Используйте MapCycle.json для карт и модов.

Используйте ServerAdmin.json для администраторов.

Храните Workshop-моды в каталоге workshop/.

Проверяйте каталог logs/ при ошибках.

Создавайте резервные копии каталога config/ перед крупными изменениями.

После изменения SERVER_NAME, SERVER_PASSWORD, MAX_PLAYERS, SPECTATOR_SLOTS, SERVER_MAP или файлов config/ перезапускайте сервер.

Информация

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

Сколько вы хотите добавить?