| Возможная причина | Как узнать | Что делать |
|---|---|---|
| Заказать белый IPМногие провайдеры подключают услугу за небольшую плату. | Услуга «статический IP» в личном кабинете. | Самый простой путь. |
| Использовать IPv6Если провайдер выдаёт глобальные IPv6, проброс не нужен, но нужно открыть порт в файрволе. | В ipconfig есть адрес из диапазона 2000::/3. | Разрешите входящие и подключайтесь по IPv6. |
| Обратный туннель (Cloudflare Tunnel, WireGuard)Сервер сам устанавливает исходящее соединение. | Работает за любым NAT. | Для веб-служб — Cloudflare Tunnel, для остальных — WireGuard на арендованном VPS. |
| Игровые и p2p-приложенияИспользуют ретрансляторы. | Сервер игры недоступен напрямую. | Выберите режим с выделенными серверами. |
| Двойной NAT домаЗа роутером провайдера стоит ваш роутер. | WAN вашего роутера — приватный адрес. | Включите режим моста (Bridge) на первом устройстве или пробросьте порт на обоих. |
#Сначала узнайте, есть ли белый IP
Проброс портов работает, только если роутер имеет публичный (белый) IPv4-адрес. Провайдеры нередко используют CGNAT — общий адрес на много абонентов; тогда входящий запрос из интернета доходит до оператора, но не до вашего роутера. Определить это просто: сравните два адреса.
- Узнайте внешний IPv4, который видят сайтыНа компьютере, подключённом к своему роутеру, откройте браузер и перейдите на доверенный сайт определения публичного IPv4, затем запишите показанный адрес. Можно вместо этого открыть терминал и выполнить приведённую ниже команду
curl -s ifconfig.me; echo, если команда доступна: она показывает адрес, с которого запрос виден внешнему сервису. Не путайте этот адрес с192.168..., назначенным вашему компьютеру внутри дома. - WAN IP в интерфейсе роутераНа домашнем компьютере откройте надёжную страницу определения внешнего IPv4-адреса, затем зайдите в панель своего роутера по адресу «Основной шлюз» (Windows:
ipconfig). В разделе «Интернет/WAN → Состояние» запишите IPv4 WAN. Если он отличается от публичного адреса либо относится к 10.0.0.0/8, 172.16–31.0.0/12, 192.168.0.0/16 или 100.64.0.0/10, может использоваться двойной NAT/CGNAT. Тогда обычный проброс портов на одном роутере может не работать; уточните у провайдера наличие публичного IPv4. - СравнитеВ панели своего маршрутизатора найдите раздел «Интернет/WAN» и запишите выданный ему IPv4. Затем с компьютера за этим роутером откройте доверенный сервис определения внешнего IP и сравните адреса. Если WAN-адрес частный (
10.x.x.x,172.16–31.x.x,192.168.x.x) или из диапазона100.64.0.0/10, входящие подключения из интернета обычно блокируются дополнительной трансляцией провайдера. Если адреса совпадают и IP публичный, продолжайте проверять локальный брандмауэр и правило порта; совпадение само по себе ещё не доказывает, что порт открыт. - Команды для отдельных ситуацийВыберите только подходящий вариант. Это не одна последовательность: часть команд диагностирует проблему, а часть меняет настройки или данные.
#Если белый IP есть
- Закрепите внутренний адрес устройстваВ веб-интерфейсе собственного роутера найдите «Локальная сеть → DHCP → Резервирование адресов» (название зависит от модели). Выберите устройство, на которое нужно пересылать порт, и закрепите его фактический внутренний IPv4 за MAC-адресом. Например, для роутера с сетью
192.168.1.0/24это может быть свободный192.168.1.50; не копируйте пример, если ваша подсеть иная. Сохраните изменения и сравните зарезервированный адрес с IP в правиле перенаправления. - Создайте правило пробросаУбедитесь, что сервис действительно слушает нужный порт на вашем устройстве и у роутера есть публичный адрес. В панели роутера откройте «NAT/Переадресация портов/Virtual Server» и создайте правило: внешний порт, внутренний IPv4 вашего устройства, внутренний порт и протокол TCP либо UDP по документации приложения. Сохраните, не открывайте удалённое администрирование роутера в интернет. Проверьте доступ извне с мобильной сети и выключите правило, если оно не требуется.
- Разрешите вход на нужный порт в брандмауэреДля владельца компьютера, на который направлен порт: прежде чем добавлять правило брандмауэра, убедитесь, что нужный сервер запущен и слушает правильный TCP/UDP-порт. В Windows 11 откройте «Пуск → Безопасность Windows → Брандмауэр и защита сети → Дополнительные параметры» и раздел «Правила для входящих подключений». Создавайте узкое разрешающее правило только для конкретной доверенной программы и нужного порта; лучше ограничить удалённые адреса. Не отключайте брандмауэр целиком. Если служба не слушает порт, правило не поможет.
- Убедитесь, что служба слушает нужный портНа компьютере Windows, где запущен ваш сервер, нажмите Win+R →
powershell→ Enter и выполнитеGet-NetTCPConnection -State Listen | Sort-Object LocalPort. Найдите действительный TCP-порт вашего приложения и проверьте локальный адрес прослушивания. Если служба использует UDP, этот вывод не подходит: нуженGet-NetUDPEndpoint. Если порт отсутствует, сначала запустите собственную службу и изучите её журнал; проброс на роутере не поможет, пока программа не принимает соединения. - Проверьте снаружиОтключите Wi-Fi на телефоне, включите мобильные данные и откройте адрес вашего публичного IPv4 с нужным портом из приложения, для которого настроен проброс. Проверяйте только пока сервис запущен и слушает порт; иначе порт закономерно покажется закрытым. Если доступа нет, сравните WAN-адрес роутера с публичным IP и проверьте правило брандмауэра. Домашняя проверка по публичному IP может вводить в заблуждение, если роутер не поддерживает NAT loopback.
- Различайте сбой проброса и отсутствие hairpin NATПроверяйте перенаправление из другой сети: на телефоне отключите Wi-Fi, включите мобильную сеть и обратитесь к публичному IP роутера и порту запущенной службы. Если снаружи работает, но из домашнего Wi-Fi по публичному IP нет, ваш роутер, вероятно, не поддерживает NAT loopback (hairpin NAT). Для устройств дома используйте внутренний IP или локальное имя. Если снаружи не работает тоже, снова проверьте CGNAT, запущенную службу и правила брандмауэра.
- Команды для отдельных ситуацийВыберите только подходящий вариант. Это не одна последовательность: часть команд диагностирует проблему, а часть меняет настройки или данные.