Setting up a Multiplayer Server/ru: Difference between revisions

From Vintage Story Wiki
(Created page with "после этого")
(Created page with "Чтобы настройки вашего многопользовательского сервера не мешали настройкам вашего одиночного сервера, используйте параметр --dataPath.")
 
(152 intermediate revisions by 5 users not shown)
Line 1: Line 1:
<languages/><br>
==Базовая Настройка ==
==Базовая Настройка ==


===Временный сервер===
=== Временный сервер ===
 
Если вы хотите получить временный многопользовательский опыт, достаточно открыть однопользовательский мир, а затем нажать кнопку "Открыть в локальную сеть" в меню escape. Это позволит игрокам в вашей локальной сети присоединиться.
Если вы хотите получить временный многопользовательский опыт, достаточно открыть однопользовательский мир, а затем нажать кнопку "Открыть в локальную сеть" в меню escape. Это позволит игрокам в вашей локальной сети присоединиться.
Если вы хотите разрешить игрокам за пределами вашей локальной сети присоединиться к вам, вы также можете нажать кнопку "Открыть для Интернета", которая попытается настроить внешнее соединение для подключения к вашему серверу из интернета. Это делается с помощью метода, называемого UPnP, и должно быть включено на вашем интернет-маршрутизаторе, который часто используется по умолчанию. Короче говоря, мы оцениваем вероятность успеха примерно в 60%, что "открытый для интернета" работает мгновенно и без проблем. Если это не так, вам нужно будет настроить так называемую "переадресацию портов" на вашем интернет-маршрутизаторе, что, к сожалению, иногда может быть сложно и неприятно. В этом случае вам нужно будет перенаправить TCP-порт 42420 на ваш компьютер. (Google 'Port forwarding' с именем или моделью вашего интернет-маршрутизатора, чтобы найти помощь.)
Если вы хотите разрешить игрокам за пределами вашей локальной сети присоединиться к вам, вы также можете нажать кнопку "Открыть для Интернета", которая попытается настроить внешнее соединение для подключения к вашему серверу из интернета. Это делается с помощью метода, называемого UPnP, и должно быть включено на вашем интернет-маршрутизаторе, который часто используется по умолчанию. Короче говоря, мы оцениваем вероятность успеха примерно в 60%, что "открытый для интернета" работает мгновенно и без проблем. Если это не так, вам нужно будет настроить так называемую "переадресацию портов" на вашем интернет-маршрутизаторе, что, к сожалению, иногда может быть сложно и неприятно. В этом случае вам нужно будет перенаправить TCP-порт 42420 на ваш компьютер. (Google 'Port forwarding' с именем или моделью вашего интернет-маршрутизатора, чтобы найти помощь.)


Чтобы этот сервер работал, ваш однопользовательский мир должен оставаться открытым.
Чтобы этот сервер работал, ваш однопользовательский мир должен оставаться открытым.
----
=== Выделенный сервер ===


===Выделенный сервер===
В качестве альтернативы игра поставляется с выделенной серверной программой, которую вы можете запустить и оставить включенной навсегда, не входя в систему самостоятельно.
В качестве альтернативы игра поставляется с выделенной серверной программой, которую вы можете запустить и оставить включенной навсегда, не входя в систему самостоятельно.
Существует несколько способов запустить выделенный сервер.
Существует несколько способов запустить выделенный сервер.


= = = = Платные хосты ====
==== Платные хостинги ====
Некоторые коммерческие хостинговые услуги предлагают платный хостинг серверов. В настоящее время Vintage Story hosting предлагается компаниями [https://pingperfect.com/ PingPerfect], [https://citadelservers.com/ Citadel Server], [https://www.creeperhost.net/ Creeperhost], [https://www.akliz.net/games/vintage-story Akliz] and [https://www.g-portal.com/en/gameserver/rent-a-vintage-story-server GPortal]
 
См. {{ll|List of server hosting providers|список хостингов для серверов}}
 
==== Выделенные серверы для ОС Windows ====
 
Чтобы настройки вашего многопользовательского сервера не мешали настройкам вашего одиночного сервера, используйте параметр --dataPath.


==== Выделенные серверы на Windows ====
<div lang="en" dir="ltr" class="mw-content-ltr">
* Откройте папку игры, по умолчанию это %appdata%/VintageStory
'''Shortcut method:'''
* запустите VintagestoryServer.exe
# Navigate to the location where you will store the server's data, such as a new VintagestoryServer folder created in <code>C:\Users\YourUsername\AppData\Roaming</code>
* Возможно, Вам потребуется настроить переадресацию портов на вашем интернет-маршрутизаторе, если сервер должен быть доступен за пределами вашей локальной сети (интернета).
# Create a folder for the server's data and give it a clear name, such as VSserverData
# Open that folder and copy the entire path from the address bar of File Explorer.  (example: <code>C:\Users\YourUsername\AppData\Roaming\VintagestoryServer\VSserverData</code>)
# Open the game's application folder, it is <code>%appdata%/VintageStory</code> by default.
# Create a shortcut of <code>VintagestoryServer.exe</code>.  This can usually be accomplished through the right-click menu; google instructions specific to your operating system version if needed.
# Open the Properties of the new shortcut.  This can usually be accomplished through the right-click menu.
# Click in the Target field of the shortcut's Properties, then go to the very end of what's written there.  Add one space, then <code>--dataPath=</code>, then Paste the folder path you copied earlier, in quotes.  The entire contents of the Target field should now be something like this: <code>"C:\Users\YourUsername\AppData\Roaming\Vintagestory\VintagestoryServer.exe" --dataPath="C:\Users\YourUsername\AppData\Roaming\VintagestoryServer\VSserverData"</code>
* Optional: you can move/copy the shortcut, to your desktop and/or your new VintagestoryServer folder
</div>


==== Выделенные серверы на Linux ====
<div lang="en" dir="ltr" class="mw-content-ltr">
Здесь описано, как настроить сервер в качестве службы в системах Linux.
'''Batch script method''' (functionally equivalent to the shortcut method above):
# To create a batch script, simply create a blank text document and rename it with the .bat file extension. 
# You can edit it by right clicking and selecting edit.  Then just type <code>%appdata%/Vintagestory/VintagestoryServer.exe --dataPath "[PATH]"</code>  replacing [PATH] with the desired path for the server's data, then save and close. 
Running the script will run the server with the alternate datapath, and will generate its own collection of config files there.  This is functionally equivalent to the modified link.
</div>


=====Требования к CentOS 7 (RHEL, Fedora, ...)=====
Далее:
'''1. EPEL/screen/wget/curl Install'''
* запустите ярлык <code>VintagestoryServer.exe</code> или батник.
* Если Защитник Windows попросит выдать разрешение — сделайте это.
* Возможно, вам потребуется настроить переадресацию порта 42420 на вашем роутере, если сервер должен быть доступен за пределами вашей локальной сети (для людей, которые не используют тот же Wi-Fi, что и вы). Этот процесс значительно отличается; загуглите инструкции для вашей конкретной модели маршрутизатора.


  yum -y install epel-release screen wget curl
===== Использование Windows на виртуальной машине =====


'''2. Моно Установка"'
<div lang="en" dir="ltr" class="mw-content-ltr">
There are some reports that LAN connection to a Vintage Story server running inside a Windows virtual machine (VM) can be slow, even when internet (WAN) connections have normal performance. This may depend on VM solution and network drivers.  If this affects you, a suggested workaround is to use the Paravirtualized network adapter (virtio-net) for network adapters. The drivers are located [https://docs.oracle.com/en/virtualization/virtualbox/6.0/user/nichardware.html here].
</div>


  yum -y install yum-utils
----
  rpm --import "http://keyserver.ubuntu.com/pks/lookup?op=get&search=0x3FA7E0328081BFF6A14DA29AA6A19B38D3D831EF"
  yum-config-manager --add-repo http://download.mono-project.com/repo/centos/
  yum -y install mono mono-devel


===== Требования к Ubuntu (Debian, Mint,...) =====
==== Выделенные серверы для ОС Linux ====
'''1. screen/wget/curl Install'''


  sudo apt install -y screen wget curl
Здесь описано, как настроить сервер как службу в системах Linux.<br>
<span style="color:#E16100">Примечание: ''Это работает только для процессоров на базе x64 архитектуры, при использовании ARM, пожалуйста, обратитесь к следующему разделу.''</span><br>


'''2. Моно Установка"'
=== Требования ===


Начиная с "Vintage Story version 1.12.7" и выше рекомендуется использовать "Mono version 5 или выше".
* [https://dotnet.microsoft.com/en-us/download/dotnet/7.0 .NET Runtime 7.0] Этого должно быть достаточно для запуска сервера Vintage story. Все остальное предназначено только для удобства запуска и управления им.
Это "это написано, предполагая Ubuntu 18.04" в качестве базовой ОС.
* установите <code>pgrep</code>, <code>screen</code> и <code>wget</code> с помощью системного менеджера пакетов.
Чтобы установить последнюю стабильную версию для вашего конкретного дистрибутива, пожалуйста, следуйте инструкциям из [https://www.mono-project.com/download/stable/#download-lin официальная страница загрузки моно-проекта].
sudo apt install gnupg ca-certificates
  sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 3FA7E0328081BFF6A14DA29AA6A19B38D3D831EF
  echo "deb https://download.mono-project.com/repo/ubuntu stable-bionic main" | sudo tee /etc/apt/sources.list.d/mono-official-stable.list
  sudo apt update
  sudo apt install -y mono-complete


----<br>
===== Запуск сервера =====


'''3. Загрузить игру'''
'''1. Скачайте игру'''


<span style="color:#E16100">Advice: ''Создайте отдельный каталог для Vintage Story так как tar.gz не содержит вложенной папки.''</span>
<span style="color:#E16100">Совет: ''Создайте отдельную директорию для Vintage Story, поскольку tar.gz не содержит подпапок''</span>.
   mkdir server && cd server
   mkdir server && cd server


Перейдите http://account.vintagestory.at/downloads<br>
Перейдите к http://account.vintagestory.at/downloads <br>
Скопируйте ссылку из новейших "vs_server_*.*.*.пакет tar.gz" ("'Tar.gz Archive/Linux (server only)"' под надписью "'Показать другие доступные загрузки Vintage Story"')<br>
Скопируйте ссылку на новейший пакет "vs_server_linux-x64_*.*.*.tar.gz" (''''Сервер Linux (.tar.gz)'''' в разделе ''''Показать другие доступные загрузки Vintage Story'''')<br>
Скачать с помощью "wget" через консоль ("Vintage Story version 1.12.9 в этом примере").
Загрузите с помощью "wget" через консоль (''В этом примере Vintage Story версии 1.18.8'').


   wget https://cdn.vintagestory.at/gamefiles/stable/vs_server_1.12.9.tar.gz
   wget https://cdn.vintagestory.at/gamefiles/stable/vs_server_linux-x64_1.18.8.tar.gz


'''4. Извлечение tar.gz архива"'
'''2. Разархивируйте tar.gz архив'''


   tar xzf vs_server_*.*.*.tar.gz
   tar xzf vs_server_linux-x64_*.*.*.tar.gz


'''5. Запустить server.sh "'
'''3. Сделайте скрипт server.sh исполняемым'''


   chmod +x server.sh
   chmod +x server.sh


'''6. Редактировать server.sh "'
'''4. Отредактируйте файл server.sh'''


По соображениям безопасности вы не должны запускать сервер от имени пользователя root, поэтому по умолчанию имя пользователя установлено на vintagestory.
По соображениям безопасности вы не должны запускать сервер, как root пользователь, поэтому по умолчанию имя пользователя установлено на vintagestory.
В большинстве операционных систем linux вы можете создать пользователя с помощью команды adduser.
В большинстве дистрибутивов Linux вы можете создать пользователя с помощью команды adduser.


   adduser vintagestory
   adduser vintagestory
Line 83: Line 98:
   VSPATH='<your-vs-directory>'
   VSPATH='<your-vs-directory>'


'''7. Откройте порт на брандмауэре (если это необходимо)"'
'''5. Откройте порт в брандмауэре (если это необходимо)'''


firewalld
firewalld
Line 91: Line 106:
   iptables -A INPUT -p tcp -m tcp --dport 42420 -j ACCEPT
   iptables -A INPUT -p tcp -m tcp --dport 42420 -j ACCEPT


'''8. Запуск сервера и первые шаги"'
'''6. Запуск сервера и первые шаги'''


  ./server.sh start
    ./server.sh start
   Дождитесь завершения запуска, и тогда вы сможете дать себе OP с помощью  
 
   Дождитесь окончания запуска, затем вы можете дать себе полный доступ с помощью
   ./server.sh command "/op <youusername>"
   ./server.sh command "/op <youusername>"


'''9. Подключайтесь к IP/домену и получайте удовольствие"'
'''7. Подключайтесь к вашему IP/домену и получайте удовольствие'''
----
 
==== Выделенные сервера для архитектуры ARM64 ====
 
<span style="color:#E16100">Примечание: ''Пожалуйста, обратите внимание, что версия ARM64 является ЭКСПЕРИМЕНТАЛЬНОЙ, пожалуйста, сообщайте о любых проблемах в [https://discord.com/channels/302152934249070593/1128220205181587516 discord ]''.


===== Требования к Alpine (Advanced, без поддержки) =====
<div lang="en" dir="ltr" class="mw-content-ltr">
'''1. Установка mono"'
Currently (in game version 1.19.3 - 1.19.4, February 2024) no ARM64 .NET7 version of the '''Harmony''' patching library is available. Therefore coded mods which use Harmony will not work on an ARM64 server.  If a beta of the Harmony library becomes available in future, server owners can try installing it for themselves.</span>
</div>


Поскольку mono находится в тестировании в Alpine, URL-адрес тестирования (http://dl-cdn.alpinelinux.org/alpine/edge/testing) придется раскомментировать в
Версия ARM64 доступна по адресу [https://github.com/anegostudios/VintagestoryServerArm64 GitHub ]


  /etc/apk/repositories
Рекомендуется использовать установочный скрипт, расположенный на GitHub. Ниже приведено пошаговое руководство по использованию скрипта в системе на базе дистрибутива Debian (Ubuntu, Debian, Raspbian и т.д.).


после этого  
1. Установите необходимые зависимости для использования этого скрипта, выполнив <code>apt -y install curl jq</code>


  apk update
2. Создайте новый файл с именем <code>arm install.sh</code>, запустив <code>vim arminstall.sh </code> или <code>nano arminstall.sh</code>
  apk add mono mono-dev


'''2. Install tmux'''
3. Скопируйте содержимое <code>arminstall.sh </code> скопируйте с GitHub в ваш только что созданный файл и сохраните его, используя <code>:wq</code> с помощью Vim или <code>Ctrl + X</code>, затем нажмите <code>Y</code>, затем нажмите <code>Enter</code> с помощью Nano.


  apk add tmux
4. Сделайте скрипт исполняемым, запустив <code>chmod +x arm install.sh</code>


'''3. Certificates'''
5. Запустите скрипт, выполнив команду <code>./arm install.sh</code>


  apk add ca-certificates
6. Запустите сервер с помощью <code>./VintagestoryServer</code> или <code>dotnet Vintage storyServer.dll</code>


then run
Это загрузит последнюю версию Vintage story в текущий рабочий каталог, а затем заменит необходимые файлы для работы с ARM.


  cert-sync /etc/ssl/certs/ca-certificates.crt
Если в любой момент вы захотите обновить Vintage Story до последней версии, просто запустите скрипт еще раз.
----


to update the certs.
==== Простая команда запуска сервера ====


'''4. Simplified Start Script'''
Если вы хотите использовать пользовательский скрипт или просто вручную запустить свой сервер, вы можете запустить
dotnet VintagestoryServer.dll --dataPath /путь/к/данным
Или
././Vintage StoryServer --dataPath /путь/к/данным
, если у вас установлена переменная окружения <code>DOTNET_ROOT</code>.


Download and extract the server into a location as normal, then put this into a script:
==== Обновление серверов ====


  #!/bin/ash
Если вы хотите установить более новую версию, сначала удалите все установочные файлы, иначе вы получите непредвиденное поведение. Если вы выбрали папку данных внутри папки установки, не удаляйте ее, иначе вы потеряете сохраненные игры, настройки и данные игрока.
  mono VintagestoryServer.exe --dataPath ./data
Загрузите файл ''Tar.gz Archive/Linux (только сервер)'' и распакуйте его. Если ваш сервер находится удалённо и имеется только FTP-подключение, вам придется распаковывать архив локально и загружать каждый файл вручную.


This script will just run the server, putting the world save files into the same folder the server is extracted to.
== Базовые настройки ==
As an advanced user, you don't need to worry about having the dependancies, checking for new versions, or installing the server or save files under different users and locations.


Run the script in a tmux session.
Как только ваш сервер будет запущен, вы, возможно, захотите просмотреть некоторые из следующих параметров конфигурации. Вы можете настроить сервер во время его работы с помощью команд или путем редактирования {{ll|Server Config|serverconfig.json}}, для чего сначала необходимо остановить сервер.
В Windows по умолчанию этот файл расположен по адресу '''%appdata%/VintageStoryData/serverconfig.json'''.
В Linux он находится в "./data/serverconfig.json" вашего каталога сервера (например, "/home/vintagestory/server/data/serverconfig.json", если настройка была выполнена так, как описано здесь).


The rest of the normal advice applies too (firewalling etc.).
{{Protip|Самый простой способ настроить мир в соответствии с вашими пожеланиями - сначала создать его в одиночной игре, используя расширенные параметры создания мира, а затем загрузить его для использования в качестве вашего серверного мира.}}


== Basic Configuration ==
"Объяснение значений в serverconfig.json вы можете найти здесь: [[server Config/ru]]"


Once your server is up and running you might want to look over some of the following configuration options. You can configure the server while its running through commands or by editing the serverconfig.json, for which the server needs to be stopped.
Вот некоторые из значений, задаваемых командами, которые обычно устанавливают.
On windows, by default this file is located at '''%appdata%/VintageStoryData/serverconfig.json'''.
On Linux it's located at '''./data/serverconfig.json''' of your server directory (e.g. ''/home/vintagestory/server/data/serverconfig.json'' if setup like described here)


''Explanation of values in serverconfig.json you can find here: [[Server Config]]''
* <code>/serverconfig upnp [0|1]</code><br>Если установлено значение один, игровой сервер попытается настроить переадресацию портов для вас
* <code>/serverconfig name Peaceful PvE Server</code><br>настройка имени сервера, видимого в списке общедоступных серверов
* <code>/serverconfig description  Это средневековый сервер выживания, только PvE, добро пожаловать всем!<3</code><br>настройте описание серверов, видимое в списке общедоступных серверов
* <code>/serverconfig motd Hi {playername}!Пожалуйста, не забывайте следовать правилам!</code><br>сообщение, показанное игрокам, когда они присоединяются
* <code>/serverconfig password asdaf</code><br>Если необходим пароль для входа, используйте <code>/serverconfig nopassword</code>для его удаления.
* <code>/serverconfig advertise (1|0)</code><br>Если следует добавить этот сервер в список общедоступных серверов


Here are some of the configurations set by commands, that you'd typically want to set.
Наконец, вы можете настроить сервер, созданный с помощью метода "открыть в локальную сеть", так же, как и для выделенных серверов, однако имейте в виду, что в этом случае некоторые конфигурации переопределяются клиентом, например расположение файла сохранения.


* <code>/serverconfig upnp [0|1]</code><br>If set to one, the game server will attempt to set up port forwarding for you
===Получение прав администратора сервера===
* <code>/serverconfig name Peaceful PvE Server</code><br>Set up the server name, visible in the public server listing
* <code>/serverconfig description This is a medieval survival server, PvE only, everyone welcome! <3</code><br>Set up the servers description, visible in the public server listing
* <code>/serverconfig motd Hi {playername}! Please remember to follow the rules!</code><br>The message shown to players when they join
* <code>/serverconfig password asdaf</code><br>Require a password for players to log in, if desired. Use <code>/serverconfig nopassword</code> to remove again.
* <code>/serverconfig advertise (1|0)</code><br>Whether or not add this server to the public server listing


Lastly, you can configure a server that was created with the 'Open to Lan' method in the same way as you do for dedicated ones, be aware though, in that case a few of the configurations are overridden by the client, such as the save file location.
Если у вас есть доступ к консоли сервера, введите <code>/op playername</code>. Если нет, откройте serverconfig.json и замените
<code>"StartupCommands": null,</code>
с
<code>"StartupCommands": "/op playername",</code>


== Advanced Dedicated Server ==
В обоих случаях вы должны заменить <code>playername</code> своим реальным именем игрока.


===Debian with systemd service and rsyslog===
== Расширенный Выделенный Сервер ==
If you prefer using systemd instead of screen to run your VS Server, you can follow these Instructions.<br>
We also will setup rsyslog to split all logs into separate files.<br>


==== Installation ====
===Дистрибутив Debian с сервисом systemd и rsyslog===


'''1. mono Install Debian 9'''
Если вы предпочитаете использовать systemd вместо экрана для запуска вашего VS-сервера, вы можете следовать этим инструкциям.<br>
  sudo apt install apt-transport-https dirmngr gnupg ca-certificates wget nano
Мы также настроим rsyslog для разделения всех журналов на отдельные файлы.<br>
  sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 3FA7E0328081BFF6A14DA29AA6A19B38D3D831EF
  echo "deb https://download.mono-project.com/repo/debian stable-stretch main" | sudo tee /etc/apt/sources.list.d/mono-official-stable.list
  sudo apt update
  sudo apt install mono-devel


For Debian 10 use
==== Установка ====
  echo "deb https://download.mono-project.com/repo/debian stable-buster main" | sudo tee /etc/apt/sources.list.d/mono-official-stable.list


'''2. create a user'''
'''1. Создайте пользователя'''
   adduser --shell /bin/bash --disabled-password gameserver
   adduser --shell /bin/bash --disabled-password gameserver


'''3. create directories'''
'''2. Создание каталоги'''
   mkdir -p /srv/gameserver/vintagestory
   mkdir -p /srv/gameserver/vintagestory
   mkdir -p /srv/gameserver/data/vs
   mkdir -p /srv/gameserver/data/vs
   mkdir -p /usr/lib/systemd/system
   mkdir -p /usr/lib/systemd/system


'''3. Download the game'''
'''3. Скачать игру'''
   cd /srv/gameserver/vintagestory
   cd /srv/gameserver/vintagestory


Goto http://account.vintagestory.at/downloads<br>
Перейдите к http://account.vintagestory.at/downloads <br>
Copy the link of the newest "vs_server_*.*.*.tar.gz" package ('''Tar.gz Archive/Linux (server only)''' under '''Show other available downloads of Vintage Story''')<br>
Скопируйте ссылку на новейший пакет "vs_server_linux-x64_*.*.*.tar.gz" ('''Сервер Linux (.tar.gz)"" в разделе ''''Показать другие доступные загрузки Vintage Story''')<br>
Download with "wget" via console (''Vintage Story version 1.12.9 in this example'').
Скачайте с помощью "wget" через консоль (''В этом примере Vintage Story версии 1.18.8'').
 
  wget https://cdn.vintagestory.at/gamefiles/stable/vs_server_linux-x64_1.18.8.tar.gz


  wget https://cdn.vintagestory.at/gamefiles/stable/vs_server_1.12.9.tar.gz
'''4. Разархивируйте tar.gz архив'''


'''4. Extract tar.gz package'''
  tar xzf vs_server_linux-x64_1.18.8.tar.gz


  tar xzf vs_server_1.12.9.tar.gz
'''5. Смените владельца'''
'''5. Change owner'''


You have to set the owner of your gameserver directory to avoid write permission errors
Вы должны установить владельца каталога Вашего игрового сервера, чтобы избежать ошибок разрешения на запись
   chown -R gameserver:gameserver /srv/gameserver
   chown -R gameserver:gameserver /srv/gameserver


'''6. Create systemd service unit file'''
'''6. Создать файл сервисного модуля systemd'''


Use your favourite tool to create a service unit file (this example uses nano)
Используйте свой любимый инструмент для создания файла сервиса(в данном примере используется nano)
   nano /usr/lib/systemd/system/vintagestoryserver.service
   nano /usr/lib/systemd/system/vintagestoryserver.service
Insert the following content
Вставьте следующее содержимое
   [Unit]
   [Unit]
   Description=Vintage Story Server Unit
   Description=Vintage Story Server Unit
Line 212: Line 234:
   [Service]
   [Service]
   WorkingDirectory=/srv/gameserver/vintagestory
   WorkingDirectory=/srv/gameserver/vintagestory
   ExecStart=/usr/bin/mono VintagestoryServer.exe --dataPath /srv/gameserver/data/vs
   ExecStart=dotnet VintagestoryServer.dll --dataPath /srv/gameserver/data/vs
   Restart=always
   Restart=always
   RestartSec=30
   RestartSec=30
Line 224: Line 246:
   WantedBy=multi-user.target
   WantedBy=multi-user.target


'''7. Create config file for rsyslog'''
Убедитесь, что у нового пользователя есть доступ к команде <code>dotnet</code>, или замените команду полным путем к месту установки dotnet runtime (если вы выбрали выборочную установку). Или вы также можете использовать <code>ExecStart=Vintage StoryServer --dataPath /srv/gameserver/data/vs</code>, если у вас установлена переменная окружения <code>DOTNET_ROOT</code>.
 
'''7. Создайте файл конфигурации для rsyslog'''


Use your favourite tool to create a rsyslog config file (this example uses nano)
Используйте свой любимый инструмент для создания файла конфигурации rsyslog (в данном примере используется nano).
   nano /etc/rsyslog.d/vintagestoryserver.conf
   nano /etc/rsyslog.d/vintagestoryserver.conf
Insert the following content
Вставьте следующее содержимое:
   if $programname == 'VSSRV' then {
   if $programname == 'VSSRV' then {
       if($msg contains "Chat") then {
       if($msg contains "Chat") then {
Line 250: Line 274:
   # Discard  
   # Discard  
   if $programname == 'VSSRV' then ~
   if $programname == 'VSSRV' then ~
'''8. restart rsyslog / enable service'''
 
To activate rsyslog and your vintagestory server type these commands
'''8. Перезапустите/включите службу rsyslog'''
Чтобы активировать rsyslog и сервер, введите следующие команды
   systemctl restart rsyslog.service;
   systemctl restart rsyslog.service;
   systemctl enable vintagestoryserver.service
   systemctl enable vintagestoryserver.service
Line 258: Line 283:
----
----


==== Stop, Start, Disable Server ====
==== Остановка, Запуск, Отключение Сервера ====


To manually stop your VS Server use this command
Чтобы остановить свой сервер используйте  эту команду
   systemctl stop vintagestoryserver.service
   systemctl stop vintagestoryserver.service
To manually start your VS Server again type
Чтобы снова запустить VS сервер введите
   systemctl start vintagestoryserver.service
   systemctl start vintagestoryserver.service
To disable the service use
Чтобы отключить использование сервиса
   systemctl disable vintagestoryserver.service
   systemctl disable vintagestoryserver.service


==== Config ====
==== Конфигурация ====


to change your servers configuration, stop the server and edit
чтобы изменить конфигурацию серверов, остановите сервер и отредактируйте
   nano /srv/gameserver/data/vs/serverconfig.json
   nano /srv/gameserver/data/vs/serverconfig.json
After you saved your changes, start server again.
После того, как вы сохранили изменения, снова запустите сервер.


==== Restart schedule ====
==== Планирование перезапуска ====


If you want your server to restart every day, you can setup a cronjob for this
Если вы хотите, чтобы ваш сервер перезапускался каждый день, вы можете настроить для этого cronjob
   crontab -e
   crontab -e
insert this line to stop the server at 04:30
вставьте эту строку, чтобы остановить сервер в 04:30
   30 4 * * *      systemctl stop vintagestoryserver.service
   30 4 * * *      systemctl stop vintagestoryserver.service
you could now ececute backup tasks and then start it again with the next line at 04:32 (if you run a backup task plan some more time here)
Теперь можно выполнить задачи резервного копирования, а затем запустить его снова со следующей строкой в 04:32 (если вы запустили задачу резервного копирования, планируйте еще немного времени здесь)
   32 4 * * *      systemctl start vintagestoryserver
   32 4 * * *      systemctl start vintagestoryserver
If you just want to restart the server this line instead of the other two should be fine
Если вы хотите просто перезапустить сервер, то эта строка вместо двух других вполне подойдет
   30 4 * * *      systemctl restart vintagestoryserver.service
   30 4 * * *      systemctl restart vintagestoryserver.service


==== Logging ====
==== Ведение журнала ====


The rsyslog config splits the output logs into seperate files that you can watch with tail command<br>
Конфигурация rsyslog разбивает выходные журналы на отдельные файлы, которые вы можете просматривать с помощью команды tail<br>
For Login/Logout see
Для входа/выхода из системы см.
   tail -f /var/log/vintagestory-server/login.log
   tail -f /var/log/vintagestory-server/login.log
For all chat messages see
Для всех сообщений чата см.
   tail -f /var/log/vintagestory-server/chat.log
   tail -f /var/log/vintagestory-server/chat.log
For all messages containing [Server Warning] see
Все сообщения, содержащие [предупреждение сервера], см. В разделе
   tail -f /var/log/vintagestory-server/warn.log
   tail -f /var/log/vintagestory-server/warn.log
For all messages containing [Server Notification] see
Все сообщения, содержащие [уведомление сервера], см. В разделе
   tail -f /var/log/vintagestory-server/info.log
   tail -f /var/log/vintagestory-server/info.log
For all messages containing [Server Debug] see
Для всех сообщений, содержащих [тестовый сервер] см.
   tail -f /var/log/vintagestory-server/debug.log
   tail -f /var/log/vintagestory-server/debug.log
For all messages containing [Server Event] see
Все сообщения, содержащие [событие сервера], см. В разделе
   tail -f /var/log/vintagestory-server/event.log
   tail -f /var/log/vintagestory-server/event.log
For all other messages see
Все остальные сообщения см. В разделе
   tail -f /var/log/vintagestory-server/other.log
   tail -f /var/log/vintagestory-server/other.log


==== Multiple Server Instances ====
==== Несколько Экземпляров Сервера ====


If you want to run multiple instances on the same machine you just have to redo some of the steps above. This is just an example for a second instance:
Если вы хотите запустить несколько экземпляров на одной машине, вам просто нужно повторить некоторые из описанных выше шагов. Это всего лишь пример для второго экземпляра:


   mkdir -p /srv/gameserver/data/vs2
   mkdir -p /srv/gameserver/data/vs2
   nano /usr/lib/systemd/system/vintagestoryserver2.service
   nano /usr/lib/systemd/system/vintagestoryserver2.service
Copy from step 6 and change these lines:
Скопируйте из шага 6 и измените следующие строки:
   Description=Vintage Story Server 2 Unit
   Description=Vintage Story Server 2 Unit
   ExecStart=/usr/bin/mono VintagestoryServer.exe --dataPath /srv/gameserver/data/vs2
   ExecStart=dotnet VintagestoryServer.dll --dataPath /srv/gameserver/data/vs2
   SyslogIdentifier=VSSRV2
   SyslogIdentifier=VSSRV2
Create rsyslog file and copy code from step 7
Создайте файл rsyslog и скопируйте код из шага 7
   nano /etc/rsyslog.d/vintagestoryserver2.conf
   nano /etc/rsyslog.d/vintagestoryserver2.conf
Change <code>VSSRV</code> to <code>VSSRV2</code> and <code>/var/log/vintagestory-server</code> to <code>/var/log/vintagestory-server2</code><br>
Измените <code>VSSRV</code> на <code>VSSRV2</code> и <code>/var/log/vintagestory-server</code> на  <code>/var/log/vintagestory-server2</code><br>
Before you proceed make a copy of your first server configuration and edit it for your needs (change port!!!)
Перед продолжением создайте копию конфигурации вашего первого сервера и отредактируйте ее по своему усмотрению (измените порт!!!)
   cp /srv/gameserver/data/vs/serverconfig.json /srv/gameserver/data/vs2/
   cp /srv/gameserver/data/vs/serverconfig.json /srv/gameserver/data/vs2/
   nano /srv/gameserver/data/vs2/serverconfig.json
   nano /srv/gameserver/data/vs2/serverconfig.json
Now start the service
Теперь запустите сервис
   systemctl restart rsyslog.service;
   systemctl restart rsyslog.service;
   systemctl enable vintagestoryserver2.service
   systemctl enable vintagestoryserver2.service
   systemctl start vintagestoryserver2.service
   systemctl start vintagestoryserver2.service
Install cronjob
Установите cronjob
   crontab -e
   crontab -e
Insert
Вставьте
   30 4 * * *      systemctl restart vintagestoryserver2.service
   30 4 * * *      systemctl restart vintagestoryserver2.service


Have Fun!
Приятной игры!
 
==Расширенная настройка==
 
===Использование SRV-записи для указания домена на ваш сервер===
 
В некоторых случаях вы, возможно, не сможете иметь сервер с портом по умолчанию (несколько экземпляров на одном сервере, платные хосты...), и вам придется добавить порт в конце адреса сервера, чтобы подключиться к нему.<br>
Но, возможно, вы захотите избежать необходимости указывать порт (проще запомнить, выглядит чище).
Есть способ указать домен на ваш сервер и избежать необходимости добавлять порт : записи SRV<br>
 
Записи SRV позволяют вам указать домен/поддомен для вашего экземпляра сервера, сообщая игре, какой порт использовать.
Как настроить записи SRV, будет зависеть от вашего провайдера домена, и вам следует ознакомиться с их документацией, прежде чем вносить какие-либо изменения. Однако суть остаётся такой же для каждого провайдера.<br>
 
Давайте возьмем сервер со следующими данными :
* Адрес: <code>play.example.com</code>
* Порт: <code>50030</code>
* Собственный домен : <code>mydomain.com</code>
* Желаемый субдомен: <code>vintagestory.mydomain.com</code>
 
Ваши необработанные записи SRV должны выглядеть примерно так :
_vintagestory._tcp.vintagestory.mydomain.com. IN SRV 10 10 50030 server.example.com.
 
Подчеркивания и конечные точки важны! Вот некоторые подробности :
* <code>_vintagestory</code> определяет сервис, в нашем случае Vintage Story<br>
* <code>_tcp</code> определяем протокол, в Vintage Story используем TCP<br>
* <code>vintage story.mydomain.com.</code> это поддомен, который мы хотим использовать. Точка в конце важна!<br>
* <code>IN SRV</code> Определяет тип записи, не меняйте это<br>
* <code>10 10</code> указаны в порядке приоритета и веса нашей записи, в нашем случае это не важно, поскольку вы, вероятно, не собираетесь балансировать нагрузку на сервер Vintage Story<br>
* <code>50030</code> - это порт, который прослушивает наш экземпляр<br>
* <code>server.example.com.</code> - целевой сервер, на котором расположен сервер. Конечная точка обязательна, поскольку целевой сервер находится не в том же домене, что и мы. Если бы это было так, вам нужно было бы только добавить поддомен целевого сервера без конечной точки<br>
 
Если бы вы хотите, чтобы ваша запись указывала непосредственно на ваш домен, у вас должен быть <code>mydomain.com.</code> вместо <code>vintagestory.mydomain.com.</code>
 
Вот как это сделать для OVH и Hetzner (не забудьте отредактировать значения в соответствии с вашими настройками) :
 
====OVH====
 
Вам нужно будет зайти в свою зону DNS и добавить запись, выбрать тип записи SRV :
* * Поддомен : <code>_vintagestory._tcp.vintagestory</code> Вам не нужно добавлять свой домен, так как их форма сделает это за вас.
* TTL: Нет необходимости изменять это
* Приоритет: <code>10</code>
* Вес: <code>10</code>
* Порт : <code>50030</code>
* Цель : <code>server.example.com.</code>
 
====Hetzner====
 
Вам нужно будет создать запись в их консоли DNS :
* Введите : <code>SRV</code>
* Имя : <code>_vintagestory._tcp.vintagestory.mydomain.com.</code>
Нажмите на поле значения, чтобы ввести данные :
* Приоритет : <code>10</code>
* Вес: <code>10</code>
* Порт : <code>50030</code>
* Цель: <code>server.example.com.</code>
 
Подождите несколько минут, пока ваша запись распространится, а затем попробуйте использовать ее для подключения к серверу, используя <code>vintage story.mydomain.com</code> в качестве адреса.
 
Теперь все настроено для совместного использования вашего сервера с вашим личным доменом.
 
{{Game navbox}}

Latest revision as of 16:56, 9 July 2024

Other languages:


Базовая Настройка

Временный сервер

Если вы хотите получить временный многопользовательский опыт, достаточно открыть однопользовательский мир, а затем нажать кнопку "Открыть в локальную сеть" в меню escape. Это позволит игрокам в вашей локальной сети присоединиться. Если вы хотите разрешить игрокам за пределами вашей локальной сети присоединиться к вам, вы также можете нажать кнопку "Открыть для Интернета", которая попытается настроить внешнее соединение для подключения к вашему серверу из интернета. Это делается с помощью метода, называемого UPnP, и должно быть включено на вашем интернет-маршрутизаторе, который часто используется по умолчанию. Короче говоря, мы оцениваем вероятность успеха примерно в 60%, что "открытый для интернета" работает мгновенно и без проблем. Если это не так, вам нужно будет настроить так называемую "переадресацию портов" на вашем интернет-маршрутизаторе, что, к сожалению, иногда может быть сложно и неприятно. В этом случае вам нужно будет перенаправить TCP-порт 42420 на ваш компьютер. (Google 'Port forwarding' с именем или моделью вашего интернет-маршрутизатора, чтобы найти помощь.)

Чтобы этот сервер работал, ваш однопользовательский мир должен оставаться открытым.


Выделенный сервер

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

Платные хостинги

См. список хостингов для серверов

Выделенные серверы для ОС Windows

Чтобы настройки вашего многопользовательского сервера не мешали настройкам вашего одиночного сервера, используйте параметр --dataPath.

Shortcut method:

  1. Navigate to the location where you will store the server's data, such as a new VintagestoryServer folder created in C:\Users\YourUsername\AppData\Roaming
  2. Create a folder for the server's data and give it a clear name, such as VSserverData
  3. Open that folder and copy the entire path from the address bar of File Explorer. (example: C:\Users\YourUsername\AppData\Roaming\VintagestoryServer\VSserverData)
  4. Open the game's application folder, it is %appdata%/VintageStory by default.
  5. Create a shortcut of VintagestoryServer.exe. This can usually be accomplished through the right-click menu; google instructions specific to your operating system version if needed.
  6. Open the Properties of the new shortcut. This can usually be accomplished through the right-click menu.
  7. Click in the Target field of the shortcut's Properties, then go to the very end of what's written there. Add one space, then --dataPath=, then Paste the folder path you copied earlier, in quotes. The entire contents of the Target field should now be something like this: "C:\Users\YourUsername\AppData\Roaming\Vintagestory\VintagestoryServer.exe" --dataPath="C:\Users\YourUsername\AppData\Roaming\VintagestoryServer\VSserverData"
  • Optional: you can move/copy the shortcut, to your desktop and/or your new VintagestoryServer folder

Batch script method (functionally equivalent to the shortcut method above):

  1. To create a batch script, simply create a blank text document and rename it with the .bat file extension.
  2. You can edit it by right clicking and selecting edit. Then just type %appdata%/Vintagestory/VintagestoryServer.exe --dataPath "[PATH]" replacing [PATH] with the desired path for the server's data, then save and close.

Running the script will run the server with the alternate datapath, and will generate its own collection of config files there. This is functionally equivalent to the modified link.

Далее:

  • запустите ярлык VintagestoryServer.exe или батник.
  • Если Защитник Windows попросит выдать разрешение — сделайте это.
  • Возможно, вам потребуется настроить переадресацию порта 42420 на вашем роутере, если сервер должен быть доступен за пределами вашей локальной сети (для людей, которые не используют тот же Wi-Fi, что и вы). Этот процесс значительно отличается; загуглите инструкции для вашей конкретной модели маршрутизатора.
Использование Windows на виртуальной машине

There are some reports that LAN connection to a Vintage Story server running inside a Windows virtual machine (VM) can be slow, even when internet (WAN) connections have normal performance. This may depend on VM solution and network drivers. If this affects you, a suggested workaround is to use the Paravirtualized network adapter (virtio-net) for network adapters. The drivers are located here.


Выделенные серверы для ОС 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>'

5. Откройте порт в брандмауэре (если это необходимо)

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

6. Запуск сервера и первые шаги

   ./server.sh start
 
 Дождитесь окончания запуска, затем вы можете дать себе полный доступ с помощью
 ./server.sh command "/op <youusername>"

7. Подключайтесь к вашему IP/домену и получайте удовольствие


Выделенные сервера для архитектуры ARM64

Примечание: Пожалуйста, обратите внимание, что версия ARM64 является ЭКСПЕРИМЕНТАЛЬНОЙ, пожалуйста, сообщайте о любых проблемах в discord .

Currently (in game version 1.19.3 - 1.19.4, February 2024) no ARM64 .NET7 version of the Harmony patching library is available. Therefore coded mods which use Harmony will not work on an ARM64 server. If a beta of the Harmony library becomes available in future, server owners can try installing it for themselves.

Версия ARM64 доступна по адресу GitHub

Рекомендуется использовать установочный скрипт, расположенный на GitHub. Ниже приведено пошаговое руководство по использованию скрипта в системе на базе дистрибутива Debian (Ubuntu, Debian, Raspbian и т.д.).

1. Установите необходимые зависимости для использования этого скрипта, выполнив apt -y install curl jq

2. Создайте новый файл с именем arm install.sh, запустив vim arminstall.sh или nano arminstall.sh

3. Скопируйте содержимое arminstall.sh скопируйте с GitHub в ваш только что созданный файл и сохраните его, используя :wq с помощью Vim или Ctrl + X, затем нажмите Y, затем нажмите Enter с помощью Nano.

4. Сделайте скрипт исполняемым, запустив chmod +x arm install.sh

5. Запустите скрипт, выполнив команду ./arm install.sh

6. Запустите сервер с помощью ./VintagestoryServer или dotnet Vintage storyServer.dll

Это загрузит последнюю версию Vintage story в текущий рабочий каталог, а затем заменит необходимые файлы для работы с ARM.

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


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

Если вы хотите использовать пользовательский скрипт или просто вручную запустить свой сервер, вы можете запустить dotnet VintagestoryServer.dll --dataPath /путь/к/данным Или ././Vintage StoryServer --dataPath /путь/к/данным , если у вас установлена переменная окружения DOTNET_ROOT.

Обновление серверов

Если вы хотите установить более новую версию, сначала удалите все установочные файлы, иначе вы получите непредвиденное поведение. Если вы выбрали папку данных внутри папки установки, не удаляйте ее, иначе вы потеряете сохраненные игры, настройки и данные игрока. Загрузите файл 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 для разделения всех журналов на отдельные файлы.

Установка

1. Создайте пользователя

 adduser --shell /bin/bash --disabled-password gameserver

2. Создание каталоги

 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_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

4. Разархивируйте tar.gz архив

 tar xzf vs_server_linux-x64_1.18.8.tar.gz

5. Смените владельца

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

 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=dotnet VintagestoryServer.dll --dataPath /srv/gameserver/data/vs
 Restart=always
 RestartSec=30
 StandardOutput=syslog
 StandardError=syslog
 SyslogIdentifier=VSSRV
 User=gameserver
 Group=gameserver
 
 [Install]
 WantedBy=multi-user.target

Убедитесь, что у нового пользователя есть доступ к команде dotnet, или замените команду полным путем к месту установки dotnet runtime (если вы выбрали выборочную установку). Или вы также можете использовать ExecStart=Vintage StoryServer --dataPath /srv/gameserver/data/vs, если у вас установлена переменная окружения DOTNET_ROOT.

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 и сервер, введите следующие команды

 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 restart 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=dotnet VintagestoryServer.dll --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

Приятной игры!

Расширенная настройка

Использование SRV-записи для указания домена на ваш сервер

В некоторых случаях вы, возможно, не сможете иметь сервер с портом по умолчанию (несколько экземпляров на одном сервере, платные хосты...), и вам придется добавить порт в конце адреса сервера, чтобы подключиться к нему.
Но, возможно, вы захотите избежать необходимости указывать порт (проще запомнить, выглядит чище). Есть способ указать домен на ваш сервер и избежать необходимости добавлять порт : записи SRV

Записи SRV позволяют вам указать домен/поддомен для вашего экземпляра сервера, сообщая игре, какой порт использовать. Как настроить записи SRV, будет зависеть от вашего провайдера домена, и вам следует ознакомиться с их документацией, прежде чем вносить какие-либо изменения. Однако суть остаётся такой же для каждого провайдера.

Давайте возьмем сервер со следующими данными :

  • Адрес: play.example.com
  • Порт: 50030
  • Собственный домен : mydomain.com
  • Желаемый субдомен: vintagestory.mydomain.com

Ваши необработанные записи SRV должны выглядеть примерно так : _vintagestory._tcp.vintagestory.mydomain.com. IN SRV 10 10 50030 server.example.com.

Подчеркивания и конечные точки важны! Вот некоторые подробности :

  • _vintagestory определяет сервис, в нашем случае Vintage Story
  • _tcp определяем протокол, в Vintage Story используем TCP
  • vintage story.mydomain.com. это поддомен, который мы хотим использовать. Точка в конце важна!
  • IN SRV Определяет тип записи, не меняйте это
  • 10 10 указаны в порядке приоритета и веса нашей записи, в нашем случае это не важно, поскольку вы, вероятно, не собираетесь балансировать нагрузку на сервер Vintage Story
  • 50030 - это порт, который прослушивает наш экземпляр
  • server.example.com. - целевой сервер, на котором расположен сервер. Конечная точка обязательна, поскольку целевой сервер находится не в том же домене, что и мы. Если бы это было так, вам нужно было бы только добавить поддомен целевого сервера без конечной точки

Если бы вы хотите, чтобы ваша запись указывала непосредственно на ваш домен, у вас должен быть mydomain.com. вместо vintagestory.mydomain.com.

Вот как это сделать для OVH и Hetzner (не забудьте отредактировать значения в соответствии с вашими настройками) :

OVH

Вам нужно будет зайти в свою зону DNS и добавить запись, выбрать тип записи SRV :

  • * Поддомен : _vintagestory._tcp.vintagestory Вам не нужно добавлять свой домен, так как их форма сделает это за вас.
  • TTL: Нет необходимости изменять это
  • Приоритет: 10
  • Вес: 10
  • Порт : 50030
  • Цель : server.example.com.

Hetzner

Вам нужно будет создать запись в их консоли DNS :

  • Введите : SRV
  • Имя : _vintagestory._tcp.vintagestory.mydomain.com.

Нажмите на поле значения, чтобы ввести данные :

  • Приоритет : 10
  • Вес: 10
  • Порт : 50030
  • Цель: server.example.com.

Подождите несколько минут, пока ваша запись распространится, а затем попробуйте использовать ее для подключения к серверу, используя vintage story.mydomain.com в качестве адреса.

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


Вики-навигация
Vintage Story Руководство[[::Category:Guides| ]]Частые вопросы (ЧАВО) Саундтрек Версии Управление
Игровые системы Крафт Откалывание Формование глины Кузнечное Дело Кулинария Температура Голод Горное дело Темпоральная стабильность Механическая сила Торговля Растениеводство Животноводство
Мир Генерация мира Биомы Погода Темпоральные штормы
Предметы Инструменты Орудия Броня Одежда Сумки Материалы Еда
Блоки Ландшафт Растения Декор Источники света Функциональные Руда
Сущности Враждебные существа Животные NPC Игроки
Miscellaneous Список клиентских команд Список команд сервера Creative Starter Guide Система ботов Как использовать WorldEdit Кинематографичная камера Регулируемая частота кадров при записи видео Система тиков