Сначала найдите участок, на котором обрывается подключение: адрес, сокет Paper, сетевые фильтры или проверка входа в Minecraft. Работающий SSH и статус active ещё не означают, что игрок может зайти.
Разбираем уже установленный Minecraft Java / Paper непосредственно на Ubuntu 24.04: minecraft.service и /srv/minecraft из инструкции по запуску. У Bedrock, прокси вроде Velocity, контейнеров и серверов с модпаками другая схема подключения. Linux-команды выполняются на VPS, если не указано другое; замените порт в примерах, если у вас он отличается.
Зафиксируйте ошибку до изменений#
Попросите игрока прислать точный текст ошибки, введённый адрес, версию клиента и время попытки. Выясните, не заходит никто, одна домашняя сеть или отдельный аккаунт. Меняйте по одному параметру: тогда успешная попытка поможет понять причину.
| Наблюдение | С чего начать |
|---|---|
Connection refused | Сокет, порт и правила reject; отказ может прислать firewall |
Connection timed out | Адрес, фильтрация и маршрут; сообщение не указывает конкретный firewall |
| Явная ошибка версии, allowlist или аккаунта | Допуск в игру: клиент уже получил ответ |
| Друзья заходят, один игрок — нет | Сравнить его адрес и сеть с работающей попыткой |
| Список показывает offline, прямой вход работает | Проверить отображение статуса |
Найдите реальный слушающий процесс#
На VPS выполните:
sudo systemctl status minecraft --no-pager
sudo journalctl -u minecraft -n 100 --no-pager
sudo ss -ltnp 'sport = :25565'
Ищите завершение запуска в журнале и процесс, которому принадлежит TCP-сокет. Бесконечные перезапуски означают проблему старта. Другая Java на нужном порту может оказаться вторым сервером: не завершайте её, пока не определите службу и мир.
ss показывает адрес и владельца сокета. 127.0.0.1 принимает только локальные подключения. IPv4 wildcard охватывает локальные IPv4-интерфейсы; наличие IPv6-сокета само по себе не доказывает работу IPv4 — проверьте её отдельно.
Посмотрите запуск службы и нужные свойства:
sudo systemctl cat minecraft
sudo sed -n -E '/^(server-ip|server-port|online-mode|white-list|enforce-whitelist|enable-status)=/p' /srv/minecraft/server.properties
Убедитесь, что WorkingDirectory относится к нужному экземпляру. Если служба выбирает другой конфиг, читайте его. Для этой прямой установки оставьте server-ip пустым, а server-port согласуйте с адресом игрока. Документация Paper по диагностике указывает неверный bind и занятый порт как возможные причины ошибки запуска.
Перед исправлением properties штатно остановите службу и сохраните копию файла. После правки запустите сервер и снова проверьте журнал и сокет. Изменение файла не перенастраивает уже работающий процесс.
Сверьте адрес и оба firewall#
Передавайте друзьям публичный IPv4 VPS с реальным портом, например PUBLIC_IP:25565. localhost, 127.0.0.1 и приватный адрес домашнего компьютера не обозначают этот VPS для удалённого игрока. Сравните прямое подключение по IPv4 с доменным именем: если ломается только имя, проверьте DNS вместо переустановки Paper.
Игровое подключение Java использует TCP; Query и удалённое администрирование — отдельные слушатели. Сначала прочитайте существующие правила:
sudo ufw status verbose
sudo ufw status numbered
Если UFW активен и более раннее применимое правило deny не блокирует трафик, добавьте недостающее разрешение:
sudo ufw allow 25565/tcp
sudo ufw status numbered
Просмотр правил описан в руководстве Ubuntu по UFW. Отдельно проверьте firewall или security group провайдера, привязанные именно к этому VPS: протокол, порт назначения и разрешённый источник. Ограничение на вчерашний IP игрока перестанет работать после смены его адреса.
Не отключайте firewall и не открывайте все порты ради проверки. При неактивном UFW команда добавит правило, но не включит фильтрацию; найдите реально действующий фильтр. Если затем решите включать UFW, сначала сохраните доступ по фактическому SSH-порту и правила других приложений, после чего проверьте второе SSH-подключение.
Проследите одну внешнюю попытку#
На Windows-компьютере проблемного игрока проверьте тот же адрес в PowerShell, заменив PUBLIC_IP:
Test-NetConnection -ComputerName PUBLIC_IP -Port 25565
TcpTestSucceeded проверяет доступность TCP, но не вход в Minecraft. Успех переводит проверку к допуску в игру. Неудачу нужно сопоставить с тем, что видно на сервере.
Для короткого наблюдения установите инструмент на VPS, если его нет:
sudo apt update
sudo apt install -y tcpdump
sudo tcpdump -ni any 'tcp port 25565' -c 20
Пока команда работает, попросите игрока зайти. Если пакетов меньше двадцати, завершите Ctrl+C: -c 20 ограничивает количество, а не время. Параметры описаны в руководстве tcpdump. Команда печатает сводку пакетов и не сохраняет файл с их содержимым.
Сопоставьте время и текущий публичный адрес игрока. Отсутствие подходящих пакетов направляет проверку к выбранному endpoint, внешним фильтрам или пути клиента, но не доказывает конкретную причину. Если запросы приходят, а обмен не завершается, проверяйте фильтрацию гостевой ОС, bind и обратный маршрут. Если транспорт работает и игра явно отказывает, переходите к проверке входа.
Когда остальные игроки заходят, сравните попытку проблемного игрока из другой сети, например мобильного хотспота. Это сужает поиск, но не доказывает, что поможет сброс роутера или отключение антивируса.
Не перепутайте домашний сервер с VPS#
У домашнего сервера другая цепочка: публичный адрес → проброс на роутере → приватный адрес машины. Для локальной проверки используйте LAN-адрес сервера, для публичной — действительно внешнюю сеть. Подключение из дома к собственному внешнему адресу может зависеть от hairpin NAT роутера, хотя удалённые друзья заходят.
Сравните WAN IPv4 роутера с публичным адресом, видимым снаружи. Разница может указывать на NAT выше по цепочке, в том числе второй роутер. RFC 6598 выделяет 100.64.0.0/10 как shared address space. Это полезная подсказка, но отсутствие такого адреса не исключает NAT провайдера. Уточните у ISP доступность входящих подключений по публичному IPv4: домашнее правило не настраивает оборудование провайдера.
Для VPS с прямым публичным адресом проброс на домашнем роутере игрока не открывает серверный порт. Если удобнее держать поддерживаемые экземпляры на собственной инфраструктуре под одной панелью, можно рассмотреть управление своим VPS через Nexardo. Подключение машины и создание управляемых экземпляров — отдельные шаги.
Проверьте допуск, когда транспорт работает#
Сверьте версию Minecraft Java Edition у игрока с игровой версией сервера. Bedrock напрямую к этой установке Paper не подключается. При отказе аккаунту сохраните online-mode=true: перезайдите в лаунчер и сопоставьте ошибку с журналом вместо обхода аутентификации.
Если отказ связан с allowlist, действующий оператор может выполнить /whitelist add ExactPlayerName в игре. Выдавать игроку права оператора для допуска не нужно. Намеренные баны проверяйте отдельно, не снимая все ограничения.
Справочник свойств Paper отделяет отображение от входа: при enable-status=false список может показывать offline, хотя прямое подключение возможно. Один значок не доказывает отсутствие сокета.
Завершите проверку входом проблемного игрока в нужный мир. Если войти удалось, но движение и блоки запаздывают, переходите к диагностике лагов. Если причина не найдена, сохраните время попытки, адрес, версию клиента, относящиеся к ней строки журнала, владельца сокета и правила. Перед публичной отправкой удалите IP игроков и другие приватные данные.




