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
- Скачайте SteamCMD у Valve (steamcmd.zip), распакуйте и запустите установщик. Он ставится в ту папку, где лежит, поэтому положите его туда, куда нужно. Не кладите его в папку Steam и в папки с HLDSUpdateTool.
- Запустите SteamCMD и дождитесь обновления, пока не появится приглашение.
SteamCMD готов к командам.
- Войдите анонимно (никогда не используйте свой аккаунт Steam):
login anonymous
Вход выполнен как anonymous.
- При желании выберите папку установки. Подтверждения нет - вы просто возвращаетесь к приглашению Steam:
force_install_dir c:\KF2Server\
- Скачайте сервер (от 5 до 30 минут в зависимости от соединения):
app_update 232130 validate
- Введите
quit, чтобы выйти.
3. Проброс портов
Меню роутеров различаются, поэтому смотрите документацию роутера или провайдера. Чтобы найти роутер: откройте cmd, выполните ipconfig и введите адрес основного шлюза в браузере. Найдите раздел проброса портов и направьте эти порты на локальный IP вашего ПК:
| Порт | Протокол |
|---|---|
| 7777 | UDP |
| 27015 | UDP |
| 8080 | TCP |
| 20560 | UDP |
Сохраните настройки и при необходимости перезагрузите роутер.
4. Первая настройка
Запустите KF2Server.bat один раз, чтобы создались файлы конфигурации. Когда сервер выйдет в сеть, в консоли появятся пять последних строк; после этого окно можно закрыть.
Консоль сервера. Обратите внимание на строку 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: пользователь Admin и заданный вами пароль. Поставьте Remember на 1 Month, чтобы не вводить данные заново.
Обзор текущей игры.
- 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: только для опытных пользователей.
Вкладка Game с настройками сложности и длины.
Внимание: пользовательские значения сложности или длины игры могут сменить статус сервера с Official на Custom. На Custom-серверах перки не получают опыт, а достижения не открываются.
6. Хост и игра на одной машине
Запустите сервер, дождитесь выхода в сеть, затем запустите KF2 и откройте список серверов на вкладке Local или LAN. Ваш сервер должен быть в первой строке. Если вы его не видите или не можете войти:
- Проверьте версии. В окне сервера найдите
Log: KF2 VERSION [XXXX]и убедитесь, что версия совпадает с версией игры. Если нет, обновите сервер. - Подключитесь напрямую. В консоли введите
open xxx.xxx.xxx.xxx:7777с вашим локальным IP, без пароля. - Задайте постоянный локальный 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.
- Смените порты. Добавьте
-port=7787в конец командной строки батника (пробел перед дефисом). Query-порт сдвинется на ту же величину (7787 даёт 27025), поэтому пробросьте и новые порты. - Попросите помощи на форуме 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: на нём перки не получают опыт, а достижения заблокированы.