Как пробросить порт на роутере
Проброшенный порт открывает устройство всему интернету. Боты проверяют все адреса подряд и находят открытый порт за часы. Пробрасывайте только нужный порт и только к программе, которая обновляется и защищена паролем или ключом. Не открывайте так удалённый рабочий стол Windows (3389), общие папки (445) и страницу настроек роутера. Удалите правило, когда доступ больше не нужен.
По шагам
- Закрепите адрес устройства. В настройках роутера, в разделе DHCP, зарезервируйте адрес за MAC-адресом устройства (пункт «Резервирование адресов», «Привязка IP к MAC», «DHCP Reservation»). Иначе после перезагрузки устройство получит другой адрес, а правило будет указывать на старый.
- Проверьте программу. Она должна быть запущена и слушать порт для подключений из сети, а брандмауэр устройства — пропускать их. Проверьте с другого компьютера в своей сети:
Test-NetConnection 192.168.1.10 -Port 8080в PowerShell илиnc -zv 192.168.1.10 8080в Linux (вместо192.168.1.10и8080— адрес устройства и порт программы). Если изнутри сети не подключается, снаружи не подключится тем более. - Создайте правило на роутере. Раздел называется «Переадресация портов», «Проброс портов», «Виртуальные серверы», «Port Forwarding» и иногда находится внутри «NAT» или «Межсетевой экран». Поля правила:
- имя — любое понятное, например «Камера»;
- протокол — TCP, UDP или оба (какой нужен, сказано в инструкции программы);
- внешний порт — на который будут подключаться снаружи;
- внутренний адрес — адрес устройства из шага 1;
- внутренний порт — который слушает программа (часто совпадает с внешним).
- Сохраните правило; некоторые роутеры просят перезагрузку.
- Проверьте снаружи — с телефона через мобильный интернет, выключив Wi‑Fi: откройте адрес вида
http://внешний-адрес:порт/или подключитесь программой. Внешний адрес — на странице состояния роутера (справка Как узнать свой IP-адрес).
Меню роутеров у производителей разные. Если не находите раздел, поищите в инструкции к модели слова «проброс» или «port forwarding».
Внешний и внутренний порт могут различаться. Например, правило «внешний 2222 → 192.168.1.10, порт 22» оставит SSH на сервере на обычном порту, а снаружи подключаться придётся к 2222.
Не работает
- Серый адрес. Если внешний адрес на странице роутера отличается от того, что показывают сайты проверки IP-адреса, или начинается с
10.,100.64–100.127,172.16–172.31,192.168., — провайдер выпускает вас в интернет через свой NAT (CGNAT). Проброс на своём роутере тогда не поможет: нужен публичный адрес от провайдера. Подробнее — в уроке NAT и проброс портов. - Проверка изнутри своей сети. Не все роутеры умеют вернуть подключение на внешний адрес обратно внутрь. Проверяйте только из другой сети.
- Программа слушает только
127.0.0.1. Тогда к ней не подключиться даже из своей сети — это меняется в настройках самой программы. - Брандмауэр устройства. Порт нужно разрешить и на самом компьютере — как это сделать, разобрано в темах Windows и Ubuntu.
- Два роутера подряд. Если ваш роутер стоит за терминалом провайдера, в котором тоже есть роутер, порт нужно пробросить на обоих — или перевести терминал в режим моста (уточните у провайдера, как это сделать).
- Порт закрыт у провайдера. Некоторые провайдеры закрывают отдельные порты для входящих подключений. Попробуйте другой внешний порт или спросите поддержку.
- Адрес устройства сменился. Проверьте, что резервирование адреса из шага 1 действительно сохранилось.
UPnP и DMZ вместо проброса
UPnP позволяет программам самим просить роутер открыть порт — так часто работают игровые приставки. Удобно, но открыть порт может и вредоносная программа; если UPnP не нужен, держите его выключенным.
DMZ отдаёт одному устройству всё входящее и открывает из интернета все его порты. Для домашнего компьютера или камеры это опасно — пробрасывайте отдельные порты.
Если внешний адрес меняется
Белый, но динамический адрес меняется после переподключения. Чтобы подключаться по имени, а не по адресу, включите на роутере DDNS (динамический DNS): роутер сам будет сообщать службе DDNS свой текущий адрес.