Сервер CS2 может отвечать сервису проверки TCP-портов и оставаться недоступным для игроков. Проверка могла попасть в сокет администрирования, тогда как игре нужен маршрут UDP. Начните с адреса и порта работающего сервера, затем проследите конкретный протокол через контейнер, хост и границу сети.
Здесь предполагается существующий выделенный сервер на Linux, который уже загружает карту. Ошибки установки, версий и допуска разобраны в руководстве по подключению к CS2. Задача этой статьи — обеспечить прямой вход по выбранному адресу, не превращая список портов Steam в общее разрешение.
Зафиксируйте реальные сокеты сервера#
На Linux-машине посмотрите интерфейсы и сокеты. Для команд нужен iproute2; сведения о процессах могут требовать административных прав:
ip -br -4 address
sudo ss -lunp
sudo ss -ltnp
Найдите процесс CS2, локальный адрес и порт его UDP-сокета. Проверьте -port и привязку адреса в существующем запуске; не запускайте второй экземпляр ради проверки другого значения. Поддерживаемая конфигурация LinuxGSM использует 27015 по умолчанию, но второй экземпляр или оболочка развёртывания могут изменить порт. Во всех примерах ниже подставляйте фактическое значение.
Сокет только на loopback не примет прямое соединение с другой машины. Привязка ко всем IPv4-интерфейсам включает локальные адреса, но не назначает публичный IP и не создаёт правило роутера. Если публичный адрес принадлежит роутеру, на игровом хосте такого интерфейса нет. Привязка CS2 к чужому WAN-адресу не заменяет проброс.
Разделите игру, запросы и управление#
Составляйте реестр служб, а не список номеров для безусловного открытия:
| Назначение | Что установить | Кому нужен доступ |
|---|---|---|
| Игровой обмен | Реальный UDP-порт игры, часто 27015 | Игрокам |
| Запросы о сервере | Поведение query в используемой сборке | Браузеру и клиентам запросов при необходимости |
| RCON | Реальная TCP-точка администрирования | Через приватный маршрут управления |
| CSTV | Включена ли функция и какой порт настроен | Только при осознанном использовании |
У запросов и игрового обмена разные задачи, но отдельный фиксированный query-порт нужен не каждой установке. Интерфейс Valve Steamworks допускает передачу запросов через общий UDP-сокет игры. Ориентируйтесь на реализацию и наблюдаемые сокеты, не придумывая универсальный дополнительный порт.
В поддерживаемом контейнере joedwards32 CS2 обычный номер игрового порта связан также с TCP RCON, а CSTV по умолчанию выключен и имеет отдельный настраиваемый порт. Это полезные ориентиры конкретной интеграции, а не обещание одинаковых настроек всех оболочек. Держите RCON за проверенным приватным маршрутом, например через VPN или SSH. Открытие TCP 27015 всему интернету не исправляет тайм-аут игрового UDP.
Локальный порт клиента выполняет другую роль. Упоминание клиентских портов Steam не означает, что на выделенном хосте нужно пробрасывать широкий диапазон 27000.
Сначала запишите маршрут, затем меняйте роутер#
Пример прямого маршрута к домашней машине:
| Граница | Пример |
|---|---|
| Адрес, который получают игроки | Ваш настоящий публичный IPv4, UDP 27015 |
| Цель правила роутера | 192.168.1.60, UDP 27015 |
| Сокет игры | Настроенный UDP 27015 на этой машине |
Закрепите LAN-адрес через DHCP или существующий план адресации. В правиле роутера явно выберите UDP. Если экземпляру нужна одна игровая точка, не пробрасывайте диапазон; различие внешнего и внутреннего портов, если оно намеренное, запишите.
У VPS с публичным адресом непосредственно на интерфейсе домашнего проброса может вообще не быть. Проверьте файрвол провайдера, а при его трансляции адресов — документированное сопоставление. Разрешение на хосте и разрешение у провайдера относятся к разным границам.
Если WAN-адрес роутера отличается от публичного, выясните, какое устройство или схема провайдера находятся выше. При двух собственных роутерах нужен согласованный маршрут через оба. При CGNAT провайдера изменение внутреннего роутера не создаёт публичного проброса. Узнайте о доступном извне адресе или выберите инфраструктуру с управляемым входящим UDP. Игрокам не нужно пробрасывать порт вашего сервера на своих роутерах.
Разрешите выбранный UDP и проверьте границу контейнера#
Если UFW уже управляет хостом, сначала посмотрите правила:
sudo ufw status verbose
sudo ufw status numbered
Для намеренно публичного UDP-сокета 27015 пример разрешения выглядит так:
sudo ufw allow 27015/udp
sudo ufw status numbered
Учитывайте существующие запрещающие правила и фильтр провайдера. Сохраняйте административный доступ; не сбрасывайте файрвол и не включайте незнакомый набор правил удалённо. Для закрытой группы можно ограничить допустимые адреса источников вместо общего разрешения.
При Docker bridge проверьте публикацию портов работающего развёртывания. Ниже фрагмент существующего игрового сервиса, не замена всего Compose-файла:
ports:
- "27015:27015/udp"
Без суффикса протокола Docker по умолчанию публикует TCP. Такое правило не обеспечивает игровой UDP. Кроме того, опубликованный bridge-трафик Docker может обходить обычную обработку INPUT/OUTPUT в UFW. Проверьте действующую политику Docker и провайдера: вывод UFW сам по себе не доказывает приватность порта управления. Не публикуйте RCON для всех при копировании примера контейнера.
Подтвердите внешний маршрут настоящим подключением#
Попросите игрока из другой интернет-сети проверить публичную точку. В консоли CS2 команда имеет вид:
connect 203.0.113.20:27015
Замените документационный адрес своим реальным. Вход по LAN проверяет локальный путь, а обращение к собственному публичному адресу из той же сети зависит ещё и от loopback-поведения роутера. Оба опыта не заменяют внешнюю попытку. Сайт, проверяющий TCP, также не подтверждает этот UDP-маршрут.
Если установлены tcpdump и GNU timeout, наблюдайте одну согласованную попытку на хосте:
sudo timeout 20s tcpdump -ni any -nn 'udp port 27015'
Команда печатает сводки пакетов без сохранения захвата и завершается через двадцать секунд. Статус timeout 124 может означать обычное окончание окна наблюдения. Сопоставьте адрес игрока и время попытки. Отсутствие подходящих пакетов направляет проверку к адресу, вышестоящему маршруту или фильтру захвата. При входящих пакетах без ответов проверьте доставку к хосту/контейнеру, привязку и логи. Обмен в обе стороны показывает часть пути, но не подтверждает вход в матч.
Завершите настоящее подключение и запишите рабочий маршрут. Если прямой вход работает, а обнаружение сервера — нет, переходите к проверке браузера и регистрации CS2. Изменение токена или relay-настройки не заменяет проверку прямого UDP-пути; не переносите недокументированные правки relay из чужих обсуждений.
Для собственных машин Nexardo помогает организовать администрирование инфраструктуры рядом с реестром адресов. Записывайте отдельно публичный доступ к игре, приватное управление и дополнительные функции: у каждого маршрута свои назначение и проверка.




