Свой сервер

KF2: свой выделенный сервер и игра на том же ПК

В первые месяцы Killing Floor 2 встроенного способа провести мультиплеерную игру не было: оставался выделенный сервер, а это обычно ежемесячная плата хостеру. Этот французский гайд показывает, как запустить выделенный сервер на собственном ПК с Windows и играть на той же машине. Смотрите также: выделенный сервер KF2 через SteamCMD и частые проблемы хоста.

1. Требования и предупреждения

  • Только Windows. Выделенный сервер KF2 работает на Windows. На Linux или Mac потребуется эмулятор Windows, что автор называет мучением.
  • Исходящая скорость. Настоятельно рекомендуется не меньше 1 Мбит/с (128 КБ/с); тогда у союзников будет пинг 40-100 мс. Не используйте Wi-Fi и не качайте и не стримьте много, пока работает сервер.
  • Процессор. Сервер занимает около 1-5 процентов, обычно 1-2, примерно как клиент Mumble или Steam.
  • ОЗУ. 600-900 МБ; при 8 ГБ проблем не будет.
  • Диск. Около 5,25 ГБ на установку.

2. Установка KF2Server через SteamCMD

  1. Скачайте SteamCMD у Valve (steamcmd.zip), распакуйте и запустите установщик. Он ставится в ту папку, где лежит, поэтому положите его туда, куда нужно. Не кладите его в папку Steam и в папки с HLDSUpdateTool.
  2. Запустите SteamCMD и дождитесь обновления, пока не появится приглашение.

Командная строка SteamCMD после первого обновления SteamCMD готов к командам.

  1. Войдите анонимно (никогда не используйте свой аккаунт Steam):
login anonymous

Анонимный вход в SteamCMD Вход выполнен как anonymous.

  1. При желании выберите папку установки. Подтверждения нет - вы просто возвращаетесь к приглашению Steam:
force_install_dir c:\KF2Server\
  1. Скачайте сервер (от 5 до 30 минут в зависимости от соединения):
app_update 232130 validate
  1. Введите quit, чтобы выйти.

3. Проброс портов

Меню роутеров различаются, поэтому смотрите документацию роутера или провайдера. Чтобы найти роутер: откройте cmd, выполните ipconfig и введите адрес основного шлюза в браузере. Найдите раздел проброса портов и направьте эти порты на локальный IP вашего ПК:

ПортПротокол
7777UDP
27015UDP
8080TCP
20560UDP

Сохраните настройки и при необходимости перезагрузите роутер.

4. Первая настройка

Запустите KF2Server.bat один раз, чтобы создались файлы конфигурации. Когда сервер выйдет в сеть, в консоли появятся пять последних строк; после этого окно можно закрыть.

Консоль выделенного сервера KF2 Консоль сервера. Обратите внимание на строку KF2 VERSION.

Откройте KF2Server.bat на редактирование. Строка выглядит как start .\Binaries\win64\kfserver kf-bioticslab. В конец без пробела добавьте:

?adminpassword=вашпароль

Пароль по умолчанию 123, так что его лучше сменить. Запустите сервер снова, дождитесь выхода в сеть и закройте. Затем откройте KFGame\Config\KFWeb.ini и замените bEnabled=false на bEnabled=true, чтобы включить WebAdmin.

5. WebAdmin

WebAdmin позволяет настраивать и администрировать работающий сервер в браузере, в том числе во встроенном браузере Steam, без переключения окон. Откройте в браузере локальный IP и добавьте :8080.

Страница входа WebAdmin Вход в WebAdmin: пользователь Admin и заданный вами пароль. Поставьте Remember на 1 Month, чтобы не вводить данные заново.

Общий экран WebAdmin Обзор текущей игры.

  • Change Map: выберите карту и нажмите Change Game для подтверждения.
  • Players: пинг, Steam ID, Kick, бан на сессию, бан по IP, бан по Steam ID, mute и unmute. Помогает, если на Hell on Earth зашёл игрок 0 уровня.
  • Passwords: смена паролей игрока и админа на лету, без перезапуска карты.
  • Sessions Bans, Banned ID, IP Masks: просмотр банов и IP-фильтры.
  • General: в Server Information меняется имя сервера (сразу); на вкладке Game - сложность, длина игры и столкновения игроков, для этого нужен перезапуск матча.
  • Gametypes: мелкие тайминги, например задержка перед началом или концом матча.
  • Map Cycles: какие карты будут на сервере, включая пользовательские.
  • Server Actors, Management Console, WebAdmin Settings: только для опытных пользователей.

Вкладка настроек игры WebAdmin Вкладка Game с настройками сложности и длины.

Внимание: пользовательские значения сложности или длины игры могут сменить статус сервера с Official на Custom. На Custom-серверах перки не получают опыт, а достижения не открываются.

6. Хост и игра на одной машине

Запустите сервер, дождитесь выхода в сеть, затем запустите KF2 и откройте список серверов на вкладке Local или LAN. Ваш сервер должен быть в первой строке. Если вы его не видите или не можете войти:

  1. Проверьте версии. В окне сервера найдите Log: KF2 VERSION [XXXX] и убедитесь, что версия совпадает с версией игры. Если нет, обновите сервер.
  2. Подключитесь напрямую. В консоли введите open xxx.xxx.xxx.xxx:7777 с вашим локальным IP, без пароля.
  3. Задайте постоянный локальный IP. Иначе возможны конфликты портов. В Windows откройте настройки адаптера, свойства TCP/IPv4 и укажите IP из той же подсети, что и роутер (192.168.0.x или 192.168.1.x, не используйте x равный 0, 1, 254, 255). Можно также указать DNS, не зависящий от провайдера, например OpenDNS (208.67.222.220 и 208.67.220.222). Затем обновите проброс портов на новый IP.
  4. Смените порты. Добавьте -port=7787 в конец командной строки батника (пробел перед дефисом). Query-порт сдвинется на ту же величину (7787 даёт 27025), поэтому пробросьте и новые порты.
  5. Попросите помощи на форуме Tripwire, форумах Steam или в сабреддите KF2.

7. Обновление сервера

Выделенный сервер сам не обновляется. Создайте в папке SteamCMD файл update_kf2_ds.txt:

login anonymous
force_install_dir <путь к KF2Server>
app_update 232130
quit

Создайте ярлык SteamCMD и допишите в поле «Объект» +runscript update_kf2_ds.txt (с пробелом). Запуск ярлыка обновит сервер. Для участия в бете используйте app_update 232130 -beta "Имя беты".

Итог

С такой настройкой можно сэкономить на хостинге и получить стабильное соединение, нередко лучше, чем у дешёвого хостера.

Вопросы и ответы

Какие порты использует выделенный сервер KF2?
Пробросьте 7777 UDP, 27015 UDP, 8080 TCP и 20560 UDP на ПК, где запущен сервер.
Какой app id у сервера KF2 в SteamCMD?
232130. После login anonymous используйте app_update 232130 validate.
Почему игроки на моём сервере не получают опыт?
Пользовательская сложность или длина игры могут перевести сервер из статуса Official в Custom: на нём перки не получают опыт, а достижения заблокированы.