Переадресація портів на Android 2.3.6 wifi-tether за допомогою програми Port Forwarder


11

У мене виникають проблеми з переадресацією портів поза моєю мережею під час зв’язування з телефоном. Я погано розумію маршрутизатори та мережі взагалі, тому будь ласка, майте мене.

Мій пристрій Android - це той, який безпосередньо підключений до Інтернету. Щоб увімкнути доступ до свого комп'ютера із зовнішнього світу через пристрій Android, я зараз використовую безкоштовний додаток під назвою Port Forwarder, і мій телефон укорінений, тому у мене є необхідна авторизація. Порт, на якому я обробляю з'єднання на сервері, становить 80. Доступ до IP-адреси Сервера (всередині мережі) <local_ip.addr.ess.here>:80можна отримати доступ до нього, так що це працює.

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

Як ви вже помітили, я не маю поняття, що я роблю, а пошук путівників був складним, навіть для стандартних маршрутизаторів. Хтось успішно використовував цю програму і, можливо, міг би мені допомогти? Я, мабуть, залишив важливу інформацію через незнання, якщо це так, дайте мені знати, і я оновлю питання.


Про яку «публічну адресу» ми говоримо тут? Якщо це WiFi-адреса, призначена вашим маршрутизатором (зазвичай це щось на зразок 192.168.*.*, але іноді також 172.*.*.*або 10.*.*.*, див. Вікіпедія ), воно видно лише у вашій локальній мережі , і не можна отримати доступ безпосередньо з "зовнішнього світу". Тут потрібні налаштування переадресації портів у вашому маршрутизаторі , і їх краще обговорити на сервері ServerFault .
Izzy

Ні, це адреса з google'ing "Whats my ip" (якщо ви ще не використовували його, google сам дає ip-адресу, яка повинна бути надійною). І ви неправильно розумієте питання, в заголовку написано "wifi-tethering". Це означає, що це не звичайний маршрутизатор, а мій пристрій Android - це мій маршрутизатор, що робить його відповідним сайтом. Ви навіть прочитали все запитання? Я згадую додатки, телефон та інші відповідні речі, які, здається, ви зовсім пропустили.
юстотернотербіст

1
Я навіть читав її кілька разів - але мушу визнати, що трохи розгубився. Ви чітко не вказали, який пристрій діє як "сервер" у цьому контексті, тому я припустив звичайний напрямок (одне слово "прив'язка" не визначає, хто сервер, а хто клієнт, вибачте). Дякуємо за роз’яснення: це, звичайно, робить мій коментар до ServerFault застарілим. // Твій перехід порту від 80 до 80 мені здається правильним. Я б запропонував проконсультуватися з журналами Android (наприклад adb logcat), намагаючись отримати доступ із зовнішньої сторони, щоб побачити, чи він принаймні доходить до вашого пристрою і, можливо, записує якісь підказки.
Izzy

1
Спасибі! Щойно я відредагував трохи більше, тому тепер це повинно бути абсолютно зрозуміло (сподіваюся; принаймні ніхто не повинен вступати в ту саму пастку, як я більше). Не соромтеся коригувати, якщо вам не сподобається моє редагування. // Думка, що ваш постачальник може цього не допустити. Щоб перевірити, встановіть на своєму пристрої Android якийсь сервер (наприклад, простий FTP-сервер) та спробуйте, чи це можна отримати з "зовнішнього світу". Якщо це не працює, ваш провайдер блокує цей трафік. Якщо це спрацює, ми ще можемо дослідити далі.
Izzy

1
Я зателефонував провайдеру, і вони сказали, що це дозволяють. Були заблоковані лише деякі «відомі вірусні порти», що б це не означало. Тож проблема повинна бути в самому телефоні.
юстотернотербіст

Відповіді:


2

Я не впевнений, в якій версії ви працюєте, ось моя порада. Ви, ймовірно, заблоковані, через брандмауер Android та сильну політику Se-Linux.

Оскільки у вас є повний кореневий доступ, ви можете отримати оболонку з ADB і перевірити це. Введіть, su -і це введе вас у корінь. Я використовую TerminalEmulator, але ви можете використовувати нативний, якщо він поставляється з ОС.

Якщо я вас правильно зрозумів, телефон працює як маршрутизатор у режимі прив’язки. Отже, це потрібно для переадресації пакетів: echo 1 > /proc/sys/net/ipv4/ip_forward

Подивіться, чи це допомагає. Швидше за все, вам потрібно буде пограти з iptables, дозволити порт 80,443 на прив'язному порту. Це не повна відповідь, але це занадто довго, щоб розмістити коментар.


1

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

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.