Setting up a Multiplayer Server/ru: Difference between revisions

From Vintage Story Wiki
No edit summary
(Updating to match new version of source page)
Line 1: Line 1:
<languages/><br>
==Базовая Настройка ==
==Базовая Настройка ==


Line 8: Line 9:
----
----


<div class="mw-translate-fuzzy">
===Выделенный сервер===
===Выделенный сервер===
В качестве альтернативы игра поставляется с выделенной серверной программой, которую вы можете запустить и оставить включенной навсегда, не входя в систему самостоятельно.
В качестве альтернативы игра поставляется с выделенной серверной программой, которую вы можете запустить и оставить включенной навсегда, не входя в систему самостоятельно.
Существует несколько способов запустить выделенный сервер.
Существует несколько способов запустить выделенный сервер.
----
----
</div>


<div class="mw-translate-fuzzy">
==== Платные хосты ====
==== Платные хосты ====
Некоторые коммерческие хостинговые услуги предлагают платный хостинг серверов. В настоящее время 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]
Некоторые коммерческие хостинговые услуги предлагают платный хостинг серверов. В настоящее время 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]
</div>


<div class="mw-translate-fuzzy">
==== Выделенные серверы на Windows ====
==== Выделенные серверы на Windows ====
* Откройте папку игры, по умолчанию это %appdata%/VintageStory
* Откройте папку игры, по умолчанию это %appdata%/VintageStory
* запустите VintagestoryServer.exe
* запустите VintagestoryServer.exe
* Возможно, Вам потребуется настроить переадресацию портов на вашем интернет-маршрутизаторе, если сервер должен быть доступен за пределами вашей локальной сети (интернета).
* Возможно, Вам потребуется настроить переадресацию портов на вашем интернет-маршрутизаторе, если сервер должен быть доступен за пределами вашей локальной сети (интернета).
</div>


<div class="mw-translate-fuzzy">
==== Выделенные серверы на Linux ====
==== Выделенные серверы на Linux ====
Здесь описано, как настроить сервер в качестве службы в системах Linux.
Здесь описано, как настроить сервер в качестве службы в системах Linux.
</div>


=====Требования к CentOS 7 (RHEL, Fedora, ...)=====
=====Требования к CentOS 7 (RHEL, Fedora, ...)=====
Line 142: Line 151:


Еще немного советов (брандмауэр и т. д.).
Еще немного советов (брандмауэр и т. д.).
==== Updating Servers ====
If you want to install a newer version, remove all installation files first, or you'll get unforseeable behavior. If you chose a data folder inside the installation folder, make sure to not delete that one, or you'll loose your save games, settings and player data.
Download the "Tar.gz Archive/Linux (server only)" file and extract it. If you have a remote installation and only a FTP connection to your server, you will have to unpack it locally and upload each file.


== Основные Настройки ==
== Основные Настройки ==
Line 148: Line 162:
В windows по умолчанию этот файл находится по адресу "%appdata%/VintageStoryData/serverconfig.json".
В windows по умолчанию этот файл находится по адресу "%appdata%/VintageStoryData/serverconfig.json".
В Linux находится на уровне "'./data/serverconfig.json"' в каталоге сервера (напр., ''/home/vintagestory/server/data/serverconfig.json''  если настройки, как описано здесь)
В Linux находится на уровне "'./data/serverconfig.json"' в каталоге сервера (напр., ''/home/vintagestory/server/data/serverconfig.json''  если настройки, как описано здесь)
{{Protip
|The easiest way to get a world configured to your wishes is to first create it in Single Player, using the advanced world creating options - and then upload it to use as your server world.
}}


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


Наконец, вы можете настроить сервер, созданный с помощью метода "открыть в локальную сеть", так же, как и для выделенных серверов, однако имейте в виду, что в этом случае некоторые конфигурации переопределяются клиентом, например расположение файла сохранения.
Наконец, вы можете настроить сервер, созданный с помощью метода "открыть в локальную сеть", так же, как и для выделенных серверов, однако имейте в виду, что в этом случае некоторые конфигурации переопределяются клиентом, например расположение файла сохранения.
===Acquiring server admin rights===
If you have access to the server console, type <code>/op playername</code>. If not, open up the serverconfig.json and replace
<code>"StartupCommands": null,</code>
with
<code>"StartupCommands": "/op playername",</code>
In both instances you should replace <code>playername</code> with your actual player name.


== Расширенный Выделенный Сервер ==
== Расширенный Выделенный Сервер ==

Revision as of 00:50, 23 February 2022

Other languages:


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

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

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

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


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

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


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

Некоторые коммерческие хостинговые услуги предлагают платный хостинг серверов. В настоящее время Vintage Story hosting предлагается компаниями PingPerfect, Citadel Server, Creeperhost, Akliz and GPortal

Выделенные серверы на Windows

  • Откройте папку игры, по умолчанию это %appdata%/VintageStory
  • запустите VintagestoryServer.exe
  • Возможно, Вам потребуется настроить переадресацию портов на вашем интернет-маршрутизаторе, если сервер должен быть доступен за пределами вашей локальной сети (интернета).

Выделенные серверы на Linux

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

Требования к CentOS 7 (RHEL, Fedora, ...)

1. EPEL/screen/wget/curl Install

 yum -y install epel-release screen wget curl

2. Установка mono"'

 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,...)

1. screen/wget/curl Install

 sudo apt install -y screen wget curl

2. Установка mono"'

Начиная с "Vintage Story version 1.12.7" и выше рекомендуется использовать "Mono version 5 или выше". Это "это написано, предполагая Ubuntu 18.04" в качестве базовой ОС. Чтобы установить последнюю стабильную версию для вашего конкретного дистрибутива, пожалуйста, следуйте инструкциям из официальная страница загрузки моно-проекта. 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


3. Загрузить игру

Advice: Создайте отдельный каталог для Vintage Story так как tar.gz не содержит вложенной папки.

 mkdir server && cd server

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

 wget https://cdn.vintagestory.at/gamefiles/stable/vs_server_1.12.9.tar.gz

4. Извлечение tar.gz архива"'

 tar xzf vs_server_*.*.*.tar.gz

5. Запустить server.sh "'

 chmod +x server.sh

6. Редактировать 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/домену и получайте удовольствие"'


Требования к Alpine (Advanced, без поддержки)

1. Установка mono"'

Поскольку mono находится в тестировании в Alpine, URL-адрес тестирования (http://dl-cdn.alpinelinux.org/alpine/edge/testing) придется раскомментировать в

 /etc/apk/repositories

после этого

 apk update
 apk add mono mono-dev

2. Установка tmux"'

 apk add tmux

3. Сертификаты

 apk add ca-certificates

потом

 cert-sync /etc/ssl/certs/ca-certificates.crt

чтобы обновить сертификаты.

4. Упрощенный Сценарий Запуска"'

Загрузите и извлеките сервер в обычное место, а затем поместите это в скрипт:

 #!/bin/ash
 mono VintagestoryServer.exe --dataPath ./data

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

Запустите скрипт в сеансе tmux.

Еще немного советов (брандмауэр и т. д.).

Updating Servers

If you want to install a newer version, remove all installation files first, or you'll get unforseeable behavior. If you chose a data folder inside the installation folder, make sure to not delete that one, or you'll loose your save games, settings and player data. Download the "Tar.gz Archive/Linux (server only)" file and extract it. If you have a remote installation and only a FTP connection to your server, you will have to unpack it locally and upload each file.

Основные Настройки

Как только ваш сервер будет запущен, вы можете просмотреть некоторые из следующих параметров конфигурации. Вы можете настроить сервер во время его работы с помощью команд или путем редактирования файла serverconfig.json, для этого сервер должен быть остановлен. В windows по умолчанию этот файл находится по адресу "%appdata%/VintageStoryData/serverconfig.json". В Linux находится на уровне "'./data/serverconfig.json"' в каталоге сервера (напр., /home/vintagestory/server/data/serverconfig.json если настройки, как описано здесь)

Подсказка:
The easiest way to get a world configured to your wishes is to first create it in Single Player, using the advanced world creating options - and then upload it to use as your server world.


"Объяснение значений в 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)
    Если следует добавить этот сервер в список общедоступных серверов

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

Acquiring server admin rights

If you have access to the server console, type /op playername. If not, open up the serverconfig.json and replace "StartupCommands": null, with "StartupCommands": "/op playername",

In both instances you should replace playername with your actual player name.

Расширенный Выделенный Сервер

Debian с сервисом systemd и rsyslog

Если вы предпочитаете использовать systemd вместо экрана для запуска вашего VS-сервера, вы можете следовать этим инструкциям.
Мы также настроим rsyslog для разделения всех журналов на отдельные файлы.

Установка

1. mono Установка Debian 9

 sudo apt install apt-transport-https dirmngr gnupg ca-certificates wget nano
 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

Для 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. создание пользователя

 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 в этом примере").

 wget https://cdn.vintagestory.at/gamefiles/stable/vs_server_1.12.9.tar.gz

4. Извлечение tar.gz архива"'

 tar xzf vs_server_1.12.9.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=/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

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

Остановка, Запуск, Отключение Сервера

Чтобы остановить свой сервер используйте эту команду

 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

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