MAATRIX GAMES / Блог / Left 4 Dead 2: сервер не отображается в браузере серверов

Left 4 Dead 2: сервер не отображается в браузере серверов

MAATRIX GAMES

Сервер стартовал без единой ошибки в консоли, друг подключается напрямую командой connect IP:27015 и спокойно играет — а в самом браузере серверов L4D2 сервера просто нет, сколько ни обновляй список. Это одна из самых частых жалоб на Source-серверах, и почти всегда причина в одной из четырёх вещей: неверный параметр запуска, файрвол, GSLT-токен или обычная задержка индексации в мастер-сервере Steam. Разберём по порядку, от самого частого к самому редкому.

Сначала проверьте, что сервер вообще работает как публичный

Прежде чем лезть в файрвол и токены, убедитесь, что сервер сам себя не прячет. Самая частая причина невидимости — банальный sv_lan 1 в конфиге. Этот параметр переключает сервер в режим локальной сети: он вообще не пытается зарегистрироваться на мастер-сервере Steam и не появится в публичном списке ни при каких условиях, даже если все остальные настройки идеальны.

Проверить текущее значение можно прямо в консоли запущенного сервера:

sv_lan

Если ответ sv_lan = 1 — меняем на 0 и перезапускаем сервер (на лету команда не всегда подхватывается корректно для регистрации на мастер-сервере, надёжнее рестарт):

sv_lan 0

Или сразу пропишите это в left4dead2/cfg/server.cfg, чтобы не забыть при следующем запуске:

sv_lan 0
sv_region 3

sv_region тоже стоит проверить — это код региона, который сервер отдаёт мастер-серверу для правильной сортировки по географии в браузере. Неверное значение видимость обычно не убивает полностью, но может занижать позицию сервера в выдаче для игроков из вашего региона. Если про эти два параметра и общую настройку server.cfg хочется освежить с нуля — есть отдельный разбор, как поднять сервер Left 4 Dead 2 с полным стартовым конфигом.

Параметры запуска: hostname, порт и конфликт с другим процессом

Вторая по частоте причина — что-то не так со строкой запуска srcds_run. Разберём, что в ней реально важно для видимости.

Hostname. Пустой или содержащий только пробелы hostname иногда приводит к тому, что сервер регистрируется на мастер-сервере, но не показывается в клиентском фильтре — некоторые версии браузера серверов просто не отрисовывают строку без имени. Задавайте его явно и без спецсимволов на первое время, чтобы исключить проблему:

./srcds_run -game left4dead2 -console -port 27015 +hostname "Мой L4D2 сервер" +exec server.cfg +map c1m1_hotel

Порт. Если на одной машине крутится несколько игровых серверов (например, L4D2 и CS2 на одном VPS), и оба стартовали с портом 27015 по умолчанию — второй процесс либо не запустится, либо молча сядет на другой сокет операционной системы, а вы будете гадать, почему сервер "работает", но не виден. Проверить, какой порт реально слушает процесс:

ss -tulnp | grep srcds

Если в выводе не 27015, а что-то другое — либо освобождайте порт, либо явно фиксируйте нужный флагом -port и синхронизируйте это значение с тем, что открыто в файрволе.

Bind-адрес. Отдельная грабля, характерная больше для контейнеризованных или NAT-окружений — сервер слушает 127.0.0.1 вместо всех интерфейсов. Для классического srcds_run это редкость (Source-движок по умолчанию слушает все интерфейсы), но если запускаете сервер через Docker с явным пробросом или через кастомный враппер — проверьте, что порт действительно опубликован наружу, а не только внутрь контейнера.

Пустой или битый map-параметр. Если +map указывает на несуществующую карту (опечатка в названии или карта из неустановленной кампании), сервер иногда стартует в странном промежуточном состоянии — в консоли не всегда явная ошибка, но регистрация на мастер-сервере может не пройти. Сверьте название карты с тем, что реально лежит в left4dead2/maps/.

Поднять сервер Left 4 Dead 2 за пару минут

Готовый образ MAATRIX GAMES: NVMe, AMD EPYC, DDoS-защита, панель управления. Локации UK, US, RU. Оплата картой РФ, СБП или криптой.

Создать сервер

GSLT-токен: без него сервер видят не все

Начиная с определённого момента Valve требует Steam Game Server Login Token (GSLT) для публичных выделенных серверов L4D2. Без токена сервер обычно всё ещё работает и отвечает на прямое подключение по IP, но в общем браузере серверов может либо не отображаться вовсе, либо показываться с пометкой о непроверенном сервере — часть клиентов такие сервера в списке просто отфильтровывает.

Получить токен:

  1. Откройте steamcommunity.com/dev/managegameservers.
  2. Выберите приложение Left 4 Dead 2 Dedicated Server (App ID 222860).
  3. Создайте токен, привязанный к своему Steam-аккаунту.

Впишите его в server.cfg или прямо в командную строку запуска:

sv_setsteamaccount XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

После добавления токена перезапустите сервер полностью — на лету GSLT не переподхватывается. В консоли при успешной привязке появится строка о подключении к Steam-серверам аутентификации; если вместо неё ошибка про неверный или уже занятый токен — значит, тот же GSLT уже используется другим запущенным сервером (один токен нельзя одновременно вешать на два процесса), нужно сгенерировать отдельный.

Файрвол и проброс портов

Если сервер регистрируется на мастер-сервере (это видно по логам — там будет строка о попытке связи со Steam), но клиенты его не находят в списке, проблема почти всегда в сетевой доступности, а не в самой игре. L4D2 использует:

  • 27015 UDP/TCP — основной игровой порт и одновременно порт, по которому мастер-сервер и клиенты запрашивают статус сервера (server query).
  • 27020 UDP — порт SourceTV, если включена трансляция (+tv_enable 1).

Ключевой нюанс: для попадания в браузер серверов важен именно UDP, а не только TCP-соединение для самой игры. Если открыт только TCP-27015 (частая ошибка при ручной настройке файрвола, когда TCP открывают "на всякий случай", а UDP забывают) — прямое подключение может даже сработать, а вот server query, который отвечает за появление в списке, стучится по UDP и остаётся без ответа.

На VPS с ufw проверка и открытие обоих протоколов:

sudo ufw allow 27015/tcp
sudo ufw allow 27015/udp
sudo ufw allow 27020/udp
sudo ufw status verbose

Быстро проверить снаружи, действительно ли порт открыт, можно через canyouseeme.org — правда, помните, что этот сервис по умолчанию тестирует TCP, а для L4D2 куда важнее UDP-доступность, которую внешним веб-чекером напрямую не проверить. Более развёрнутая методика диагностики порта, включая разницу между VPS и домашним роутером с NAT, — в статье порт не проброшен: как проверить и исправить, а общий подход к настройке файрвола под игровой сервер — в материале про настройку портов и файрвола для игрового сервера.

Если сервер арендован у хостера с готовым игровым тарифом, порты обычно уже открыты на уровне инфраструктуры заранее — в этом случае причину стоит искать в остальных пунктах этого разбора, а не в файрволе.

Задержка индексации мастер-сервером Steam

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

Что можно сделать, чтобы не гадать вслепую:

  • Обновите список в браузере серверов игры вручную (кнопка Refresh), не полагаясь на автообновление — оно иногда кеширует старый список дольше, чем хотелось бы.
  • Используйте фильтр по IP или прямой поиск сервера в браузере, если игра это позволяет — так вы не будете листать сотни строк в общем списке.
  • Проверьте статус через сторонние трекеры игровых серверов Source-движка — они опрашивают мастер-сервер отдельно и иногда показывают сервер раньше, чем он появляется в браузере самой игры.
  • Если сервер часто перезапускается (например, systemd с Restart=on-failure из-за нестабильного мода) — каждый рестарт снова кидает его в конец очереди индексации. Разберитесь сначала со стабильностью, если сервер падает регулярно: причину обычно видно в логах, и здесь пригодится общий разбор логов и краш-репортов.

Если прошло больше 20-30 минут, сервер стабильно работает, все предыдущие пункты проверены — задержка индексации, скорее всего, не при чём, и стоит вернуться к проверке GSLT и портов ещё раз.

Пошаговый чек-лист диагностики

Если не хочется читать всё по порядку, вот сжатая последовательность проверок — от самого частого к редкому:

ШагЧто проверитьКоманда/место
1sv_lan равен 0консоль сервера: sv_lan
2Порт слушается на нужном адресе`ss -tulnp \grep srcds`
3UDP 27015 открыт снаружи, не только TCPsudo ufw status verbose
4GSLT-токен привязан и активенsteamcommunity.com/dev/managegameservers
5Hostname задан явно, без спецсимволовстрока запуска srcds_run
6Прошло достаточно времени с момента стартаподождать 10-15 минут, обновить список вручную

Пройдите эти шесть пунктов сверху вниз — в подавляющем большинстве случаев проблема находится на первых трёх, до GSLT дело часто даже не доходит.

Поднять сервер Left 4 Dead 2 за пару минут

Готовый образ MAATRIX GAMES: NVMe, AMD EPYC, DDoS-защита, панель управления. Локации UK, US, RU. Оплата картой РФ, СБП или криптой.

Создать сервер

Частые вопросы

Друг подключается по прямому IP, а в списке серверов игры сервера нет — это точно проблема с портами?

Не обязательно. Прямое подключение работает через TCP/UDP-канал напрямую к серверу, а появление в списке требует ещё и успешной регистрации на мастер-сервере Steam через sv_lan 0 и открытый UDP-порт для server query. Первое рабочее не гарантирует второе — это разные механизмы.

Обязателен ли GSLT, если сервер приватный, только для своих друзей?

Формально нет — без токена сервер обычно доступен по прямому подключению. Но часть клиентов и модов проверяет наличие валидного GSLT, и без него могут появляться предупреждения о непроверенном сервере даже при прямом коннекте, так что для стабильности лучше завести токен в любом случае.

Сколько ждать после запуска, прежде чем считать, что сервер не индексируется?

Обычно 5-10 минут достаточно. Если прошло больше 20-30 минут и сервер стабильно работает без рестартов — дело не в задержке, возвращайтесь к проверке sv_lan, портов и GSLT.

Может ли причина быть в самом Steam, а не в моих настройках?

Технически да — у мастер-серверов Valve иногда бывают временные сбои или задержки на их стороне, но это редкость и обычно затрагивает сразу множество серверов, не только ваш. Если знакомые с другими Source-серверами тоже жалуются на пропажу из списков в это же время — вероятно, дело не у вас.

Нужно ли что-то отдельно настраивать для отображения в браузере серверов внутри самой L4D2, а не в Steam?

Нет, встроенный браузер серверов L4D2 использует тот же мастер-сервер Steam, отдельной регистрации не требуется — если сервер виден одному источнику данных, он должен быть виден и другому, с поправкой на задержку кеширования на стороне клиента.