У меня возникают проблемы с переадресацией портов из-за пределов моей сети при подключении к телефону. Я плохо разбираюсь в маршрутизаторах и сетях в целом, поэтому, пожалуйста, потерпите меня.
Мое Android-устройство напрямую подключено к Интернету. Чтобы обеспечить доступ к моему компьютеру из внешнего мира через устройство Android, в настоящее время я использую бесплатное приложение под названием Port Forwarder , и мой телефон имеет root-права, поэтому у меня есть необходимая авторизация. Порт, по которому я обрабатываю соединения на сервере, — 80. Доступ к IP-адресу сервера (внутри сети) с помощью <local_ip.addr.ess.here>:80
я могу получить к нему доступ, так что это работает.
Проблема в том, что когда я пытаюсь получить к нему доступ из-за пределов сети, приложение говорит мне установить источник на 80 и пункт назначения, каким бы он ни был (их пример: 8080); конечно, я установил его на 80, так как это то, что слушает сервер. Поэтому я пытаюсь получить доступ к серверу извне <phone.public_ip.adr.ess>:80
, но это не работает.
Как вы заметили, я понятия не имею, что делаю, и найти руководства было сложно даже для стандартных маршрутизаторов. Кто-нибудь успешно использовал это приложение и, возможно, мог бы мне помочь? Я, вероятно, пропустил важную информацию из-за невежества, если это так, дайте мне знать, и я обновлю вопрос.
Я не уверен, какую версию вы используете, вот мой совет. Причина, по которой вы, вероятно, заблокированы, связана с брандмауэром Android и строгой политикой Se-Linux.
Так как у вас есть полный рут-доступ, вы можете получить оболочку с ADB и проверить это. Введите su -
, и вы получите root. Я использую TerminalEmulator, но вы можете использовать родной, если он поставляется с ОС.
Если я вас правильно понял, ваш телефон работает как маршрутизатор в режиме модема. Итак, это необходимо для пересылки пакетов:echo 1 > /proc/sys/net/ipv4/ip_forward
Посмотрите, поможет ли это. Скорее всего, вам нужно поиграться с iptables, разрешить порт 80443 на порту модема. Это не полный ответ, но он слишком длинный, чтобы публиковать его в качестве комментария.
Ответ заключается в том, что ваш провайдер блокирует порт 80, однако, если вы переключитесь на порт 443, они не смогут его заблокировать, потому что порт 443 должен иметь разблокированную двустороннюю связь, чтобы https мог отправлять и получать ответы. Таким образом, переход с http на https://, скорее всего, решит вашу проблему.
Иззи
192.168.*.*
, но иногда также172.*.*.*
или10.*.*.*
, см. Википедию ), он виден только внутри вашей локальной сети и не может быть доступен напрямую из «внешнего мира». Здесь нужны настройки переадресации портов в вашем маршрутизаторе , и их лучше обсудить на ServerFault .простодругойлюбитель
Иззи
adb logcat
, ) при попытке доступа извне, чтобы увидеть, достигает ли он хотя бы вашего устройства и, возможно, регистрирует некоторые подсказки.простодругойлюбитель
Иззи
простодругойлюбитель
Иззи
adb logcat
может дать некоторые подсказки.