RE:NODE

Руководства10 мин чтения

Серверы для LAN-пати: сеть и игры

Как подготовить серверы для LAN-пати: проводная сеть, свой сервер на месте или хостинг, LAN-режим в разных играх, кэширование загрузок Steam и типичные сбои.

0 прочтений

Для LAN-пати нужно, чтобы все машины были подключены к одному проводному свитчу, один выделенный сервер (или хостинговый сервер, если интернет на площадке приличный) с играми, в которые вы планируете играть, и чтобы каждая игра была установлена и обновлена до того, как кто-то придёт. Локальные серверы дают минимальную задержку и переживают падение интернета на площадке; хостинговые избавляют от необходимости таскать железо и продолжают работать после вечеринки. Большинство современных игр даже в LAN требуют интернета для аутентификации игроков, так что "LAN" редко означает "офлайн". Ниже: сеть, сервер, LAN-режим по играм, кэширование загрузок, чтобы сорок человек не тянули одно и то же обновление на 80 ГБ, и сбои, которые съедают первые два часа любой LAN-пати.

Локальный сервер или хостинговый#

Первое решение - где будут работать серверы. Работают оба варианта; ломаются они по-разному.

Сервер на площадкеХостинговый сервер в дата-центре
ЗадержкаМеньше 1 мс в проводной LANПинг от площадки до хостинга, часто 10-40 мс
Интернет на площадке упалИгры с офлайн-LAN продолжают работатьНичего не работает
Железо, которое нужно везтиЕщё один ПК плюс его кабелиНикакого
Время на настройку в день мероприятияУстановка, настройка, проверкаУже работает
После вечеринкиУпакован и увезёнПродолжает работать для группы
Использование исходящего каналаНикакого для игрового трафикаТрафик каждого игрока идёт через канал

Локальный сервер выигрывает в соревновательных шутерах, где миллисекунда для людей важна, и на площадках с плохим или ненадёжным интернетом. Хостинговый выигрывает для игр с постоянным миром, в которые группа будет играть и после выходных, - мир Minecraft или сохранение Valheim, которое становится сервером группы, - и для небольших мероприятий, где везти ещё один ПК неудобно.

Многие LAN-пати делают и то и другое: локальный сервер для турнирных игр и хостинговый для кооперативного мира. Игровой трафик небольшой - для большинства игр несколько сотен килобит в секунду на игрока, - так что площадка с нормальным подключением без напряжения справится с хостинговым сервером на тридцать человек. С чем она не справится, так это с тридцатью людьми, одновременно качающими обновления, но это отдельная проблема, и у неё есть своё решение - ниже.

Сеть#

Большинство проблем на LAN-пати - сетевые, и почти все они исчезают, если использовать кабели.

Подключайте всё по проводу. Wi-Fi на LAN-пати - это тридцать устройств плюс тридцать телефонов, которые в одной комнате борются за одни и те же каналы. Дальше следуют скачки задержки и потеря пакетов. Проведите гигабитный Ethernet к каждой игровой машине и к серверу, а Wi-Fi оставьте для телефонов.

Одна плоская сеть. Гигабитный свитч (или несколько, соединённых между собой), и всё в одной подсети. Если портов нужно больше, чем есть у одного свитча, соединяйте свитчи между собой, а не цепочкой через чей-то ПК. В таком масштабе неуправляемые свитчи вполне подходят.

Один DHCP-сервер. Обычно адреса раздаёт роутер площадки. Если вы привозите свой роутер, убедитесь, что DHCP в сети занимается только одно устройство, - два будут раздавать конфликтующие адреса, и машины будут случайным образом отваливаться.

Фиксированный адрес для сервера. Дайте ему статический IP или резервацию DHCP, чтобы адрес, который вы написали на доске в 18:00, был верным и в 02:00.

загрузки игрИнтернет площадкироутер, DHCPСерверстатический IPПК игроковпо кабелюКэш загрузокLANCacheГигабитный свитчплоская сеть
Типичная схема LAN-пати

Честно оцените канал. Если подключение площадки делится с другими людьми, спросите, какое оно. Линии на 100 Мбит/с хватает для игры, но для обновлений это мучение. Типичные цифры по играм есть в статье трафик игрового сервера на игрока, а статья задержка, джиттер и потеря пакетов поможет понять, какая у вас проблема, когда кто-то жалуется на лаги.

Сервер#

Запасной десктоп - вполне хороший LAN-сервер. Требования скромные: современный четырёхъядерный процессор с высокой производительностью на ядро, 16 ГБ памяти, чтобы держать три-четыре сервера одновременно, SSD и проводное подключение. Видеокарта ему не нужна, кроме той, что позволяет видеть рабочий стол.

Настройте его дома, за неделю до мероприятия:

  1. Установите операционную систему и все обновления. Windows подходит почти для любой игры; Linux легче и для большинства игр работает нативно. Какой игре что нужно, разобрано в статье игровые серверы на Linux и Windows.
  2. Установите SteamCMD и все серверы, которые планируете запускать. Команды есть в статье что такое SteamCMD; сколько памяти нужно каждому, - в статье требования игровых серверов по играм.
  3. Настройте каждый сервер, запустите его и подключитесь к нему с другой машины в домашней сети.
  4. Напишите стартовый скрипт или ярлык для каждого сервера, чтобы в день мероприятия запуск игры был двойным щелчком.
  5. В Windows разрешите каждому серверу доступ через брандмауэр в частных сетях и убедитесь, что сеть площадки будет считаться частной. Сеть, помеченная как общественная, по умолчанию блокирует входящие подключения, и это самая частая причина "никто не видит мой сервер" на LAN-пати.

Затем, накануне, запустите каждый сервер ещё раз, чтобы подтянуть обновления. Обновления, вышедшие за ночь, всё равно вас настигнут, поэтому и важно локальное кэширование загрузок.

LAN-режим по играм#

"LAN-режим" в разных играх означает разное. Некоторые действительно играются офлайн; большинство по-прежнему проверяют каждого игрока онлайн и просто не попадают в публичный список серверов.

Игры на Source: TF2, CS:S, Garry's Mod, L4D2

sv_lan 1 в server.cfg делает сервер только локальным: он не регистрируется на мастер-сервере Steam, и зайти могут только клиенты из локальной подсети. Игроки находят его на вкладке LAN в браузере серверов, который обнаруживает серверы широковещательными запросами в локальной сети. Steam у игроков всё равно должен быть запущен, и в него нужно войти. Для смешанного мероприятия, где часть людей подключается не с площадки, оставьте sv_lan 0. Остальная настройка описана в статье основы SRCDS.

Counter-Strike 2

Серверы CS2 для LAN-турниров тоже запускают с sv_lan 1, а игроки подключаются через connect <ip> в консоли. Чтобы игроки вообще могли запустить игру, Steam должен быть онлайн, так что полное отключение интернета останавливает CS2 независимо от того, где находится сервер. Настройки матча - в статье конфиг сервера CS2 для соревновательных матчей.

Minecraft

Выделенный сервер Java с online-mode=true проверяет каждого игрока через Microsoft, поэтому ему нужен интернет. С online-mode=false не нужен - но это также значит, что любой в сети может зайти под любым ником, в том числе под ником админа. На закрытой LAN-пати, где все друг друга знают, это приемлемый компромисс, если интернет ненадёжный; где-либо ещё - нет. "Открыть для сети" из одиночного мира - вариант без настройки для нескольких игроков, хотя тогда мир работает на ПК одного человека. online-mode и остальные настройки разобраны в статье server.properties в Minecraft.

Другие

ИграПоведение в LAN
FactorioLAN-игры работают офлайн; выделенные серверы можно настроить не требовать проверки пользователей
TerrariaК выделенному серверу подключаются по IP, что работает в локальной сети
ValheimНужен Steam (или PlayFab для кроссплея); офлайн-режима нет
SatisfactoryОжидает онлайн-сервисы для входа игроков
Старые игры (UT, Quake, оригинальная AoE2)Настоящая офлайн-игра по LAN

Чем старше игра, тем вероятнее, что она играется по-настоящему офлайн, - отчасти поэтому классика и остаётся популярной на LAN-пати. Для всего современного исходите из того, что интернет должен работать, чтобы игроки могли войти, и считайте локальный сервер улучшением задержки, а не страховкой от отключения.

Загрузки: проблема, которая съедает первые два часа#

Приходят тридцать человек, запускают Steam, и у каждого обновление на 20 ГБ для игры, с которой вы планировали начать. На подключении 100 Мбит/с это много часов. Это самый предсказуемый сбой на любой LAN-пати, и у него три решения, которые лучше использовать вместе.

Попросите всех обновиться до прихода. Накануне опубликуйте список игр и попросите всех один раз запустить каждую игру дома. Половина так и сделает.

Запустите кэш загрузок. LANCache (от проекта lancache.net) - кэширующий прокси, который работает в Docker на машине на площадке. DNS площадки (или собственная DNS-служба кэша) направляет Steam, Battle.net, Epic и другие хосты с контентом на кэш; первый, кто качает обновление, тянет его из интернета, а все последующие получают его из LAN на скорости локального диска. Нужна машина с большим быстрым диском и проводным подключением, а также некоторая настройка DNS в сети. Для мероприятия больше чем примерно на пятнадцать человек оно того стоит.

Используйте локальную передачу Steam. Steam может копировать файлы игры с другого ПК в той же сети вместо загрузки, если включена настройка, разрешающая передачу с устройств в локальной сети. Это помогает, но только когда у кого-то в LAN уже есть точно такая же версия.

Электричество, тепло и физическая сторона#

Непарадная часть решает, будет ли сервер работать в три часа ночи.

Посчитайте ватты. Игровой ПК под нагрузкой потребляет несколько сотен ватт, монитор - ещё тридцать-пятьдесят. Двадцать мест на одной бытовой линии выбьют автомат - обычно в тот момент, когда матч уходит в овертайм. Спросите на площадке, как розетки распределены по линиям, и расставьте столы соответственно. Подключите сервер и свитч к линии с как можно меньшим числом игровых ПК, а в идеале - к небольшому ИБП, чтобы выбитый где-то автомат не уронил вместе с собой все игры.

Держите сервер подальше от людей. Сервер под оживлённым столом пинают, выдёргивают из розетки, чтобы зарядить телефон, и заваливают куртками. Поставьте его вместе со свитчем и кэшем где-нибудь на виду, но в стороне от проходов, с подписанными кабелями.

Следите за теплом. Комната, полная ПК, быстро нагревается, а сервер, придвинутый к стене с перекрытыми вентиляторами, начнёт троттлить. Оставьте ему место, чтобы дышать.

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

Проведение мероприятия#

Напишите список серверов на доске. Игра, IP и порт, пароль, если есть. Большинство вопросов на LAN-пати - "какой адрес?".

Запускайте серверы, когда они нужны. Каждый работающий сервер отнимает у машины память и CPU. Держите запущенными текущую игру и следующую, а не все восемь.

Дайте серверам и картам время. Большие коллекции Workshop и пользовательские карты в первый раз загружаются долго. Запускайте сервер для следующей игры за десять минут до конца текущей.

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

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

Решение проблем в день мероприятия#

Никто не видит сервер. В Windows сеть, скорее всего, помечена как общественная, и брандмауэр блокирует входящий трафик. Смените профиль на частный или добавьте явные правила брандмауэра для портов сервера. Затем проверьте, что сервер и игроки в одной подсети.

Одни игроки видят его, другие нет. Два DHCP-сервера или часть машин на Wi-Fi в другой подсети, чем проводные. Проверьте IP-адреса: в типичной сети домашнего типа у всех должны совпадать первые три числа.

Скачки лага у всех. Какая-то машина в сети её забивает - обычно загрузкой. Проверьте, работает ли кэш и не стримит ли кто-то в высоком качестве через тот же канал.

"Connection failed: Steam not logged in". Пропал интернет, или Steam у игрока в офлайн-режиме. Большинство современных игр без него не могут пройти аутентификацию.

Сам сервер тормозит. Запущено слишком много серверов одновременно. Остановите те, на которых никто не играет.

FAQ#

Нужен ли на LAN-пати выделенный сервер?

Не всегда. Многие игры позволяют одному игроку хостить прямо из игры, и для небольших групп этого достаточно. Выделенный сервер лучше, когда игроков больше восьми, для соревновательных игр и для всего, что должно работать, пока ПК хоста занят чем-то другим.

Можно ли играть без интернета на LAN-пати?

Только в игры, которые поддерживают офлайн-игру по LAN. Большинству современных игр нужна онлайн-аутентификация, даже когда сервер в той же сети. Старые игры и некоторые инди полностью работают офлайн - проверьте каждую игру, которую планируете, прежде чем на это рассчитывать.

Не будет ли хостинговый сервер слишком лагать для LAN?

Для кооператива и неспешной игры - нет: 10-40 мс в большинстве игр незаметны. Для соревновательных шутеров на турнире задержка локального сервера меньше миллисекунды заметно лучше, и игроки разницу заметят.

Сколько игровых серверов может держать один ПК?

Современный четырёхъядерник с 16 ГБ спокойно держит три-четыре небольших сервера одновременно - сервер CS2, сервер TF2, сервер Minecraft и что-то лёгкое. Обычно ограничение - память; проверьте потребности каждой игры.

Что такое LANCache и нужен ли он мне?

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


Комментарии

Полностью анонимно: без аккаунта, без почты, без cookie. Мы храним имя, которое вы ввели, текст и время - больше ничего. Количество ссылок ограничено, разметка не отображается.

0/2000