Как пустить друзей на сервер через интернет
Внутри своей квартиры сервер виден сразу, а вот снаружи — нет. Разбираем, что для этого нужно, что делать при сером IP и как не пустить на сервер лишних.
Коротко
Что нужно, чтобы друг зашёл не из моей сети?
Внешний («белый») IP-адрес у вашего интернета и проброс порта 25565 на роутере к компьютеру с сервером. После этого друг подключается по вашему внешнему адресу.
Как понять, белый у меня адрес или серый?
Посмотрите в настройках роутера адрес WAN и сравните с тем, что показывает любой сайт «узнать свой IP». Совпадают — адрес белый, различаются — серый, и проброс порта не сработает.
Что делать при сером IP?
Заказать белый адрес у провайдера — обычно это небольшая доплата в месяц, — воспользоваться сервисом-туннелем или арендовать готовый сервер у хостинга.
Опасно ли открывать порт?
Сам порт игры угрозы не несёт, но ваш адрес станет виден посторонним, а сервер начнут находить сканеры. Включите белый список — тогда чужие просто не смогут зайти.
Как это устроено
Сервер работает на вашем компьютере и слушает порт 25565. Внутри
квартиры к нему можно обратиться по локальному адресу вроде 192.168.1.5 —
роутер знает, где стоит эта машина.
Снаружи всё сложнее: интернет видит не ваш компьютер, а роутер. Чтобы запрос дошёл до сервера, роутеру нужно объяснить: «всё, что придёт на порт 25565, отдавай вот этому компьютеру». Это и называется пробросом порта.
Шаг 1. Узнать, какой у вас адрес
Откройте настройки роутера (обычно 192.168.0.1 или 192.168.1.1)
и найдите там адрес WAN — внешний адрес подключения. Потом откройте любой
сайт вида «узнать свой IP» и сравните.
- Совпали — адрес белый, можно пробрасывать порт.
- Разные — адрес серый: вы сидите за общим адресом провайдера вместе с сотнями соседей. Проброс порта в этом случае не заработает, сколько ни настраивай. Что делать — в конце статьи.
Шаг 2. Закрепить адрес за компьютером
Роутер раздаёт локальные адреса сам и после перезагрузки может выдать вашему компьютеру другой. Тогда проброс будет вести в пустоту.
В настройках роутера найдите раздел DHCP и включите «резервирование»: привяжите нужный локальный адрес к вашему компьютеру. Как вариант — задайте статический адрес в настройках сети Windows.
Шаг 3. Пробросить порт
В роутере это раздел «Проброс портов», «Виртуальные серверы» или Port Forwarding — название зависит от производителя. Заполняется так:
- внешний порт: 25565
- внутренний порт: 25565
- протокол: TCP
- адрес: локальный адрес компьютера с сервером
Сохраните и перезагрузите роутер.
Шаг 4. Разрешить в брандмауэре
Windows по умолчанию блокирует входящие соединения. При первом запуске сервера появляется окно «Разрешить доступ» — если вы его закрыли, откройте «Брандмауэр Защитника Windows» → «Разрешение взаимодействия с приложением» и разрешите Java для частных и публичных сетей.
Шаг 5. Проверить снаружи
Изнутри своей сети проверка не считается: она может работать, когда снаружи всё закрыто. Попросите друга зайти или воспользуйтесь любым сайтом-пингером для серверов Minecraft — введите свой внешний адрес и посмотрите, отвечает ли.
Друзья подключаются по адресу вида:
203.0.113.25
Порт указывать не нужно, если вы оставили стандартный 25565.
Адрес меняется — что делать
У большинства домашних подключений внешний адрес меняется: сегодня один, завтра другой. Диктовать друзьям новые цифры каждую неделю неудобно.
Два решения:
- DDNS. Бесплатные сервисы динамических имён дают постоянное имя вида
mojserver.ddns.net, а роутер сам сообщает им новый адрес. Поддержка DDNS есть почти в каждом роутере. - Свой домен и SRV-запись. Если есть домен, SRV-запись позволяет друзьям
вводить просто
игра.мойдомен.ру— даже когда сервер работает на нестандартном порту.
Если адрес серый
Проброс порта не поможет — нужен другой путь:
- Заказать белый адрес у провайдера. Обычно стоит немного и включается в личном кабинете. Самый надёжный вариант.
- Сервис-туннель. Программы вроде playit.gg поднимают соединение наружу и дают адрес, по которому к вам подключаются. Ничего настраивать в роутере не нужно, но появляется зависимость от чужого сервиса и лишняя задержка.
- Арендовать сервер у хостинга. Мир будет доступен, даже когда ваш компьютер выключен, и вопрос с адресом отпадает вовсе.
Безопасность: что сделать обязательно
Открытый порт находят сканеры за считаные часы. Ничего страшного в этом нет, но пара мер нужна.
- Включите белый список. В
server.propertiesпоставьтеwhite-list=trueи добавьте друзей командойwhitelist add Ник. Это закрывает вопрос с посторонними полностью. Подробнее — в разборе server.properties. - Не раздавайте права оператора. Оператор может всё, включая остановку сервера и выдачу прав другим.
- Делайте резервные копии. Папка
world, скопированная при остановленном сервере, — это вся страховка от гриферства и сбоя диска. - Помните, что ваш адрес виден. Он и так виден всем, к кому вы подключаетесь, но сервер добавляет к этому известность: если сервер публичный и кому-то не понравится ваше решение как администратора, адрес может стать целью. Для домашней компании это несущественно, для открытого сервера — довод в пользу хостинга.
- Обновляйте ядро. В старых версиях находят дыры, а обновление — это замена одного файла.
Если сервер нужен на один вечер
Всё описанное имеет смысл, когда мир живёт долго. Поиграть вдвоём в один вечер проще без сервера вообще — открыть мир для сети прямо из игры. Как это делается, описано в статье об игре с другом по сети.
Чтобы друзья зашли с первого раза
Sonar — бесплатный лаунчер для Minecraft. Он проверяет адрес сервера до захода и предупреждает, если версия не подходит, а позвать друга на свой сервер можно одной кнопкой — диктовать адрес не придётся.