
Я перепробовал все, чтобы включить переадресацию портов на моем маршрутизаторе. Я учусь в университете, и университет предоставляет мне доступ в Интернет в моей комнате, где у меня есть собственный маршрутизатор. Я думаю, что университет блокирует все внешние порты, но я не уверен, поэтому я пришел сюда.
Что я пробовал:
- Настроил переадресацию портов на моем маршрутизаторе Tenda (внутренний и внешний порт - 7712)
- Добавлено входящее правило в брандмауэре, разрешающее внешний порт 7712 (я проверил, что нет других правил выше этого, блокирующих мое правило)
- У меня есть API Springboot, который предоставляет REST API на порту 7712.
- Я не уверен, заблокирован ли мой порт 7712 маршрутизатором моего университета или интернет-провайдером (я старался использовать уникальный порт)
Наблюдения:
- Я могу получить доступ к externalIp:port, когда я нахожусь в университетской сети (даже из комнаты моего друга, который также является студентом университета и пользуется предоставленным им интернетом)
- Я не могу получить доступ к externalIp:port, когда я подключаюсь к интернету с моего телефона (в основном, когда я выхожу из интернета, предоставленного моим университетом). Когда я пытаюсь проверить, свободен ли порт на этомсвязь, каждый порт, который я пробовал, говорил, что он заблокирован
Ссылки, которые я уже проверил, понял, попробовал и не смогли решить проблему:
- Порт открыт, но доступ к нему через внешний IP-адрес невозможен
- https://stackoverflow.com/questions/54086936/how-to-make-spring-boot-application-accessible-by-external-ip-address-of-the-ser/66308302
- https://stackoverflow.com/questions/63319977/port-80-still-blocked-даже-после-переадресации-портов-и-отключения-брандмауэра
Помимо этих ссылок я проверил еще много ресурсов в интернете и ни одно из проверенных решений не увенчалось успехом.
По сути, я пытаюсь разместить услугу из дома в мир, как домашний центр обработки данных, можно сказать. У меня нет больших машин здесь, это просто мой ноутбук. Я делаю это, чтобы разместить очень маленькое приложение, которое может работать на некоторых телефонах пользователей (клиент), которые будут подключаться к моему ноутбуку (серверу).
На данный момент у меня есть приложение springboot, которое я запускаю из ecplise. После запуска сервера в eclipse я пытаюсь подключиться с localhost:ip, и это работает, но я хочу, чтобы оно было доступно с externalIp:port после настройки переадресации портов. Пожалуйста, помогите мне с этим.
решение1
Похоже, это может быть ваш маршрутизатор или программное обеспечение брандмауэра Windows, если к вашему другу в университете можно получить доступ через его внешний IP/порт.
Однако сначала вам нужно определить, использует ли ваше соединение в университете какой-либо вид NAT (либо Carrier Grade, либо обычный NAT). Сравните ваши IP-адреса между вашим маршрутизатором и Интернетом. Посмотрите на WAN IP на маршрутизаторе, а затем посетите сайт, который показывает ваш IP, видимый из Интернета (например, whatismyip.com). Если два IP-адреса одинаковы, то вы не проходите через NAT. Если они разные и/или WAN IP вашего маршрутизатора находится в диапазоне частных IP-адресов (https://en.wikipedia.org/wiki/Частная_сеть), то вы находитесь за NAT и мало что можете сделать.
Если у вас реальный внешний IP и нет помех NAT, все равно возможно, что ваше соединение может быть заблокировано на определенных портах/службах университетом или это может быть просто ваш маршрутизатор или ваш брандмауэр Windows. Следующий шаг — исключить маршрутизатор как проблему:
•Если маршрутизатор Tenda предлагает функцию DMZ, поместите свой компьютер в DMZ на Tenda и начните тестирование (обычно это делается путем перемещения IP-адреса, назначенного вашему устройству Tenda, в настройки DMZ). DMZ должен обойти все NAT и открыть ваш компьютер для доступа в Интернет.
•Подключите свой компьютер напрямую к университетской сети и полностью избегайте маршрутизатора. Вам придется определить, как ваш IP-адрес выдается вашему маршрутизатору (скорее всего, это просто DHCP, но может потребоваться аутентификация PPPOE).
Следующий шаг — временно отключить все брандмауэры Windows (предупреждение: это делает ваш компьютер полностью открытым для Интернета), а затем убедиться, что на вашем компьютере открыты/прослушиваются порты, и проверить их, используя такой инструмент, какhttps://www.portchecktool.com/или другое устройство, внешне подключенное к Интернету.
Если вы видите открытые порты, вы можете далее исследовать, является ли это проблемой маршрутизатора или настроек вашего брандмауэра Windows. Если порты не открыты, то, скорее всего, вы находитесь под защитой брандмауэра университета.
решение2
Мой провайдер использовал NAT. Мне пришлось позвонить им, чтобы они вручную удалили меня из NAT и открыли запрошенные порты. Не знаю, можно ли это сделать с вашей университетской сетью.