Setting up a Multiplayer Server/ru: Difference between revisions
(Created page with "Конфигурация rsyslog разбивает выходные журналы на отдельные файлы, которые вы можете просматрива...") |
(Created page with "==== Несколько Экземпляров Сервера ====") |
||
Line 302: | Line 302: | ||
tail -f /var/log/vintagestory-server/other.log | tail -f /var/log/vintagestory-server/other.log | ||
==== | ==== Несколько Экземпляров Сервера ==== | ||
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: | 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: |
Revision as of 14:52, 3 December 2020
Базовая Настройка
Временный сервер
Если вы хотите получить временный многопользовательский опыт, достаточно открыть однопользовательский мир, а затем нажать кнопку "Открыть в локальную сеть" в меню 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. Моно Установка"'
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. Моно Установка"'
Начиная с "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.
Еще немного советов (брандмауэр и т. д.).
Основные Настройки
Как только ваш сервер будет запущен, вы можете просмотреть некоторые из следующих параметров конфигурации. Вы можете настроить сервер во время его работы с помощью команд или путем редактирования файла serverconfig.json, для этого сервер должен быть остановлен. В windows по умолчанию этот файл находится по адресу "%appdata%/VintageStoryData/serverconfig.json". В Linux находится на уровне "'./data/serverconfig.json"' в каталоге сервера (напр., /home/vintagestory/server/data/serverconfig.json если настройки, как описано здесь)
"Объяснение значений в serverconfig.json вы можете найти здесь: server Config"
Вот некоторые из конфигураций, задаваемых командами, которые обычно устанавливают.
/serverconfig upnp [0/1]< / code>
Если установлено значение один, игровой сервер попытается настроить переадресацию портов для вас/serverconfig name / PvE Server< / code> < br>настройка имени сервера, видимого в списке общедоступных серверов
- < code>/serverconfig description Это средневековый сервер выживания, только PvE, добро пожаловать всем! <3< / code> < br>настройте описание серверов, видимое в списке общедоступных серверов
/serverconfig motd Hi {playername}! Пожалуйста, не забывайте следовать правилам!< / code> < br>сообщение, показанное игрокам, когда они присоединяются
/ serverconfig password asdaf< / code> < br>требуется пароль для входа игроков в систему, если это необходимо. Используйте
/serverconfig nopassword< / code> для повторного удаления.
/serverconfig advertise (1/0)< / code>
следует ли добавлять этот сервер в список общедоступных серверов
Наконец, вы можете настроить сервер, созданный с помощью метода "открыть в локальную сеть", так же, как и для выделенных серверов, однако имейте в виду, что в этом случае некоторые конфигурации переопределяются клиентом, например расположение файла сохранения.
Расширенный Выделенный Сервер
= = 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
Несколько Экземпляров Сервера
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
nano /usr/lib/systemd/system/vintagestoryserver2.service
Copy from step 6 and change these lines:
Description=Vintage Story Server 2 Unit
ExecStart=/usr/bin/mono VintagestoryServer.exe --dataPath /srv/gameserver/data/vs2
SyslogIdentifier=VSSRV2
Create rsyslog file and copy code from step 7
nano /etc/rsyslog.d/vintagestoryserver2.conf
Change VSSRV
to VSSRV2
and /var/log/vintagestory-server
to /var/log/vintagestory-server2
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/
nano /srv/gameserver/data/vs2/serverconfig.json
Now start the service
systemctl restart rsyslog.service;
systemctl enable vintagestoryserver2.service
systemctl start vintagestoryserver2.service
Install cronjob
crontab -e
Insert
30 4 * * * systemctl restart vintagestoryserver2.service
Have Fun!