Как запустить несколько серверов Valheim на одном компьютере
Для нескольких серверов на одном компьютере каждому процессу нужен понятный набор параметров. Разведите имена миров, каталоги сохранений, точки подключения и журналы: разные названия в списке серверов сами по себе не разделяют данные и порты.
Сначала составьте план экземпляров
| Параметр | Сервер A — пример | Сервер B — пример |
|---|---|---|
| -name | Friends A | Friends B |
| -world | WorldA | WorldB |
| -savedir | /srv/valheim/a | /srv/valheim/b |
| -port | 2456 | 2458 |
| Используемая пара портов | 2456–2457 | 2458–2459 |
| -logFile | /srv/valheim/a/server.log | /srv/valheim/b/server.log |
Это пример разнесения значений, а не готовая конфигурация для любого хоста. Выбранные каталоги должны существовать и быть доступны процессу сервера. Имена WorldA и WorldB относятся к мирам; это не seed и не отображаемое имя сервера.
Отдельные миры и каталоги сохранений
Параметр -savedir меняет место хранения миров и файлов прав. При раздельных каталогах у каждого экземпляра будут собственные adminlist.txt, bannedlist.txt и permittedlist.txt. Перенесённые списки прав проверяйте отдельно: настройки одного сервера не стоит случайно применять к другому.
Нельзя одновременно открывать один и тот же мир для записи несколькими процессами. Community-источник прямо предупреждает против одновременного использования одного мира игрой и сервером. Для независимых экземпляров используйте отдельные копии после корректной остановки. Если мир хранится парой .db и .fwl, переносите оба файла вместе; при другом формате копируйте полный набор данных мира.
Разведите базовые порты и следующий порт
Valheim использует указанный в -port порт и порт +1. Поэтому значения 2456 и 2457 не образуют две независимые пары: вторая пара пересекается с первой. В примере выше выбраны 2456–2457 и 2458–2459. Перед запуском убедитесь, что эти порты свободны и предназначены именно выбранным экземплярам.
Для Steam backend настройте сетевой доступ и, если нужен внешний доступ через роутер, проброс каждой пары UDP-портов на серверный компьютер. Игрокам сообщайте соответствующий адрес и базовый игровой порт, чтобы они не попадали в другой мир.
Crossplay и параметр instanceid
Crossplay использует PlayFab relay, но номер порта всё равно служит для различения серверов на одном публичном IP. Официальное руководство отдельно описывает -instanceid: при нескольких серверах с одинаковыми портом и MAC address задавайте каждому уникальное значение, чтобы у них были разные PlayFab IDs.
Запускайте и проверяйте по одному
- Создайте отдельную копию поставляемого стартового скрипта для каждого набора параметров: оригинал может обновляться вместе с сервером.
- Сверьте -world, -savedir, -port и путь журнала до запуска первого процесса.
- Дождитесь готовности сервера и проверьте вход в нужный мир.
- Повторите проверку для второго экземпляра, затем убедитесь, что оба адреса ведут в ожидаемые миры.
- Останавливайте каждый процесс корректно и храните резервные копии раздельно.
Если оба подключения приводят в один мир, сначала сравните используемые скрипты, параметры -world и -savedir, а не начинайте создавать новые постройки. Если второй процесс не запускается, проверьте пересечение пар портов и первый сбой его отдельного журнала.
Гайд был полезен?