Настройка многопользовательского сервера
Базовая Настройка
Временный сервер
Если вы хотите получить временный многопользовательский опыт, достаточно открыть однопользовательский мир, а затем нажать кнопку "Открыть в локальную сеть" в меню escape. Это позволит игрокам в вашей локальной сети присоединиться. Если вы хотите разрешить игрокам за пределами вашей локальной сети присоединиться к вам, вы также можете нажать кнопку "Открыть для Интернета", которая попытается настроить внешнее соединение для подключения к вашему серверу из интернета. Это делается с помощью метода, называемого UPnP, и должно быть включено на вашем интернет-маршрутизаторе, который часто используется по умолчанию. Короче говоря, мы оцениваем вероятность успеха примерно в 60%, что "открытый для интернета" работает мгновенно и без проблем. Если это не так, вам нужно будет настроить так называемую "переадресацию портов" на вашем интернет-маршрутизаторе, что, к сожалению, иногда может быть сложно и неприятно. В этом случае вам нужно будет перенаправить TCP-порт 42420 на ваш компьютер. (Google 'Port forwarding' с именем или моделью вашего интернет-маршрутизатора, чтобы найти помощь.)
Чтобы этот сервер работал, ваш однопользовательский мир должен оставаться открытым.
Выделенный сервер
В качестве альтернативы игра поставляется с выделенной серверной программой, которую вы можете запустить и оставить включенной навсегда, не входя в систему самостоятельно. Существует несколько способов запустить выделенный сервер.
Платные хостинги
Хостинг предоставляется создателями игры через интегрированную панель управления серверами, поддержки модов пока нет, серверы расположены в центральной Европе.
Сторонние хостинговые сервисы в порядке убывания:
- Pingperfect
- 4netplayers
- Bisecthosting
- HostHavoc
- Akliz
- CitadelHosting
- Something Unique Hosting
- GTX.gaming.uk
- CreeperHost
- Shockbyte
- Gportal (если вы устанавливаете моды, то лучше отключить автообновления)
- Nitrado (предположительно, в процессе удаления поддержки Vintage Story)
Выделенные серверы для ОС Windows
- Откройте папку игры, по умолчанию это
%appdata%/VintageStory
- запустите
VintagestoryServer.exe
. - Возможно, Вам потребуется настроить переадресацию портов на вашем роутере, если сервер должен быть доступен за пределами вашей локальной сети (для людей, которые не используют тот же Wi-Fi, что и вы).
Выделенные серверы для ОС Linux
Здесь описано, как настроить сервер как службу в системах Linux.
Примечание: Это работает только для процессоров на базе x64 архитектуры, при использовании ARM, пожалуйста, обратитесь к следующему разделу.
Требования
- .NET Runtime 7.0 Этого должно быть достаточно для запуска сервера Vintage story. Все остальное предназначено только для удобства запуска и управления им.
- установите
pgrep
,screen
иwget
с помощью системного менеджера пакетов.
Запуск сервера
1. Скачайте игру
Совет: Создайте отдельную директорию для Vintage Story, поскольку tar.gz не содержит подпапок.
mkdir server && cd server
Перейдите к http://account.vintagestory.at/downloads
Скопируйте ссылку на новейший пакет "vs_server_linux-x64_*.*.*.tar.gz" ('Сервер Linux (.tar.gz)' в разделе 'Показать другие доступные загрузки Vintage Story')
Загрузите с помощью "wget" через консоль (В этом примере Vintage Story версии 1.18.8).
wget https://cdn.vintagestory.at/gamefiles/stable/vs_server_linux-x64_1.18.8.tar.gz
2. Разархивируйте tar.gz архив
tar xzf vs_server_linux-x64_*.*.*.tar.gz
3. Сделайте скрипт server.sh исполняемым
chmod +x server.sh
4. Отредактируйте файл server.sh
По соображениям безопасности вы не должны запускать сервер от имени пользователя root, поэтому по умолчанию имя пользователя установлено на vintagestory. В большинстве операционных систем linux вы можете создать пользователя с помощью команды adduser.
adduser vintagestory
Затем измените эти параметры в соответствии с вашими потребностями:
USERNAME='<your-vs-server-username>' VSPATH='<your-vs-directory>'
7. Откройте порт на брандмауэре (если это необходимо)"'
firewalld
firewall-cmd --permanent --zone=public --add-port=42420/tcp firewall-cmd --reload
iptables
iptables -A INPUT -p tcp -m tcp --dport 42420 -j ACCEPT
8. Запуск сервера и первые шаги"'
./server.sh start
Дождитесь завершения запуска, и тогда вы сможете дать себе OP с помощью ./server.sh command "/op <youusername>"
9. Подключайтесь к IP/домену и получайте удовольствие"'
Dedicated Servers on ARM64
Note: Please note the ARM64 version is EXPERIMENTAL please report any issues to the discord
The ARM64 version is available on GitHub
I recommend using the install script located on the GitHub. The following is a step by step guide on how to use the script on a Debian based system (Ubuntu, Debian, Rasbian, etc).
1. Install the required dependencies to use this script by doing apt -y install curl jq
2. Create a new file named arminstall.sh
by running vim arminstall.sh
or nano arminstall.sh
3. Copy the contents of the arminstall.sh
file from GitHub to your newly created file and save it by using :wq
with Vim or Ctrl + X
, then Y
, then Enter
with Nano.
4. Make the script executable by running chmod +x arminstall.sh
5. Run the script by doing ./arminstall.sh
6. Start the server by using ./VintagestoryServer
or dotnet VintagestoryServer.dll
This will download the latest version of Vintagestory to the current working directory, then replace the needed files to work with ARM.
If at any time you want to update to the latest version of Vintage Story, simply run the script again.
Simple Server start command
If you want to use a custom script or just manually start your server you can run
dotnet VintagestoryServer.dll --dataPath /path/to/data
Or
./VintagestoryServer --dataPath /path/to/data
if you have the DOTNET_ROOT
environment variable set.
Обновление серверов
Если вы хотите установить более новую версию, сначала удалите все установочные файлы, иначе вы получите непредвиденное поведение. Если вы выбрали папку данных внутри папки установки, не удаляйте ее, иначе вы потеряете сохраненные игры, настройки и данные игрока. Загрузите файл «Tar.gz Archive/Linux (только сервер)» и распакуйте его. Если у вас есть удаленная установка и только FTP-подключение к вашему серверу, вам придется распаковывать его локально и загружать каждый файл.
Основные Настройки
Как только ваш сервер будет запущен, вы можете просмотреть некоторые из следующих параметров конфигурации. Вы можете настроить сервер во время его работы с помощью команд или путем редактирования файла serverconfig.json, для этого сервер должен быть остановлен. В windows по умолчанию этот файл находится по адресу "%appdata%/VintageStoryData/serverconfig.json". В Linux находится на уровне "'./data/serverconfig.json"' в каталоге сервера (напр., /home/vintagestory/server/data/serverconfig.json если настройки, как описано здесь)
Подсказка:
Самый простой способ настроить мир в соответствии с вашими пожеланиями — сначала создать его в одиночной игре, используя расширенные параметры создания мира, а затем загрузить его для использования в качестве сервера. |
"Объяснение значений в serverconfig.json вы можете найти здесь: server Config/ru"
Вот некоторые из конфигураций, задаваемых командами, которые обычно устанавливают.
/serverconfig upnp [0|1]
Если установлено значение один, игровой сервер попытается настроить переадресацию портов для вас/serverconfig name Peaceful PvE Server
настройка имени сервера, видимого в списке общедоступных серверов/serverconfig description Это средневековый сервер выживания, только PvE, добро пожаловать всем!<3
настройте описание серверов, видимое в списке общедоступных серверов/serverconfig motd Hi {playername}!Пожалуйста, не забывайте следовать правилам!
сообщение, показанное игрокам, когда они присоединяются/serverconfig password asdaf
Если необходим пароль для входа , используйте/serverconfig nopassword
для повторного удаления./serverconfig advertise (1|0)
Если следует добавить этот сервер в список общедоступных серверов
Наконец, вы можете настроить сервер, созданный с помощью метода "открыть в локальную сеть", так же, как и для выделенных серверов, однако имейте в виду, что в этом случае некоторые конфигурации переопределяются клиентом, например расположение файла сохранения.
Получение прав администратора сервера
Если у вас есть доступ к консоли сервера, введите /op playername
. Если нет, откройте serverconfig.json и замените
"StartupCommands": null,
с
"StartupCommands": "/op playername",
В обоих случаях вы должны заменить playername
своим реальным именем игрока.
Расширенный Выделенный Сервер
Debian с сервисом systemd и rsyslog
Если вы предпочитаете использовать systemd вместо экрана для запуска вашего VS-сервера, вы можете следовать этим инструкциям.
Мы также настроим rsyslog для разделения всех журналов на отдельные файлы.
If you prefer using systemd instead of screen to run your VS Server, you can follow these Instructions.
We also will setup rsyslog to split all logs into separate files.
Установка
2. создание пользователя
adduser --shell /bin/bash --disabled-password gameserver
3. создание каталогов
mkdir -p /srv/gameserver/vintagestory mkdir -p /srv/gameserver/data/vs mkdir -p /usr/lib/systemd/system
3. Скачать игру'
cd /srv/gameserver/vintagestory
Перейти http://account.vintagestory.at/downloads
Скопируйте ссылку из новейших "vs_server_*.*.*.пакет tar.gz" ("'Tar.gz Archive/Linux (server only)"' под надписью "'показать другие доступные загрузки Vintage Story"')
Скачать с помощью "wget" через консоль ("Vintage Story version 1.12.9 в этом примере").
4. Извлечение tar.gz архива"'
tar xzf vs_server_1.12.9.tar.gz 5. Сменить владельца
5. Change owner
Вы должны установить владельца каталога Вашего игрового сервера, чтобы избежать ошибок разрешения на запись
chown -R gameserver:gameserver /srv/gameserver
6. Создать файл сервисного блока systemd"'
Используйте свой любимый инструмент для создания файла сервисной единицы (в этом примере используется nano)
nano /usr/lib/systemd/system/vintagestoryserver.service
Вставить следующее содержимое
[Unit] Description=Vintage Story Server Unit After=network.target [Service] WorkingDirectory=/srv/gameserver/vintagestory ExecStart=/usr/bin/mono VintagestoryServer.exe --dataPath /srv/gameserver/data/vs Restart=always RestartSec=30 StandardOutput=syslog StandardError=syslog SyslogIdentifier=VSSRV User=gameserver Group=gameserver [Install] WantedBy=multi-user.target
Make sure the new user has access to the dotnet
command or replace the command with the full path to where you installed the dotnet runtime (if you picked a custom install). Or you can also use ExecStart=VintagestoryServer --dataPath /srv/gameserver/data/vs
if you have the DOTNET_ROOT
environment variable set.
7. Создать конфигурационный файл для rsyslog"'
Используйте свой любимый инструмент для создания конфигурационного файла rsyslog (в этом примере используется nano)
nano /etc/rsyslog.d/vintagestoryserver.conf
Вставить следующее содержимое
if $programname == 'VSSRV' then { if($msg contains "Chat") then { action(type="omfile" dirCreateMode="0755" FileCreateMode="0644" File="/var/log/vintagestory-server/chat.log") } else if($msg contains "verließ") then { action(type="omfile" dirCreateMode="0755" FileCreateMode="0644" File="/var/log/vintagestory-server/login.log") } else if($msg contains "join") then { action(type="omfile" dirCreateMode="0755" FileCreateMode="0644" File="/var/log/vintagestory-server/login.log") } else if($msg contains "Server Warning") then { action(type="omfile" dirCreateMode="0755" FileCreateMode="0644" File="/var/log/vintagestory-server/warn.log") } else if($msg contains "Server Notification") then { action(type="omfile" dirCreateMode="0755" FileCreateMode="0644" File="/var/log/vintagestory-server/info.log") } else if($msg contains "Server Debug") then { action(type="omfile" dirCreateMode="0755" FileCreateMode="0644" File="/var/log/vintagestory-server/debug.log") } else if($msg contains "Server Event") then { action(type="omfile" dirCreateMode="0755" FileCreateMode="0644" File="/var/log/vintagestory-server/event.log") } else { action(type="omfile" dirCreateMode="0755" FileCreateMode="0644" File="/var/log/vintagestory-server/other.log") } } # Discard if $programname == 'VSSRV' then ~
8. перезапустить rsyslog / включить службу Чтобы активировать rsyslog и ваш сервер vintagestory введите следующие команды
systemctl restart rsyslog.service; systemctl enable vintagestoryserver.service systemctl start vintagestoryserver.service
8. restart rsyslog / enable service To activate rsyslog and your vintagestory server type these commands
systemctl restart rsyslog.service; systemctl enable vintagestoryserver.service systemctl start vintagestoryserver.service
Остановка, Запуск, Отключение Сервера
Чтобы остановить свой сервер используйте эту команду
systemctl stop vintagestoryserver.service
Чтобы снова запустить VS сервер введите
systemctl start vintagestoryserver.service
Чтобы отключить использование сервиса
systemctl disable vintagestoryserver.service
Конфигурация
чтобы изменить конфигурацию серверов, остановите сервер и отредактируйте его
nano /srv/gameserver/data/vs/serverconfig.json
После того как вы сохранили свои изменения, снова запустите сервер.
Расписание перезапуска
Если вы хотите, чтобы ваш сервер перезапускался каждый день, Вы можете настроить cronjob для этого crontab-e вставьте эту строку, чтобы остановить сервер в 04: 30
30 4 * * * systemctl stop vintagestoryserver. service теперь
вы можете выполнить задачи резервного копирования, а затем запустить их снова со следующей строкой в 04: 32 (если вы запускаете задачу резервного копирования, запланируйте здесь еще некоторое время)
32 4 * * * systemctl start vintagestoryserver
Если вы просто хотите перезапустить сервер эта строка вместо двух верхних
30 4 * * * systemctl перезапустить vintagestoryserver. service
Регистрация
Конфигурация rsyslog разбивает выходные журналы на отдельные файлы, которые вы можете просматривать с помощью команды tail
Для входа/выхода из системы см.
tail -f /var/log/vintagestory-server/login.log
Для всех сообщений чата см.
tail -f /var/log/vintagestory-server/chat.log
Все сообщения, содержащие [предупреждение сервера], см. В разделе
tail -f /var/log/vintagestory-server/warn.log
Все сообщения, содержащие [уведомление сервера], см. В разделе
tail -f /var/log/vintagestory-server/info.log
Для всех сообщений, содержащих [тестовый сервер] см.
tail -f /var/log/vintagestory-server/debug.log
Все сообщения, содержащие [событие сервера], см. В разделе
tail -f /var/log/vintagestory-server/event.log
Все остальные сообщения см. В разделе
tail -f /var/log/vintagestory-server/other.log
Несколько Экземпляров Сервера
Если вы хотите запустить несколько экземпляров на одной машине, вам просто нужно повторить некоторые из описанных выше шагов. Это всего лишь пример для второго экземпляра:
mkdir -p /srv/gameserver/data/vs2
nano /usr/lib/systemd/system/vintagestoryserver2.service
Скопируйте из шага 6 и измените эти строки:
Description=Vintage Story Server 2 Unit ExecStart=/usr/bin/mono VintagestoryServer.exe --dataPath /srv/gameserver/data/vs2 SyslogIdentifier=VSSRV2
Создайте файл rsyslog и скопируйте код с шага 7
nano /etc/rsyslog.d/vintagestoryserver2.conf
Измените VSSRV
на VSSRV2
и /var/log/vintagestory-server
на /var/log/vintagestory-server2
Прежде чем продолжить, сделайте копию вашей первой конфигурации сервера и отредактируйте ее в соответствии с вашими потребностями (измените порт!!!)
cp /srv/gameserver/data/vs/serverconfig.json /srv/gameserver/data/vs2/ nano /srv/gameserver/data/vs2/serverconfig.json
Теперь запустите службу
systemctl restart rsyslog.service; systemctl enable vintagestoryserver2.service systemctl start vintagestoryserver2.service
Установите cronjob
crontab -e
Введите
30 4 * * * systemctl restart vintagestoryserver2.service
Приятной игры!
Advanced setup
Using an SRV Record to point a domain to your server
In some cases, you may not able to get a server with the default port (Multiple instances on the same server, paid hosts...), and you will have to add the port at the end of the server's address in order to connect to it.
But you might want to avoid the need to specify the port (Easier to remember, look cleaner).
There is a way to point a domain to your server and avoid the need to add the port : SRV Records
SRV Records allow you to point a domain/subdomain to your instance, while letting the game know the port to use.
How to set up an SRV Records will depend on your domain provider, and you should check on their documentation before making any changes. However, the idea and values remain the same for every provider.
Let's take a server with the following details :
- Address :
play.example.com
- Port :
50030
- Owned domain :
mydomain.com
- Desired subdomain :
vintagestory.mydomain.com
Your raw SRV Records should look something like this :
_vintagestory._tcp.vintagestory.mydomain.com. IN SRV 10 10 50030 server.example.com.
The underscores and trailing dots are important! Here are some details :
_vintagestory
define the service, in our case, Vintage Story_tcp
define the protocol, Vintage Story use TCPvintagestory.mydomain.com.
is the subdomain we want to use. The trailing dot is important!IN SRV
Define the record type, don't change this10 10
are in order the priority and the weight of our record, in our case those are not important, as you are probably not going to load balance a Vintage Story server50030
is the port our instance is listening onserver.example.com.
is the target, where the server is located. The trailing dot is mandatory as the target server is not on the same domain as us. If it was the case, you would only need to add the subdomain of the target without the trailing dot
If you wanted to have your record pointing to your domain directly, you would have mydomain.com.
instead of vintagestory.mydomain.com.
Here is how to do it for OVH and Hetzner (Don't forget to edit the values to suit your setup !) :
OVH
You will need to go to your DNS zone and add an entry, select the SRV Record type :
- Sub-domain :
_vintagestory._tcp.vintagestory
You don't need to add your domain, as their form do it for you. - TTL : No need to change this
- Priority :
10
- Weight :
10
- Port :
50030
- Target :
server.example.com.
Hetzner
You will need to create a record from their DNS Console :
- Type :
SRV
- Name :
_vintagestory._tcp.vintagestory.mydomain.com.
Click on the Value field to enter the details :
- Priority :
10
- Weight :
10
- Port :
50030
- Target :
server.example.com.
Wait a few minutes for your record to propagate and then try to use it to connect to the server, using vintagestory.mydomain.com
as the address.
You are now all set up to share your server with your custom domain.
Вики-навигация | |
---|---|
Vintage Story | Руководство • Частые вопросы (ЧАВО) • Саундтрек • Версии • Управление |
Игровые системы | Крафт • Откалывание • Формование глины • Кузнечное Дело • Кулинария • Температура • Голод • Горное дело • Темпоральная стабильность • Механическая сила • Торговля • Растениеводство • Животноводство |
Мир | Генерация мира • Биомы • Погода • Темпоральные штормы |
Предметы | Инструменты • Орудия • Броня • Одежда • Сумки • Материалы • Еда |
Блоки | Ландшафт • Растения • Декор • Источники света • Функциональные • Руда |
Сущности | Враждебные существа • Животные • NPC • Игроки |
Miscellaneous | Список клиентских команд • Список команд сервера • Creative Starter Guide • Система ботов • Как использовать WorldEdit • Кинематографичная камера • Регулируемая частота кадров при записи видео • Система тиков |