Переадресация портов на Android 2.3.6 с помощью приложения Port Forwarder

11

У меня проблемы с переадресацией портов из-за пределов моей сети при подключении к телефону. У меня плохое понимание роутеров и сетей в целом, поэтому, пожалуйста, потерпите меня.

Мое устройство Android - это устройство, напрямую подключенное к Интернету. Чтобы разрешить доступ к моему компьютеру из внешнего мира через устройство Android, в настоящее время я использую бесплатное приложение под названием Port Forwarder, и мой телефон рутирован, поэтому у меня есть необходимые разрешения. Порт, на котором я обрабатываю соединения на сервере, - 80. Получив <local_ip.addr.ess.here>:80доступ к IP-адресу сервера (внутри сети), я могу получить к нему доступ, так что это работает.

Проблема в том, что, когда я пытаюсь получить доступ к нему из-за пределов сети, приложение говорит мне, чтобы установить источник на 80, и назначение как бы то ни было (их пример - 8080); конечно я установил его на 80, так как это то, что сервер слушает. Поэтому я пытаюсь получить доступ к серверу извне, <phone.public_ip.adr.ess>:80но это не работает.

Как вы заметили, я понятия не имею, что я делаю, и найти руководства было сложно даже для стандартных маршрутизаторов. Кто-нибудь успешно использовал это приложение и, возможно, может мне помочь? Я вероятно пропустил важную информацию из-за незнания, если так, дайте мне знать, и я обновлю вопрос.

justanotherhobbyist
источник
О каком "публичном выступлении" мы говорим здесь? Если это WiFi-адрес, назначенный вашим маршрутизатором (обычно что-то вроде 192.168.*.*, но иногда также 172.*.*.*или 10.*.*.*, см. Википедия ), он виден только внутри вашей локальной сети , и к нему нельзя получить доступ напрямую из «внешнего мира». Настройки переадресации портов в вашем маршрутизаторе необходимы здесь, и их лучше обсудить на ServerFault .
Иззи
Нет, это адрес от google'ing "whats my ip" (если вы его не использовали, сам Google выдает ip-адрес, который должен быть надежным). И вы неправильно поняли вопрос, в заголовке написано "Wi-Fi-модем". Это означает, что это не обычный маршрутизатор, мое устройство Android является моим маршрутизатором, что делает этот сайт соответствующим. Вы даже прочитали весь вопрос? Я упоминаю о приложениях, телефонах и других важных вещах, которые вы, кажется, совершенно упустили.
justanotherhobbyist
1
Я даже прочитал это несколько раз - но я должен признать, что был немного смущен. Вы явно не указали, какое устройство действует в этом контексте как «сервер», поэтому я принял обычное направление (само слово «tether» не указывает, кто является сервером, а кто клиентом, извините). Спасибо за разъяснения: это делает мой комментарий к ServerFault, конечно, устаревшим. // Ваш портовый порт от 80 до 80 выглядит правильно для меня. Я бы посоветовал ознакомиться с журналами Android (например adb logcat), пытаясь получить доступ извне, чтобы узнать, достигает ли он хотя бы вашего устройства и, возможно, регистрирует некоторые подсказки.
Иззи
1
Спасибо! Я только что отредактировал немного больше, так что теперь это должно быть совершенно ясно (надеюсь, по крайней мере, никто не должен использовать ту же ловушку, что и я). Не стесняйтесь настраивать, если вам не нравится мое редактирование. // Мысль о том, что ваш провайдер может этого не допустить. Чтобы проверить, настройте какой-либо сервер (например, простой FTP-сервер) на вашем Android-устройстве и попытайтесь получить к нему доступ из «внешнего мира». Если это тоже не сработает, ваш провайдер блокирует этот трафик. Если это работает, мы все еще можем расследовать дальше.
Иззи
1
Я позвонил своему провайдеру, и они сказали, что позволяют. Только некоторые «известные вирусные порты» были заблокированы, что бы это ни значило. Так что проблема должна быть в самом телефоне.
justanotherhobbyist

Ответы:

2

Я не уверен, какую версию вы используете, вот мой совет. Причина, по которой вы, вероятно, заблокированы, связана с брандмауэром Android и строгой политикой Se-Linux.

Поскольку у вас есть полный root-доступ, вы можете получить оболочку с помощью ADB и проверить это. Типа, su -и он получит вас в корень. Я использую TerminalEmulator, но вы можете использовать нативный, если он поставляется с ОС.

Если я вас правильно понял, ваш телефон работает как маршрутизатор в режиме модема. Так что это необходимо для пересылки пакетов: echo 1 > /proc/sys/net/ipv4/ip_forward

Посмотрите, поможет ли это. Скорее всего, вам нужно будет поиграть с iptables, разрешив порт 80,443 на порт привязки. Это не полный ответ, но он слишком длинный, чтобы оставлять комментарии.

беглец
источник
1

Ответ заключается в том, что ваш провайдер блокирует порт 80, однако, если вы переключитесь на порт 443, они не смогут его заблокировать, поскольку для порта 443 необходимо разблокировать двустороннюю связь, чтобы https отправлял и получал ответы. Таким образом, переход с http на https: // скорее всего должен решить вашу проблему.

Крис Золински
источник