Сервер не виден в списке серверов: как исправить
Знакомая ситуация: сервер поднят, в консоли всё зелёное, "Done!" мелькнул, а друзья пишут "не вижу тебя в списке" или сам сервер висит серым квадратом в мультиплеере у клиента. Самое неприятное — сервер при этом может быть полностью рабочим: зайти по прямому IP получается, а вот в списке серверов (или даже просто в статусе — иконка, пинг, количество игроков) он не отображается. Разберём по шагам, где чаще всего собака зарыта, от самого простого до совсем неочевидного.
Содержание
- Сначала разделите две разные проблемы
- Причина 1: порт не проброшен или закрыт файрволом
- Причина 2: неверный IP или порт в списке серверов игрока
- Причина 3: query отключён — сервер работает, но не показывает статус
- Причина 4: сервер ещё не до конца стартовал
- Причина 5: хостинг или провайдер блокирует порт
- Быстрый чек-лист по порядку проверки
Сначала разделите две разные проблемы
Прежде чем лезть в конфиги, важно понять: у вас "не подключается" или "не виден в списке"? Это разные баги с разными причинами, и их легко перепутать.
- Не подключается вообще — клиент пишет "Connection timed out" или "Failed to connect" при попытке зайти. Тут дело почти всегда в порте или файрволе.
- Виден серым/офлайн, но подключиться можно — сервер добавлен в список (или это LAN-обнаружение), но статус не обновляется, пинг не показывается. Часто виноват
enable-query. - Не появляется в LAN-списке — это вообще отдельная история про broadcast в локальной сети, актуально только для домашних серверов без порт-форвардинга.
Дальше идём по чек-листу от причины, которая встречается чаще всего, к более редким.
Причина 1: порт не проброшен или закрыт файрволом
Это причина номер один, особенно если сервер стоит дома за роутером или на VPS с включённым файрволом по умолчанию. Java-издание слушает TCP 25565, Bedrock — UDP 19132 (это принципиально разные протоколы, спутать легко).
Сначала проверьте, что сам процесс сервера реально слушает порт на машине:
ss -tulnp | grep 25565
Если строки нет вообще — сервер не запущен на этом порту, либо упал ещё до биндинга (смотрите лог logs/latest.log), либо в server.properties стоит нестандартный server-port. Если строка есть, но адрес вида 127.0.0.1:25565 — сервер слушает только локальный интерфейс и снаружи недоступен в принципе. Нужно 0.0.0.0:25565; проверьте параметр server-ip в server.properties — если там что-то прописано вручную (например, старый внутренний IP), просто оставьте поле пустым, тогда сервер слушает все интерфейсы.
Дальше — открыт ли порт на уровне ОС. На Ubuntu/Debian с ufw:
sudo ufw allow 25565/tcp
sudo ufw status
На CentOS/AlmaLinux с firewalld:
sudo firewall-cmd --permanent --add-port=25565/tcp
sudo firewall-cmd --reload
Если сервер за домашним роутером — этого мало, нужен ещё проброс порта (port forwarding) в настройках роутера: внешний порт 25565 TCP → внутренний IP машины с сервером, порт 25565. У большинства провайдеров это раздел "Port Forwarding" или "Виртуальные серверы" в веб-морде роутера. Здесь же часто вылезает NAT-грабля: даже с правильным пробросом сервер может быть недоступен извне, если провайдер выдаёт вам "серый" IP через CGNAT — тогда проброс на своём роутере не поможет, порт физически не долетает до вашей квартиры. Проверяется просто: зайдите на whatismyip и сравните с IP на самом роутере в статусе WAN — если они разные, у вас CGNAT, и нужен либо VPN с белым IP, либо готовый арендованный сервер, где такой проблемы нет по определению.
Проверить доступность порта снаружи, не заставляя друга тестировать вслепую, можно любым онлайн-чекером портов (ищутся по запросу "port checker online") — вводите свой внешний IP и порт 25565/tcp. Если сервис пишет "closed" — проблема на уровне сети/роутера/провайдера, а не в самой игре.
Подробнее про настройку портов и файрвола с нуля — в статье про пробросы и firewall для игровых серверов.
Поднять сервер Minecraft за пару минут
Готовый образ MAATRIX GAMES: NVMe, AMD EPYC, DDoS-защита, панель управления. Локации UK, US, RU. Оплата картой РФ, СБП или криптой.
Создать серверПричина 2: неверный IP или порт в списке серверов игрока
Банально, но случается регулярно, особенно если сервер держит динамический IP (провайдер меняет его при переподключении роутера) или вы поменяли порт, а игроки добавляли сервер до этого.
Что проверить:
- Актуальный внешний IP сервера — командой
curl ifconfig.meна самой машине, либо через тот же whatismyip. - Порт в адресе указан именно тот, что в
server.properties→server-port. Если порт нестандартный, в клиенте Minecraft нужно вводить его через двоеточие:123.45.67.89:25566— без порта клиент попробует достучаться по умолчанию на 25565 и не найдёт сервер. - Для Bedrock-издания при добавлении сервера в список тоже нужно явно указывать порт (по умолчанию 19132), и там отдельная галка "Bedrock" при добавлении — если случайно добавили как Java-сервер, подключения не будет.
- Если используете DNS-имя (SRV-запись) вместо голого IP — убедитесь, что запись действительно указывает на актуальный IP и порт, а не на старый, оставшийся с прошлого хостинга.
Мелочь, которая тоже ловит людей: копипаст IP с лишним пробелом или точкой в конце при добавлении сервера — клиент Minecraft не всегда явно ругается, просто вечно "тайм-аут".
Причина 3: query отключён — сервер работает, но не показывает статус
Вот это самая неочевидная причина, и именно она чаще всего стоит за формулировкой "сервер работает, а в списке не виден". Дело в параметре enable-query в server.properties. Он отвечает не за возможность подключиться (это делает основной игровой протокол), а именно за то, отдаёт ли сервер статус-информацию по отдельному GameSpy-протоколу — количество игроков, версию, MOTD — сторонним инструментам мониторинга и части лаунчеров/сайтов со списками серверов.
enable-query=true
query.port=25565
По умолчанию в ванильном сервере (и во многих сборках Paper/Spigot) enable-query=false. Сам клиент Minecraft при обычном добавлении сервера в мультиплеер-список использует не query-протокол, а собственный ping-хэндшейк через основной игровой порт — поэтому для стандартного меню "Мультиплеер" в клиенте это обычно не критично. А вот если сервер должен светиться на внешних сайтах-мониторингах серверов (топ-листах, агрегаторах), большинство из них опрашивают именно через query — и без enable-query=true вы там просто не появитесь или будете показаны офлайн.
После изменения server.properties сервер нужно перезапустить (горячая перезагрузка конфига через /reload в игре не подхватывает этот параметр надёжно — лучше полный рестарт):
systemctl restart minecraft
# или, если через screen/tmux — просто stop в консоли и повторный запуск скрипта старта
Заодно проверьте, что порт из query.port (обычно совпадает с основным) тоже открыт на файрволе отдельно, если он отличается от server-port.
Причина 4: сервер ещё не до конца стартовал
При первом запуске, особенно с большим view-distance или предзаданным level-seed, генерация мира занимает время — от десятков секунд до нескольких минут в зависимости от мощности процессора хостинга и объёма спавн-чанков. Пока в логе не появилась строка вида:
[Server thread/INFO]: Done (12.483s)! For help, type "help"
— сервер физически не принимает игровые подключения, хотя порт уже может быть открыт. Некоторые клиенты в такой момент показывают именно "не виден в списке" вместо более честного "сервер запускается".
Тот же эффект бывает при большом модпаке на Forge/Fabric — там инициализация модов на старте иногда занимает 3-5 минут на слабом железе, и это нормально, не баг. Если пишете лог в файл, удобно последить в реальном времени:
tail -f logs/latest.log
Дождитесь Done, потом уже разбирайтесь с сетевыми проблемами — чтобы не чинить несуществующий баг.
Причина 5: хостинг или провайдер блокирует порт
Если всё вышеперечисленное проверено, порт слушается, файрвол ОС открыт, а снаружи всё равно "closed" — возможен блок на уровне провайдера (актуально для домашнего интернета, реже для VPS общего назначения, где иногда режут диапазоны портов по умолчанию из соображений антиспама/безопасности, особенно низкие порты вроде 25). Для 25565 это редкость, но встречается у некоторых бюджетных VPS-провайдеров или мобильного/спутникового интернета, где входящие соединения блокируются программно на уровне сети провайдера независимо от настроек вашей машины.
Проверить просто: попробуйте поднять любой другой сервис на этом же порту (например, python3 -m http.server 25565 временно) и проверить его доступность тем же онлайн-чекером портов. Если и он недоступен снаружи при полностью открытом локальном файрволе — проблема точно не в Minecraft и не в вашей настройке, а в сети провайдера или в готовых блокировках хостинга (в панели хостинга иногда есть отдельный список разрешённых портов — стоит свериться).
Здесь же стоит упомянуть облачные фаерволы (Security Groups в некоторых панелях VPS, отдельные от ufw/firewalld внутри системы) — правило может быть открыто внутри ОС, но закрыто на уровне гипервизора/панели провайдера, и тогда ss -tulnp покажет порт слушающим, а снаружи он всё равно будет недоступен. Проверяйте оба уровня.
Если гонять свой сервер дома с CGNAT или нестабильным аплинком надоело — часто проще и без пляски с роутером просто поднять сервер на готовом хостинге, где порты открыты сразу и белый IP не нужно выбивать у провайдера.
Быстрый чек-лист по порядку проверки
Если не хочется читать всё по новой каждый раз, вот порядок действий сверху вниз — от самого частого к самому редкому:
ss -tulnp | grep <порт>— сервер вообще слушает нужный порт и не только на127.0.0.1?- Открыт ли порт на файрволе ОС (
ufw/firewalld) и — если сервер дома — сделан ли проброс на роутере? - Нет ли CGNAT у провайдера (внешний IP на whatismyip совпадает с IP на роутере)?
- Верный ли IP:порт вводит игрок при подключении, тот ли протокол (Java/Bedrock)?
enable-query=trueвserver.properties, если нужен статус на внешних топ-листах серверов?- Дождались ли
Doneв логе после полного старта? - Нет ли блокировки на уровне хостинг-провайдера или облачного файрвола (Security Group)?
| Симптом | Вероятная причина |
|---|---|
| "Connection timed out" при прямом подключении | порт закрыт / не проброшен |
| Виден серым, статус не грузится, но зайти можно | enable-query=false |
| Работает у вас, не работает у друзей | CGNAT / порт не проброшен наружу |
| Не подключается первые пару минут после старта | сервер ещё генерирует мир |
| Всё открыто, но снаружи всё равно "closed" | блокировка на стороне провайдера/хостинга |
Поднять сервер Minecraft за пару минут
Готовый образ MAATRIX GAMES: NVMe, AMD EPYC, DDoS-защита, панель управления. Локации UK, US, RU. Оплата картой РФ, СБП или криптой.
Создать серверЧастые вопросы
Обязательно ли включать enable-query, чтобы сервер видели в обычном мультиплеер-меню клиента?
Нет. Стандартное меню "Мультиплеер" в клиенте Minecraft использует отдельный ping-протокол через основной игровой порт, а не query. enable-query нужен в основном для внешних сайтов-мониторингов и топ-листов серверов.
Почему сервер виден мне, но не виден друзьям из другого города?
Почти всегда это порт, открытый только локально (для вас как для человека в той же сети всё "работает" через внутренний IP), либо CGNAT у провайдера — снаружи порт физически недостижим, хотя изнутри локальной сети всё нормально.
Как быстро понять, порт закрыт снаружи или проблема в самой игре?
Проверить порт любым онлайн-чекером портов извне. Если он пишет "closed" — дело в сети/файрволе, а не в конфиге Minecraft, дальше чинить именно проброс и файрвол.
Нужно ли перезапускать сервер после правки server.properties?
Да, для параметров вроде enable-query или server-port нужен полный рестарт процесса — команда /reload в игре конфигурацию сети не перечитывает.
Может ли антивирус или Windows Defender Firewall блокировать порт на локальном сервере?
Да, если сервер запущен на Windows — часто забывают добавить входящее правило именно для java.exe/javaw.exe в брандмауэре Windows, и порт остаётся закрытым даже при пробросе на роутере.