Left 4 Dead 2: сервер не отображается в браузере серверов
Сервер стартовал без единой ошибки в консоли, друг подключается напрямую командой 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, но в общем браузере серверов может либо не отображаться вовсе, либо показываться с пометкой о непроверенном сервере — часть клиентов такие сервера в списке просто отфильтровывает.
Получить токен:
- Откройте
steamcommunity.com/dev/managegameservers. - Выберите приложение Left 4 Dead 2 Dedicated Server (App ID 222860).
- Создайте токен, привязанный к своему 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 и портов ещё раз.
Пошаговый чек-лист диагностики
Если не хочется читать всё по порядку, вот сжатая последовательность проверок — от самого частого к редкому:
| Шаг | Что проверить | Команда/место | |
|---|---|---|---|
| 1 | sv_lan равен 0 | консоль сервера: sv_lan | |
| 2 | Порт слушается на нужном адресе | `ss -tulnp \ | grep srcds` |
| 3 | UDP 27015 открыт снаружи, не только TCP | sudo ufw status verbose | |
| 4 | GSLT-токен привязан и активен | steamcommunity.com/dev/managegameservers | |
| 5 | Hostname задан явно, без спецсимволов | строка запуска 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, отдельной регистрации не требуется — если сервер виден одному источнику данных, он должен быть виден и другому, с поправкой на задержку кеширования на стороне клиента.