MAATRIX GAMES / Блог / SA-MP: клиент не может подключиться к серверу

SA-MP: клиент не может подключиться к серверу

MAATRIX GAMES

Вбиваешь IP сервера в SA-MP, жмёшь Connect — и вместо загрузки карты либо тишина, либо сухая ошибка на пару слов. Для мода, которому больше пятнадцати лет, это классика: причин у обрыва подключения немного, и почти все они лечатся за пару минут, если знать, куда смотреть. Разберём по порядку — от банальной опечатки в порту до бана по IP, который сервер выдал молча.

Шаг 1: сервер вообще жив и принимает подключения

Прежде чем разбираться с клиентом, убедись, что сама проблема не на стороне сервера. Подключись по SSH и посмотри, поднят ли процесс:

ps aux | grep samp03svr
ss -tulnp | grep 7777

Если строки с портом нет — сервер либо не стартовал, либо упал при загрузке гейммода. Смотри server_log.txt в корне серверной папки, там обычно видна причина: ошибка компиляции .amx, битый filterscript или нехватка памяти. Пока сервер не слушает порт, чинить клиента бессмысленно — проблема не в нём.

Если сервер поднят в screen-сессии и ты не уверен, что она вообще активна:

screen -ls
screen -r samp

Если сессии нет в списке — процесс мог упасть вместе с завершением SSH-подключения (частая история, если сервер запускали без screen/tmux или без systemd-юнита). Подробно про правильный запуск и автозапуск SA-MP-сервера — в отдельном гайде: как поднять сервер SA-MP.

Шаг 2: неверный порт — самая частая причина

SA-MP по умолчанию слушает 7777/UDP, и в отличие от многих движков, тот же порт обслуживает и игровой трафик, и запросы к серверу (query) — отдельного порта для списка серверов не нужно. Если в диалоге подключения клиента (Direct Connect / прямое подключение по IP) введён IP без порта или с неверным портом — клиент просто не достучится.

Проверь три вещи:

  • Порт в server.cfg совпадает с тем, что вводишь в клиенте. Если админ сервера менял port на нестандартный (например, потому что на одной машине крутится несколько SA-MP-серверов — 7777, 7778, 7779), об этом нужно знать заранее.
  • Формат ввода — IP:порт, без пробелов, без http:// и любых лишних символов. Если порт стандартный, некоторые сборки клиента позволяют не указывать его явно, но надёжнее писать порт всегда, особенно если сомневаешься.
  • Копипаста с лишним пробелом или невидимым символом — частая история, если IP скопирован из чата Discord или с форума. Перепечатай вручную, если подключение не проходит без видимой причины.

Со стороны сервера убедись, что порт реально открыт и проброшен — если сервер за NAT-роутером (домашнее железо, а не VPS с белым IP), проброс портов нужен ещё и в админке роутера, отдельно от файрвола ОС. Общая логика проброса портов для игровых серверов разобрана здесь: настройка портов и файрвола для игрового сервера, а частный случай «порт вроде открыт, а не работает» — в статье порт не проброшен: как проверить и исправить.

Поднять сервер SA-MP за пару минут

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

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

Шаг 3: версия клиента не совпадает с версией сервера

SA-MP жёстко завязан на версию ядра, и рассогласование клиент/сервер — вторая по частоте причина обрыва подключения после порта. Ситуация усложняется тем, что у экосистемы SA-MP несколько параллельных веток:

  • Классический SA-MP 0.3.7 (R1–R4) — разработка ядра фактически остановилась на этой версии, но она до сих пор остаётся основной для тысяч серверов.
  • open.mp — активно развивающийся форк-преемник, совместимый с Pawn-гейммодами SA-MP на уровне скриптов, но использующий собственный клиент и не всегда взаимозаменяемый с классическим SA-MP-клиентом один в один.

Если сервер работает на open.mp, а игрок пытается зайти классическим SA-MP-клиентом (или наоборот) — подключение может либо сразу отклоняться с ошибкой о несовпадении версии, либо просто зависать без внятного сообщения, в зависимости от сборки. Первое, что стоит спросить у игрока — какой именно клиент установлен и с какого источника он скачан.

Отдельная и очень частая ловушка — сама база GTA San Andreas. SA-MP исторически рассчитан на версию 1.0 US игры, а не на Steam/Rockstar-версию, которая имеет другой билд и без даунгрейд-патча с samp.exe работает нестабильно или не работает вовсе. Если игрок ставил SA-MP поверх лицензии из Steam «как есть» — это частая причина, что клиент вообще не может нормально подключиться ни к одному серверу, а не только к твоему.

Что проверить на стороне игрока:

  1. Версия SA-MP-клиента (samp.exe) скачана с официального источника — sa-mp.com или проверенное зеркало, а не случайная сборка с форума с изменённым ядром.
  2. Версия GTA San Andreas — именно 1.0 US, желательно та, что рекомендована на странице загрузки самого SA-MP-клиента.
  3. Если сервер на open.mp — уточни у игрока, использует ли он клиент open.mp (он же умеет коннектиться к классическим SA-MP-серверам, но не наоборот в полной мере).

Шаг 4: бан по IP или по нику — сервер отказывает молча

Если порт открыт, версии совпадают, а конкретный игрок всё равно не может зайти (при этом другие заходят нормально) — велика вероятность бана. SA-MP хранит список забаненных IP в файле samp.ban в корне серверной директории, туда попадают адреса, забаненные вручную через rcon или каким-нибудь античит-фильтрскриптом.

Проверить список банов можно через rcon-консоль (F8 в игре, если у тебя есть rcon-пароль, либо через консоль сервера):

rcon banlist

Забанить и разбанить вручную:

rcon banip 123.45.67.89

Разбана одной командой в ванильном SA-MP штатно нет — проще всего открыть samp.ban текстовым редактором, удалить нужную строку с IP и перезапустить сервер (некоторые кастомные фильтрскрипты добавляют команду вроде unbanip, но это не часть базового ядра, смотри, что стоит именно у тебя). Если банит не сам SA-MP, а сторонний античит-плагин (актуально для RP-серверов с самописной админкой) — список банов и команда разбана будут в его собственной документации, не в стандартном samp.ban.

Отдельно проверь, не попал ли игрок под бан по диапазону — если использовался banip с маской подсети вместо точного адреса, под раздачу может попасть весь домашний пул провайдера, включая динамические IP других игроков. Основные rcon-команды администрирования, включая работу с банами и кик-листом, подробнее разобраны здесь: rcon-подключение и основные команды.

Шаг 5: файрвол или роутер режут трафик

Если проблема массовая — не заходит вообще никто, а не один конкретный игрок — вернись к сетевой части. На VPS с белым IP порт открывается на уровне файрвола ОС:

sudo ufw allow 7777/udp
sudo ufw allow 7777/tcp
sudo ufw status

TCP на 7777-м в SA-MP используется реже самого игрового протокола, но некоторые внешние мониторинги и веб-статусы дёргают его именно через TCP — лучше держать открытым оба.

Если сервер стоит дома за роутером, а не на выделенной машине хостинга — файрвол ОС можно открыть хоть настежь, снаружи это не поможет без проброса порта на самом роутере (раздел Port Forwarding / Виртуальные серверы в его админке). Отдельно стоит проверить, не сидит ли провайдер на CGNAT (Carrier-Grade NAT) — тогда проброс портов физически не работает, сколько его ни настраивай на своей стороне, потому что у роутера нет собственного публичного IP. Признак — WAN IP в админке роутера не совпадает с тем, что показывает внешний сервис определения IP. В этом случае варианта два: просить у провайдера белый IP или переносить сервер на VPS.

Шаг 6: lanmode и query — тихие убийцы подключения

Даже при открытых портах и правильной версии клиента сервер можно случайно спрятать неверными настройками в server.cfg. Два параметра стоит перепроверить в первую очередь:

lanmode 0
query 1

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

query 1 включает ответы на служебные запросы статуса — без него сервер не появится в браузере серверов игры и не будет виден внешним мониторингам онлайна, хотя прямое подключение по IP:порт при этом иногда всё равно может проходить. Если сервер «невидим» в списке, но конкретный игрок с точным IP:портом всё же заходит — дело почти наверняка в query, а не в блокировке трафика.

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

Поднять сервер SA-MP за пару минут

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

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

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

Порт открыт, версия совпадает, а сервер всё равно не появляется в браузере серверов игры?

Проверь query 1 в server.cfg и announce 1, если хочешь публикацию в общем списке SA-MP — без них прямое подключение по IP:порт может работать, а вот автоматическое обнаружение сервера в игре нет.

Один игрок не может зайти, а остальные заходят без проблем?

Скорее всего бан по IP — проверь rcon banlist и файл samp.ban. Если банов нет, попроси игрока попробовать с другой сети (например, мобильный интернет) — иногда блокирует не сервер, а домашний файрвол или провайдер самого игрока.

Клиент пишет что-то про несовпадение версии, но и SA-MP, и GTA SA вроде свежие?

Уточни, не Steam/Rockstar ли версия GTA San Andreas — SA-MP исторически рассчитан на билд 1.0 US, и Steam-версия без даунгрейда часто идёт вразрез с этим требованием, даже если сама SA-MP-сборка актуальна.

Сервер работает на open.mp — обязательно ли игрокам ставить отдельный клиент?

Не строго обязательно на всех сборках, но надёжнее: клиент open.mp совместим и с классическими SA-MP-серверами, а обратная совместимость классического SA-MP-клиента с open.mp-серверами не всегда полная в зависимости от версии.

Как понять, блокирует ли провайдер порт 7777, а не сам сервер?

Попроси кого-то подключиться с другого интернет-канала — мобильного, VPN на другую точку. Если оттуда заходит, а с домашней сети сервера нет — дело либо в проброшенном порте, либо в CGNAT у провайдера, а не в конфиге SA-MP.