Если выделенный сервер CS2 работает, но игроки извне не могут зайти, проследите одну попытку от указанного адреса до лога игры. Инструкция рассчитана на уже установленный Linux-сервер с прямым доступом по публичному IP. Здесь нет установки CS2 и рекомендаций по актуальным параметрам запуска. Для проверки нужны sudo на Ubuntu 24.04 и игрок из другой сети.
Запись в браузере серверов, работающий процесс и успешный вход в игру подтверждают разные вещи. Сначала определите воспроизводимый симптом: процесс завершается; все получают timeout; конкретному игроку приходит отказ; вход работает, но сервер не находится в списке. Запишите точный текст ошибки и время попытки с часовым поясом.
Найдите фактический процесс и сокет#
На сервере посмотрите имена процессов без полного списка аргументов: в аргументах могут находиться секреты.
ps -eo pid,user,comm
sudo ss -lunp
Найдите процесс CS2 и принадлежащий ему UDP-сокет. Поля сокета и процесса описаны в руководстве ss. Запишите PID, адрес привязки и фактический порт. На VPS с несколькими играми легко принять сокет другого сервера за нужный.
Если процесса нет, сначала изучите лог запуска. При установке через systemd подставьте реальное имя службы: YOUR_CS2_UNIT — заполнитель.
sudo systemctl status YOUR_CS2_UNIT --no-pager
sudo journalctl -u YOUR_CS2_UNIT -n 100 --no-pager
Процесс может появиться раньше завершения загрузки карты. Ищите сообщения самой игры о готовности и ошибках. Повторные завершения, недостающие библиотеки и сбой загрузки карты относятся к запуску, даже если systemd ненадолго показывает active.
Для прямого IPv4-подключения сокет только на 127.0.0.1 не принимает пакеты, адресованные внешнему интерфейсу хоста. Привязка к 0.0.0.0 охватывает локальные IPv4-интерфейсы, но не публикует сервер через firewall провайдера или NAT. Не записывайте в bind публичный адрес роутера, если этот адрес не принадлежит самому серверу.
Сверьте адрес с реальным маршрутом#
Проверьте, что игрок использует актуальный публичный IP VPS и порт, найденный через ss. Частный LAN-адрес недоступен напрямую из Интернета. При использовании домена сравните результат его разрешения с адресом нужного хоста; временная проверка по подтверждённому публичному IP отделяет DNS от транспорта.
На домашнем сервере сравните WAN-адрес роутера с публичным адресом от провайдера. Правило перенаправления на вашем роутере не создаёт входящий доступ через чужой NAT выше по цепочке. Если WAN-адрес частный или общий, уточните у провайдера возможность публичного адреса с входящими подключениями.
Проверяйте из другой сети. Подключение к публичному IP из той же LAN зависит от поддержки hairpin NAT роутером; его неудача ещё не означает, что сервер недоступен всем внешним игрокам.
Этот порядок касается прямого IP-трафика. В документации Steam Datagram Relay Valve описывает другой маршрут и FakeIP, который не является обычным адресом Интернета. Если логи и конфигурация показывают relay, проверяйте этот маршрут отдельно: неудачная попытка по прямому IP не доказывает поломку relay.
Проверьте оба firewall и сохраните SSH#
Посмотрите действующие правила Ubuntu:
sudo ufw status verbose
Используйте фактический UDP-порт игры из ss. Числа ниже — пример, а не обнаруженный порт CS2 по умолчанию. Замените 27015, если сокет использует другой порт, и 22, если SSH работает на другом:
sudo ufw allow 22/tcp
sudo ufw allow 27015/udp
sudo ufw status numbered
Привязка правил UFW к протоколу описана в документации Ubuntu. Если UFW выключен и вы собираетесь его включить, сначала сохраните необходимые правила остальных служб. Текущую SSH-сессию оставьте открытой:
sudo ufw enable
Проверьте второе SSH-подключение, прежде чем закрывать первое. Такой же UDP-порт разрешите в firewall провайдера. Дома роутер должен перенаправлять его на правильный LAN-хост со стабильным адресом. Правило только для TCP с тем же номером не пропускает UDP-трафик игры.
Не открывайте административные порты всему Интернету ради исправления timeout у игрока. Не оставляйте firewall выключенным в рабочей конфигурации.
Проследите одну ограниченную попытку входа#
Если сокет и правила выглядят правильно, проверьте, доходят ли пакеты игрока до хоста. Установите инструмент на сервере:
sudo apt update
sudo apt install -y tcpdump
Замените пример порта и зарезервированный для документации адрес 198.51.100.24 реальным портом и публичным IPv4 игрока:
sudo tcpdump -ni any -c 30 'udp port 27015 and host 198.51.100.24'
Попросите игрока выполнить одну попытку прямого входа во время захвата. Если тридцать пакетов не набираются, остановите команду через Ctrl+C. Здесь выводятся краткие сведения о пакетах: команда не запрашивает дамп содержимого и не сохраняет файл. Параметры описаны в руководстве tcpdump.
| Наблюдение | Что подтверждено | Следующая проверка |
|---|---|---|
| Совпадающих пакетов нет | Этот фильтр ничего не увидел | IP игрока и фильтр, адрес назначения, правила провайдера, роутер и маршрут ISP |
| Есть входящие, ответов не видно | Пакет дошёл до интерфейса; доставка CS2 ещё не подтверждена | Firewall хоста, адрес и порт сокета, состояние процесса, логи |
| Есть обмен в обе стороны, затем ошибка | Некоторый двусторонний UDP-трафик существует | Отказ игры, несовпадение версий или контента, клиентский лог |
| Один игрок вошёл, другой не может | Сервер способен принять хотя бы этого игрока | Маршрут, адрес и сообщение отказа у второго |
Захват на интерфейсе может увидеть пакет раньше, чем его отбросит firewall хоста. А неправильный фильтр способен скрыть реальную попытку. Это проверка отдельной границы, а не доказательство успешного входа. TCP-проверка порта также не проверяет этот UDP-маршрут.
Разберите конкретный отказ игры#
Если сервер записывает попытку игрока, сохраните сообщение отказа до рестарта. Сравните версии клиента и сервера, запрошенную карту и контент. Если сбой начался после обновления или изменения плагинов, сохраните текущую конфигурацию и проверьте совместимый vanilla-вариант на изолированной копии. Переустановка рабочего сервера при каждой ошибке уничтожает полезные следы и может перезаписать конфиги.
Если лог указывает на авторизацию Steam или токен, проверьте учётную запись и токен на странице управления серверными аккаунтами Steam и сверьтесь с актуальной документацией сервера CS2. Не публикуйте токен на скриншотах и в логах. Требования к токену и поведение запуска зависят от версии; замена токена не исправит отсутствующий сетевой маршрут.
После исправления попросите первоначально не подключавшегося игрока повторить вход и подтвердить загрузку карты. Сохраните рабочий адрес, нужные правила и точное изменение в заметках администратора.
Соберите отчёт, по которому можно помочь#
Для поддержки нужны проверяемый адрес, точная ошибка, время и часовой пояс, сборка сервера, адрес и порт сокета, очищенные от секретов логи запуска и отказа, а также наличие входящего и исходящего трафика в ограниченном захвате. Укажите прямой IP или relay. Удалите токены, пароли и посторонние данные игроков.
С таким отчётом провайдер может искать потерю пакета до VPS, а администратор игры — конкретный отказ. Фраза «порт открыт» оставляет обоих без нужных данных.




