Почему без проброса входящие подключения не доходят
Домашний роутер выполняет трансляцию адресов: у всех устройств дома внутренние адреса, а во внешний мир они выходят под одним общим адресом роутера. Когда компьютер сам обращается к серверу, роутер запоминает это соединение и возвращает ответ именно тому устройству, которое спрашивало. Всё, что приходит без запроса, роутер не знает, кому отдать, и отбрасывает.
Проброс порта (port forwarding) — это заранее заданное правило. Оно сообщает роутеру: если извне пришёл запрос на порт такой-то, отправь его на конкретное устройство внутри сети. Теперь входящее подключение имеет адресата и проходит. Общая идея трансляции описана в словаре: NAT, а про порты — в статье о портах и сокетах.
Правило создаётся вручную, или автоматически, если включена технология UPnP. Разницу разбирает отдельный материал.
Поля правила и что в них писать
В разных роутерах названия различаются, но набор параметров практически одинаков.
| Поле | Что означает | На что обратить внимание |
|---|---|---|
| Имя правила | Произвольное название | Пишите понятное, чтобы потом узнать |
| Протокол | TCP, UDP или оба | Берите из документации приложения |
| Внешний порт | Порт, на который придёт запрос из интернета | Может отличаться от внутреннего |
| Внутренний адрес | Адрес устройства в сети | Должен быть закреплён за устройством |
| Внутренний порт | Порт, на котором устройство слушает | Его определяет приложение или устройство |
| Источник | Откуда разрешено подключение | Если можно, ограничьте адреса |
Внешний и внутренний порт не обязаны совпадать. Например, можно принимать подключения на нестандартном внешнем порту, а внутри пересылать на порт приложения. Это полезно, если два устройства слушают на одном и том же внутреннем порту: для каждого выбирается свой внешний.
Как настроить правило по шагам
Перед началом убедитесь, что вы понимаете, какой порт и протокол нужны приложению, и что именно вы хотите сделать доступным. Если этого не знаете, лучше не открывать порты наугад.
- Закрепите за устройством постоянный внутренний адрес: резервирование по MAC-адресу в настройках DHCP. Иначе адрес может смениться, и правило укажет на другое устройство.
- Откройте веб-интерфейс роутера и найдите раздел проброса портов (он может называться «Виртуальные серверы», «Переадресация», «NAT», «Port forwarding»).
- Создайте правило: имя, протокол, внешний порт, внутренний адрес, внутренний порт.
- Сохраните настройки.
- Проверьте, что на самом устройстве приложение запущено и слушает порт, а его встроенный межсетевой экран не блокирует подключение.
- Проверьте доступность порта из внешней сети (например, с мобильного интернета), а не из домашней.
Проверка из домашней сети часто вводит в заблуждение: не все роутеры корректно обрабатывают обращение к собственному внешнему адресу изнутри. Поэтому тест лучше делать снаружи.
Условия, при которых проброс не сработает
Даже правильно созданное правило иногда не работает. Ниже список типичных причин, идите по нему сверху вниз.
- У роутера нет публичного адреса. Провайдер выдаёт «серый» адрес, или за роутером находится ещё один. См. материал о двойном NAT.
- Внутренний адрес изменился, и правило указывает на другое устройство.
- На устройстве закрыт порт межсетевым экраном или приложение не запущено.
- Протокол указан неверно (TCP вместо UDP или наоборот).
- Провайдер блокирует некоторые входящие порты, что бывает для отдельных сервисов.
- Правило конфликтует с другим (два правила на один внешний порт) или с режимом DMZ.
- Роутер не перезагружен после сохранения, хотя это нужно не во всех моделях.
Для быстрой проверки существует простой приём: временно включить UPnP и посмотреть, изменится ли поведение; но включённый UPnP оставлять без надобности не стоит. Последнее слово в диагностике — журнал роутера: иногда там видно, что подключения доходят, но отклоняются устройством.
Безопасность: как открывать порты разумно
Открытый порт — приглашение для автоматических сканеров, которые постоянно проверяют адреса в интернете. Поэтому чем меньше открыто, тем лучше.
Придерживайтесь принципов: открывайте только те порты, которые нужны; направляйте их на конкретное устройство, а не используйте режим DMZ; закрепляйте адрес и удаляйте правила, когда они больше не нужны. На устройстве, которое принимает подключения, должны быть современные обновления и надёжные пароли, а сервисы без необходимости — отключены.
Полезно периодически просматривать таблицу правил и удалять устаревшие. Старые правила от давно забытых программ остаются открытыми, хотя приложения давно нет. И помните, что многие устройства, например видеокамеры и накопители, лучше открывать наружу только защищённым способом, предусмотренным производителем. Об особенностях камер — в отдельной статье.
Примеры записей в таблице проброса
Чтобы понять, как выглядят правила на практике, посмотрите на условные примеры. Значения даны для иллюстрации, ваши зависят от приложения.
| Имя | Протокол | Внешний порт | Внутренний адрес | Внутренний порт |
|---|---|---|---|---|
| Игра-хост | UDP | 27000 | адрес приставки | 27000 |
| Камера-видео | TCP | 8554 | адрес камеры | 554 |
| Веб-сервер | TCP | 8080 | адрес мини-компьютера | 80 |
Обратите внимание на вторую строку: внешний порт отличается от внутреннего, что удобно, когда стандартный номер лучше не выставлять наружу. Это не защита, а лишь способ не быть на виду у самых простых сканеров.
Что ещё стоит запомнить: диапазоны портов задают через тире; протокол «оба» означает TCP и UDP сразу; названия правил лучше писать понятно. Когда правило больше не нужно, удалите его или отключите: это лучше, чем оставлять «на всякий случай».
Обратите внимание и на то, что некоторые провайдеры сами ограничивают входящие подключения на отдельные порты (например, почтовые или веб-порты). Если правило настроено верно, а снаружи порт всё равно закрыт, попробуйте другой внешний номер: если он открывается, ограничение было на стороне оператора. Так можно отличить проблему настройки от особенностей услуги.
Помните и о том, что после смены роутера или сброса настроек правила придётся создавать заново, поэтому храните список рабочих правил в отдельной заметке: порты, протоколы, адреса и цель каждого правила. Такой список превращает повторную настройку в пятиминутное дело.