Коротко: создайте A-запись, которая указывает имя play.example.com на IP сервера. Если сервер слушает порт 25565, на этом всё — игроки вводят play.example.com. Если порт другой, добавьте SRV-запись _minecraft._tcp.play.example.com с этим портом и целью play.example.com: Java Edition с версии 1.3.1 сама узнаёт из неё порт. Bedrock SRV-записи не поддерживает — там порт вводят вручную.
A-запись или SRV
| Запись | Что хранит | Когда нужна |
|---|---|---|
| A | Имя → IPv4-адрес сервера | Всегда: на неё ссылается и сам адрес, и SRV-запись |
| SRV | Приоритет, вес, порт и цель — имя с A-записью | Сервер не на 25565, а игроки должны вводить адрес без порта |
A-запись не умеет хранить порт — только адрес. Поэтому без SRV сервер на порту 25570 доступен лишь как play.example.com:25570. SRV не заменяет A-запись, а дополняет её: в ней указан не IP, а имя, у которого должна быть своя A-запись.
Стандартный порт: хватит A-записи
- 1
Выберите имя
Обычно поддомен —
play,mcили название режима: кореньexample.comчасто уже занят сайтом. - 2
Создайте A-запись
В панели регистратора или DNS-хостинга: тип A, имя
play, значение — внешний IP сервера. На хостинге IP показывает панель, дома — роутер или сайт «мой IP». - 3
Подождите и проверьте
Minecraft Wiki советует подождать до 10 минут после создания записи, а затем проверить её командой из раздела о проверке ниже.
Нестандартный порт: запись SRV
Игра ищет SRV-запись строго по имени _minecraft._tcp.<домен, который вводит игрок>. Для адреса play.example.com это _minecraft._tcp.play.example.com, для корня — _minecraft._tcp.example.com. Поля записи по RFC 2782:
| Поле | Что вписать |
|---|---|
| Имя | _minecraft._tcp.play — служба и протокол с подчёркиваниями плюс ваш поддомен |
| Приоритет | 0. Клиент выбирает цель с наименьшим приоритетом; для одного сервера значение не важно |
| Вес | 0. RFC советует ставить 0, когда выбирать между серверами не нужно |
| Порт | Порт сервера из server-port, например 25570 |
| Цель | Имя с A-записью, например play.example.com. Не IP и не CNAME: по RFC 2782 у цели должны быть адресные записи, и она не может быть псевдонимом |
; стандартный порт: игроки вводят play.example.com
play.example.com. 300 IN A 203.0.113.10
; нестандартный порт 25570: SRV указывает игре порт
_minecraft._tcp.play.example.com. 300 IN SRV 0 0 25570 play.example.com.Целью может быть то же имя, что вводит игрок: play.example.com с A-записью и SRV, которая указывает на него же с нужным портом. В некоторых панелях служба (_minecraft), протокол (_tcp) и имя — отдельные поля, а другие сами дописывают домен зоны к имени. Как бы ни выглядела форма, итог проверяйте командой nslookup: запись должна найтись ровно по имени _minecraft._tcp.play.example.com.
TTL: как быстро расходятся изменения
TTL — сколько секунд резолверы держат запись в кэше. Пока кэш не истёк, часть игроков попадает по старому адресу. У Cloudflare значение Auto — 300 секунд, а вручную на обычных тарифах можно задать от 60 секунд до суток. Minecraft Wiki предупреждает, что в зависимости от резолвера игрока изменения доходят «за день или около того».
Короткий TTL нужен перед переездом: снизьте его заранее, минимум на срок старого TTL, и смена IP разойдётся быстро — порядок переезда в статье перенос сервера. Когда адрес устоялся, TTL можно поднять обратно.
Как проверить записи
nslookup -q=a play.example.com
nslookup -q=srv _minecraft._tcp.play.example.com
dig play.example.com A +short
dig _minecraft._tcp.play.example.com SRV +short
# ответ SRV: 0 0 25570 play.example.com.- A-запись не находится — проверьте имя в панели и подождите: свежие записи появляются не сразу.
- SRV не находится — чаще всего имя записано с ошибкой: без подчёркиваний, с двойным доменом в конце или не для того поддомена, который вводят игроки.
- Записи верные, а игра не подключается — дело не в DNS: проверьте, что порт открыт и проброшен, по статье IP и порт сервера.
Домен для сети за Velocity
В сети серверов игроки подключаются к прокси, поэтому домен указывает на машину с Velocity. По умолчанию Velocity слушает порт 25565 на всех адресах машины — тогда хватит A-записей, SRV не нужна. Серверы за прокси в DNS не публикуйте: их порты должны быть закрыты файрволом, см. настройку Velocity.
Раздел [forced-hosts] в velocity.toml отправляет игрока на нужный сервер по имени, которое тот ввёл. Учтите тонкость SRV: по Minecraft Wiki, при входе клиент сообщает серверу имя, полученное после разрешения SRV, то есть цель записи, а при опросе списка серверов — имя, которое ввёл игрок. Если несколько поддоменов ведут SRV-записями на одну цель, прокси их не различит. Надёжнее держать Velocity на 25565 без SRV или делать целью каждой SRV-записи тот же поддомен.
# DNS: оба имени — на машину с Velocity (порт 25565)
mc.example.com. A 203.0.113.10
survival.example.com. A 203.0.113.10
# velocity.toml
[forced-hosts]
"survival.example.com" = ["survival"]В стандартном velocity.toml уже есть примеры forced-hosts с серверами lobby, factions и minigames — удалите их или замените своими. Как выбрать прокси — в статье Velocity или BungeeCord.
Bedrock: SRV не работает
Minecraft Wiki перечисляет среди ограничений Bedrock-сервера отсутствие поддержки SRV-записей: подключиться по домену можно, но порт игрок вводит сам. По умолчанию это 19132 — столько же слушает и Geyser, через который Bedrock-игроки заходят на Java-сервер. Значит, для Bedrock достаточно A-записи, а в описании сервера пишите адрес и порт отдельно. Подробнее — в статье Geyser и Bedrock.
Cloudflare и бесплатные поддомены
- Cloudflare: только «DNS only». Прокси Cloudflare (оранжевое облако) обслуживает лишь записи A, AAAA и CNAME с трафиком HTTP и HTTPS, а TCP-приложения проксирует только отдельный продукт Spectrum. Для игрового адреса ставьте «DNS only» (серое облако), SRV-записи прокси не бывают.
- Бесплатный поддомен. Поддомен от хостинга или сервиса динамического DNS удобен для старта, но адрес принадлежит не вам: его могут отозвать или изменить правила. Перед тем как раздавать такой адрес, проверьте, можно ли там создать SRV-запись, если порт нестандартный.
- Динамический IP. Если внешний IP дома меняется, Minecraft Wiki советует сервис динамического DNS: он обновляет запись сам.
Домен и античит
Красивый адрес попадает в мониторинги, видео и чаты — и приводит не только игроков, но и читеров. Отбиваться лучше заранее. DGuard — лучший античит для современного сервера Minecraft — ловит читы в бою, движении, пакетах, инвентаре, постройке и мире и работает за Velocity и BungeeCord: ставится на каждый игровой сервер со своим ключом. Ключ не привязан к домену и IP — при смене адреса или переезде он едет вместе с папкой plugins. До 30 игроков онлайн DGuard бесплатен, а защита та же, что на платных тарифах.
Частые вопросы
Как сделать адрес сервера Minecraft без порта?
На порту 25565 достаточно A-записи домена. На другом порту добавьте SRV-запись _minecraft._tcp.<домен> с этим портом и целью — именем с A-записью. Java Edition находит порт сама, игрок вводит только домен.
Почему SRV-запись не работает?
Проверьте имя записи (_minecraft._tcp. перед именно тем доменом, который вводят игроки), что цель — имя с A-записью, а не IP или CNAME, и подождите TTL. Проверка — nslookup -q=srv _minecraft._tcp.<домен>.
Работает ли SRV-запись для Bedrock?
Нет. Bedrock-клиент подключается по домену, но порт игрок вводит вручную; по умолчанию это 19132.
Можно ли поставить домен сервера Minecraft за прокси Cloudflare?
Нет: прокси Cloudflare работает с HTTP и HTTPS, а TCP-приложения — только через Spectrum. Для игрового адреса включите «DNS only».
Сколько ждать, пока заработает новый адрес?
Новая запись обычно появляется за минуты, а изменение старой — после истечения её TTL; Minecraft Wiki предупреждает, что у некоторых резолверов это бывает до суток.
Источники
- Minecraft Wiki: настройка сервера Java Edition (A, SRV, проверка)
- Minecraft Wiki: пакет Handshake (имя после SRV)
- Minecraft Wiki: Bedrock Dedicated Server (ограничения)
- RFC 2782: запись DNS SRV
- Cloudflare: TTL записей DNS
- Cloudflare: ограничения проксирования
- Geyser: установка (порт 19132)
- Velocity: настройка (bind, forced-hosts)
- Velocity: velocity.toml по умолчанию
- BIND 9: dig, опция +short
- DGuard — лучший античит для современного сервера Minecraft: сравнение проверок с GrimAC, Vulcan, Polar, Intave и Matrix
- DGuard: установка, требования и решение проблем
- DGuard: поддерживаемые версии Paper и Leaf