bolt Valebyte VPS от $4/мес — NVMe, запуск за 60 секунд.

Получить VPS arrow_forward

Core Keeper и Icarus: два сервера на одном VPS без конфликтов

calendar_month 5 сентября 2026 schedule 18 мин. чтения visibility 15 просмотров
person
Valebyte Team
Core Keeper и Icarus: два сервера на одном VPS без конфликтов
summarize

TL;DR

  • Запускайте Core Keeper и Icarus на одном VPS, используя отдельных пользователей и уникальные порты.
  • Управляйте ресурсами CPU/RAM через systemd-юниты с cgroups для предотвращения конфликтов.
  • Один мощный VPS экономит 20-40% бюджета по сравнению с двумя отдельными серверами.
  • Централизованное управление упрощает администрирование, обновления и настройку нескольких серверов.

Запуск двух игровых серверов, таких как Core Keeper и Icarus, на одном VPS возможен без конфликтов при правильной настройке отдельных системных пользователей, уникальных портов (например, 27015 для Core Keeper и 7778 для Icarus) и использовании systemd-юнитов с cgroups для управления ресурсами CPU и RAM, что предотвращает взаимное замедление.

В мире онлайн-игр, где каждый хочет иметь свой выделенный сервер для комфортной игры с друзьями, часто возникает дилемма: запускать ли отдельный VPS для каждой игры или попытаться уместить несколько на одной машине? Если вы и ваша компания друзей увлекаетесь разными проектами, такими как приключенческая выживалка Core Keeper и суровый симулятор выживания Icarus, платить за два хостинга может быть накладно. К счастью, современный VPS позволяет эффективно разместить несколько игровых серверов на одном VPS, если подойти к настройке с умом. В этой статье мы подробно разберем, как запустить Core Keeper dedicated server и Icarus dedicated server на одной виртуальной машине, избегая конфликтов и обеспечивая стабильную работу.

Почему несколько игровых серверов на одном VPS — это выгодно и эффективно?

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

Экономия ресурсов и бюджета при запуске двух серверов на одном VPS

Основная причина для консолидации – это финансовая выгода. Вместо того чтобы арендовать два или более отдельных VPS, каждый из которых будет простаивать большую часть времени или использовать лишь малую долю своих ресурсов, вы можете выбрать один, более мощный VPS. Это позволит значительно сократить ежемесячные расходы на хостинг. Например, один VPS с 8 GB RAM и 4 vCPU часто обходится дешевле, чем два VPS по 4 GB RAM и 2 vCPU. Экономия может достигать 20-40% от общей стоимости, что особенно ощутимо в долгосрочной перспективе.

Централизованное управление и гибкость

Управление несколькими игровыми серверами с одной точки входа упрощает администрирование. Вам не нужно подключаться к разным серверам, чтобы обновить игры, перезапустить службы или настроить фаервол. Все операции выполняются на одной машине. Это также дает большую гибкость в распределении ресурсов. Если одна игра временно требует больше мощности (например, во время крупного обновления или ивента), вы можете динамически перераспределить доступные ресурсы, не затрагивая другие VPS.

Подготовка VPS: ОС, пользователи и каталоги для Core Keeper и Icarus

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

Выбор ОС и базовые настройки

Для игровых серверов рекомендуется использовать дистрибутивы Linux, такие как Ubuntu Server (20.04 LTS или 22.04 LTS) или Debian (11 или 12). Они отличаются стабильностью, производительностью и широкой поддержкой сообщества. После развертывания VPS выполните базовое обновление системы:

sudo apt update && sudo apt upgrade -y

Установите необходимые утилиты, такие как `screen` (для запуска консольных приложений в фоновом режиме), `git` (если потребуется клонировать репозитории) и `htop` (для мониторинга ресурсов):

sudo apt install screen git htop -y

Также настоятельно рекомендуем настроить фаервол UFW для ограничения доступа к портам. По умолчанию UFW блокирует все входящие соединения, кроме тех, что явно разрешены, что значительно повышает безопасность вашего сервера. Разрешите SSH-доступ:

sudo ufw allow ssh
sudo ufw enable

В дальнейшем мы добавим правила для игровых портов.

Создание отдельных пользователей и каталогов для Core Keeper и Icarus

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

Пользователь и каталог для Core Keeper

Создайте нового пользователя `corekeeper` без доступа к интерактивной оболочке (для повышения безопасности) и его домашнюю директорию:

sudo adduser --system --no-create-home --group corekeeper
sudo mkdir /opt/corekeeper
sudo chown corekeeper:corekeeper /opt/corekeeper

Каталог `/opt/corekeeper` будет использоваться для установки сервера Core Keeper.

Пользователь и каталог для Icarus

Аналогично создайте пользователя `icarus` и его директорию:

sudo adduser --system --no-create-home --group icarus
sudo mkdir /opt/icarus
sudo chown icarus:icarus /opt/icarus

Каталог `/opt/icarus` будет использоваться для установки сервера Icarus.

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

Ищете надёжный сервер для ваших проектов?

VPS от $10/мес и выделенные серверы от $9/мес с NVMe, DDoS-защитой и поддержкой 24/7.

Смотреть предложения →

Игровые сервера: порты, конфликты и их решение

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

Понимание сетевых портов

Сетевые порты – это логические точки, через которые программы обмениваются данными по сети. Они представляют собой числа от 1 до 65535. Игровые серверы обычно используют определенные порты для игрового трафика (UDP/TCP) и для запросов статуса (Query UDP). Например:

  • Core Keeper Dedicated Server:
    • Игровой порт (Game): 27015 (UDP/TCP)
    • Порт запросов (Query): 27016 (UDP)
  • Icarus Dedicated Server:
    • Игровой порт (Game): 7777 (UDP)
    • Порт запросов (Query): 27015 (UDP)

Как видно из примера выше, стандартные конфигурации Icarus и Core Keeper конфликтуют по порту 27015 (Icarus Query и Core Keeper Game). Это идеальный сценарий для демонстрации решения проблемы.

Выбор непересекающихся портов для Core Keeper и Icarus

Чтобы избежать конфликтов, мы изменим порты для Icarus:

  • Core Keeper:
    • Game Port: 27015 (UDP/TCP)
    • Query Port: 27016 (UDP)
  • Icarus:
    • Game Port: 7778 (UDP)
    • Query Port: 27017 (UDP)

Теперь все порты уникальны. Это критически важно для корректной работы обоих серверов.

Настройка фаервола (UFW) для игровых серверов

После выбора портов необходимо разрешить входящие соединения на эти порты через фаервол UFW. Выполните следующие команды:

sudo ufw allow 27015/tcp comment 'Core Keeper Game TCP'
sudo ufw allow 27015/udp comment 'Core Keeper Game UDP'
sudo ufw allow 27016/udp comment 'Core Keeper Query UDP'

sudo ufw allow 7778/udp comment 'Icarus Game UDP'
sudo ufw allow 27017/udp comment 'Icarus Query UDP'

sudo ufw status verbose

Проверьте, что UFW активен и новые правила добавлены. Теперь ваш VPS готов принимать подключения к обоим игровым серверам.

Быстрый выбор
Нужен выделенный сервер?
Bare metal с NVMe в 70+ локациях — настройка и заказ за пару минут.
К серверам

Установка Core Keeper Dedicated Server на VPS

Теперь, когда VPS подготовлен и порты распределены, приступим к установке Core Keeper dedicated server. Мы будем использовать SteamCMD для загрузки файлов сервера.

Загрузка SteamCMD и Core Keeper

Переключитесь на пользователя `corekeeper` и загрузите SteamCMD. Если вы еще не установили SteamCMD, сделайте это:

sudo apt install steamcmd -y

Затем перейдите в каталог `/opt/corekeeper` и скачайте файлы сервера. Поскольку пользователь `corekeeper` является системным и не имеет домашней директории, мы будем выполнять команды от его имени через `sudo -u`:

sudo -u corekeeper mkdir -p /opt/corekeeper/steamcmd
sudo -u corekeeper /usr/games/steamcmd +force_install_dir /opt/corekeeper +login anonymous +app_update 1963720 validate +quit

App ID для Core Keeper Dedicated Server – 1963720.

Для более подробной информации по установке и настройке Core Keeper вы можете ознакомиться с нашей статьей: Свой сервер Core Keeper: установка и настройка на VPS/дедике.

Базовая конфигурация Core Keeper сервера

После загрузки файлов сервера Core Keeper, необходимо создать или отредактировать файл конфигурации. Обычно это делается в файле `server_settings.json` или через параметры командной строки. Пример минимальной конфигурации:

sudo -u corekeeper nano /opt/corekeeper/server_settings.json

Содержимое файла (замените `YourWorldName` и `YourPassword`):

{
  "world_name": "MyValebyteCoreKeeperWorld",
  "world_seed": "",
  "max_players": 10,
  "server_password": "StrongPassword123",
  "game_port": 27015,
  "query_port": 27016,
  "save_interval": 300
}

Убедитесь, что `game_port` и `query_port` соответствуют выбранным нами портам (27015 и 27016).

Автоматический запуск Core Keeper через systemd с ограничением ресурсов

Для автоматического запуска сервера и управления его ресурсами мы создадим systemd-юнит. Это позволит Core Keeper запускаться при старте системы, а также ограничить потребление CPU и памяти, чтобы он не "задушил" Icarus.

sudo nano /etc/systemd/system/corekeeper.service

Содержимое unit-файла:

[Unit]
Description=Core Keeper Dedicated Server
Wants=network-online.target
After=network-online.target

[Service]
User=corekeeper
Group=corekeeper
ExecStart=/opt/corekeeper/CoreKeeperServer -settings /opt/corekeeper/server_settings.json
WorkingDirectory=/opt/corekeeper
StandardOutput=journal
StandardError=journal
Restart=always
RestartSec=5
# Ограничения ресурсов через cgroups
CPUWeight=500  # 50% от доступного CPU по умолчанию (1024)
MemoryMax=4G   # Максимальное потребление памяти 4GB
IOWeight=500   # 50% от доступного I/O

[Install]
WantedBy=multi-user.target

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

  • `CPUWeight=500`: Устанавливает вес CPU для этого юнита. По умолчанию вес равен 1000. Значение 500 означает, что Core Keeper получит примерно 50% от доступного CPU, если есть другие процессы с весом 1000. Если других нагруженных процессов нет, он может использовать 100%.
  • `MemoryMax=4G`: Жестко ограничивает потребление оперативной памяти до 4 гигабайт. Если сервер попытается использовать больше, он будет завершен.
  • `IOWeight=500`: Аналогично CPU, регулирует приоритет дисковых операций.

Сохраните файл, затем включите и запустите службу:

sudo systemctl daemon-reload
sudo systemctl enable corekeeper.service
sudo systemctl start corekeeper.service
sudo systemctl status corekeeper.service

Убедитесь, что сервер Core Keeper запущен и работает корректно.

Установка Icarus Dedicated Server на VPS

Теперь установим Icarus dedicated server, следуя той же логике изоляции ресурсов и пользователей.

Загрузка SteamCMD и Icarus

Переключитесь на пользователя `icarus` и загрузите файлы сервера Icarus:

sudo -u icarus mkdir -p /opt/icarus/steamcmd
sudo -u icarus /usr/games/steamcmd +force_install_dir /opt/icarus +login anonymous +app_update 2089300 validate +quit

App ID для Icarus Dedicated Server – 2089300.

Более подробное руководство по установке Icarus доступно здесь: Свой сервер Icarus: установка и настройка на VPS/дедике.

Базовая конфигурация Icarus сервера

Конфигурация Icarus осуществляется через файлы `Game.ini` и `ServerSettings.ini`. Создайте их в каталоге `Icarus/Saved/Config/LinuxServer/` внутри вашей инсталляции Icarus.

sudo -u icarus mkdir -p /opt/icarus/Icarus/Saved/Config/LinuxServer/
sudo -u icarus nano /opt/icarus/Icarus/Saved/Config/LinuxServer/Game.ini

Пример `Game.ini` (в этом файле обычно настраиваются игровые параметры):

[/Script/Icarus.IcarusServerSettings]
ServerName="MyValebyteIcarusServer"
ServerPassword="AnotherStrongPassword456"
MaxPlayers=8
Difficulty="Medium"
AllowPvP=False
EnableProximityVoiceChat=True

Теперь создайте `ServerSettings.ini` для портов:

sudo -u icarus nano /opt/icarus/Icarus/Saved/Config/LinuxServer/ServerSettings.ini

Содержимое `ServerSettings.ini`:

[IcarusServerSettings]
Port=7778
QueryPort=27017

Убедитесь, что `Port` и `QueryPort` соответствуют выбранным нами портам (7778 и 27017).

Автоматический запуск Icarus через systemd с ограничением ресурсов

Создайте systemd-юнит для Icarus:

sudo nano /etc/systemd/system/icarus.service

Содержимое unit-файла:

[Unit]
Description=Icarus Dedicated Server
Wants=network-online.target
After=network-online.target

[Service]
User=icarus
Group=icarus
ExecStart=/opt/icarus/Icarus/Binaries/Linux/IcarusServer -Port=7778 -QueryPort=27017 -log
WorkingDirectory=/opt/icarus/Icarus/Binaries/Linux/
StandardOutput=journal
StandardError=journal
Restart=always
RestartSec=5
# Ограничения ресурсов через cgroups
CPUWeight=500  # 50% от доступного CPU по умолчанию (1024)
MemoryMax=6G   # Максимальное потребление памяти 6GB
IOWeight=500   # 50% от доступного I/O

[Install]
WantedBy=multi-user.target

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

  • `CPUWeight=500`: Аналогично Core Keeper, Icarus получит примерно 50% от доступного CPU.
  • `MemoryMax=6G`: Icarus обычно требует больше памяти, чем Core Keeper, поэтому здесь установлено 6 GB.

Сохраните файл, затем включите и запустите службу:

sudo systemctl daemon-reload
sudo systemctl enable icarus.service
sudo systemctl start icarus.service
sudo systemctl status icarus.service

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

Мониторинг и диагностика: кто съел память и грузит ядро?

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

Инструменты мониторинга (htop, glances, systemd-cgtop)

  • `htop`: Интерактивный монитор процессов, который показывает потребление CPU, памяти, а также список запущенных процессов. Запустите `htop` в терминале. Вы сможете увидеть, сколько CPU и RAM потребляет каждый процесс, включая ваши игровые серверы.
  • `glances`: Более продвинутый инструмент мониторинга, который предоставляет комплексную информацию о системе: CPU, RAM, дисковый ввод-вывод, сеть, процессы и т.д. Установите его командой `sudo apt install glances` и запустите `glances`.
  • `systemd-cgtop`: Этот инструмент особенно полезен, когда вы используете cgroups для ограничения ресурсов. Он показывает потребление ресурсов группами контроля (cgroups), к которым привязаны наши systemd-юниты. Запустите `systemd-cgtop`, чтобы увидеть, сколько CPU и RAM потребляют группы `corekeeper.service` и `icarus.service`. Это позволяет точно отследить, как соблюдаются установленные вами лимиты.

Логирование и отладка

Systemd по умолчанию направляет стандартный вывод и ошибки (StandardOutput, StandardError) ваших юнитов в журнал systemd. Вы можете просмотреть логи для каждого сервера отдельно:

sudo journalctl -u corekeeper.service -f
sudo journalctl -u icarus.service -f

Флаг `-f` позволяет следить за логами в реальном времени. Эти логи помогут выявить ошибки запуска, проблемы с конфигурацией или сбои в работе игрового сервера.

Быстрый выбор
Нужен выделенный сервер?
Bare metal с NVMe в 70+ локациях — настройка и заказ за пару минут.
К серверам

Сколько игровых серверов реально уживается на одном VPS?

Вопрос о том, сколько игровых серверов можно запустить на одном VPS, не имеет однозначного ответа. Это сильно зависит от нескольких факторов.

Факторы, влияющие на производительность

  • Сама игра: Некоторые игры, как Icarus, значительно более требовательны к CPU и RAM, чем другие, например, Core Keeper или Terraria.
  • Количество игроков: Чем больше одновременно играющих пользователей, тем выше нагрузка на сервер.
  • Модификации и плагины: Дополнительный контент может значительно увеличить потребление ресурсов.
  • Настройки мира: Размер мира, плотность объектов, частота сохранения – все это влияет на нагрузку.
  • Характеристики VPS: Количество vCPU, объем RAM, тип диска (NVMe SSD значительно быстрее обычного SSD) и пропускная способность сети.

Для 5-10 одновременных игроков в Core Keeper и 4-6 игроков в Icarus (с учетом их требовательности) достаточно 4 vCPU, 8 GB RAM и NVMe-диска на 80 GB.

Игроков (Core Keeper + Icarus) vCPU RAM Диск Порт Примерная цена VPS (Valebyte, $/мес)
5 + 4 4 8 GB 80 GB NVMe 1 Gbps От $25
10 + 6 6 12 GB 120 GB NVMe 1 Gbps От $40
15 + 8 8 16 GB 160 GB NVMe 1 Gbps От $60
20 + 10 12 24 GB 240 GB NVMe 1 Gbps От $90

Цены являются ориентировочными для предложений Valebyte на июль 2024 года и могут варьироваться в зависимости от акции и локации.

Рекомендации по выбору VPS

Для успешного размещения двух серверов на одном VPS (особенно таких требовательных, как Icarus) крайне важен мощный процессор с высокой тактовой частотой и быстрый NVMe-диск. Хотя количество vCPU важно, их производительность (частота и архитектура) играет не меньшую роль. Valebyte предлагает высокопроизводительные VPS с NVMe-дисками, которые идеально подходят для таких задач.

При выборе тарифного плана всегда закладывайте небольшой запас по ресурсам, особенно по RAM. Если один из серверов периодически будет использовать больше памяти, чем вы ожидали, это может привести к нестабильности или завершению процессов. Наличие cgroups с `MemoryMax` поможет предотвратить эти проблемы, но лучше иметь достаточный объем памяти для всех запущенных служб.

Часто задаваемые вопросы

Можно ли запустить Core Keeper и Icarus на одном VPS без конфликтов?

Да, это абсолютно реально и даже рекомендуется для экономии ресурсов. Главное — обеспечить каждому серверу уникальные сетевые порты, использовать раздельные системные пользователи и файловые каталоги, а также настроить systemd-юниты с ограничениями ресурсов (CPUWeight, MemoryMax) через cgroups. Это предотвратит конфликты и гарантирует стабильную работу обоих игровых серверов на одной машине.

Какие порты нужно открыть для Core Keeper и Icarus на одном VPS?

Для Core Keeper обычно используются порты 27015 (UDP/TCP для игры) и 27016 (UDP для запросов). Для Icarus в нашем сценарии мы изменили стандартные порты на 7778 (UDP для игры) и 27017 (UDP для запросов), чтобы избежать конфликта с Core Keeper. Все эти порты необходимо разрешить через фаервол, например, UFW, чтобы игроки могли подключаться.

Сколько RAM и CPU требуется для двух игровых серверов?

Требования зависят от игр и количества игроков. Для Core Keeper (до 10 игроков) и Icarus (до 6 игроков) на одном VPS рекомендуется минимум 8 GB RAM и 4 vCPU. Icarus более требователен к CPU и RAM, поэтому убедитесь, что у вас есть достаточный запас. Для большего количества игроков или более требовательных игр может понадобиться 12-16 GB RAM и 6-8 vCPU.

Как ограничить ресурсы одного игрового сервера, чтобы он не мешал другому?

Для ограничения ресурсов используйте systemd-юниты с директивами cgroups. Например, `CPUWeight=500` установит вес CPU, а `MemoryMax=4G` ограничит потребление оперативной памяти до 4 гигабайт для конкретного сервиса. Это гарантирует, что один сервер не сможет использовать все доступные ресурсы и тем самым замедлить или "задушить" другой.

Можно ли использовать systemd для автоматического запуска и перезапуска серверов?

Да, systemd — это стандартный и наиболее эффективный способ управления службами в Linux. Создание service-файлов для Core Keeper и Icarus позволяет не только автоматически запускать их при старте системы, но и настраивать автоматический перезапуск в случае сбоев (с помощью `Restart=always` и `RestartSec=5`), а также централизованно управлять их статусом и ресурсами.

Выводы

Запуск двух игровых серверов, таких как Core Keeper и Icarus, на одном VPS – это не только экономически выгодное, но и технически реализуемое решение. Ключ к успеху лежит в тщательной изоляции ресурсов через отдельные системные пользователи, уникальные сетевые порты и эффективное управление с помощью systemd-юнитов и cgroups. Рекомендуется использовать VPS с NVMe-дисками и достаточным объемом RAM (от 8 GB) и vCPU (от 4) для обеспечения стабильной работы обоих серверов под нагрузкой.

SSD NVMe
Готовы запустить свой VPS?

NVMe VPS с активацией за 60 секунд: полный root-доступ, 20+ локаций, оплата картой или криптой.

Выбрать тариф

Поделиться записью:

support_agent
Valebyte Support
Usually replies within minutes
Hi there!
Send us a message and we'll reply as soon as possible.