Что делает проброс портов
Роутер с адресом провайдера скрывает домашние устройства за общим внешним адресом, и входящие соединения из интернета без правил отбрасываются. Проброс портов — правило, которое говорит роутеру: всё, что приходит на такой-то внешний порт, передавать на определённый внутренний адрес и порт. Так можно открыть доступ к домашнему серверу, камере, игровому серверу или удалённому рабочему столу.
Проброс открывает дверь в вашу сеть, поэтому ограничивайтесь только тем, что действительно нужно, и защищайте службу паролями и обновлениями.
Что понадобится до начала
Определите три вещи: на каком устройстве работает служба, какой порт и протокол ей нужны (TCP, UDP или оба) и какой внешний адрес у вашего роутера. Закрепите за устройством постоянный локальный адрес через резервирование, иначе правило перестанет работать после смены адреса.
Проверьте и внешний адрес. Если провайдер выдаёт вам общий адрес одного на нескольких абонентов, проброс не заработает совсем: понадобится отдельный публичный адрес, услуга которого обычно подключается у провайдера. Сравните адрес, показанный в интерфейсе роутера, с тем, который видят внешние сервисы: если они разные, вы за общим адресом.
Создание правила
В веб-интерфейсе роутера найдите раздел проброса портов: он может называться виртуальными серверами или переадресацией. Создайте новое правило и заполните поля: имя для себя, протокол, внешний порт или диапазон, внутренний адрес устройства и внутренний порт. Обычно внешний и внутренний порты совпадают, но можно указать и разные, например для скрытия стандартного порта.
Сохраните правило и включите его. Если на устройстве есть собственный брандмауэр, разрешите в нём входящие соединения на этот порт, иначе трафик дойдёт до устройства и там будет отброшен.
Проверка снаружи
Проверять нужно из другой сети: с телефона через мобильный интернет или с помощью внешнего сервиса проверки портов. Проверка из домашней сети по внешнему адресу иногда даёт неверный результат из-за особенностей обработки таких запросов роутером. Убедитесь, что служба на устройстве запущена и слушает нужный порт, иначе проверка покажет закрытый порт даже при верном правиле.
Отдельно проверьте локально, что служба отвечает по внутреннему адресу. Так вы разделите проблемы: служба неисправна или правило не работает.
Почему не работает и как защитить
Типичные причины: изменился локальный адрес устройства, неверный протокол, запрет со стороны брандмауэра, общий адрес у провайдера, двойной NAT из-за второго роутера в цепочке и служба, слушающая только локальный интерфейс. Двигайтесь по списку по порядку.
Для безопасности используйте нестандартные порты там, где это допустимо, сложные пароли и обновления, а для доступа к домашней сети извне рассмотрите защищённый удалённый доступ средствами роутера или домашнего сервера вместо открытых портов. Закрывайте правила, которые больше не нужны.
Разберите пример. Вы открыли порт для домашнего сервера, а снаружи он недоступен. Проверьте по цепочке: служба слушает на устройстве; локально соединение проходит; брандмауэр разрешает порт; правило на роутере указывает правильный адрес и протокол; внешний адрес роутера публичный; между роутером и провайдером нет второго роутера. Последний пункт чаще всего оказывается причиной, когда всё остальное в порядке.
Более безопасные альтернативы открытым портам
Если задача — попасть к домашним устройствам издалека, открытый порт не всегда лучший вариант. Защищённый удалённый доступ к дому позволяет не выставлять службы напрямую в интернет: снаружи виден один защищённый вход, а не набор разрозненных сервисов. Многие роутеры и сетевые накопители поддерживают такой режим.
Другой вариант — использовать облачный сервис производителя, который сам связывает устройство и приложение без проброса. Он удобен, но означает, что данные проходят через чужие серверы, и это нужно учитывать.
Если открытый порт неизбежен, ограничьте доступ по адресам, где это возможно, включите двухфакторную защиту, следите за журналами и обновляйте службу сразу после выхода исправлений.