Использование телефона Android в качестве веб-сервера Wi-Fi - PullRequest
5 голосов
/ 18 марта 2011

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

Итак:

  • телефон wifi в режиме точки доступа;открытая сеть Wi-Fi (этот tidbit работает - да, я знаю, что он официально не поддерживается, но тогда я не собираюсь распространять, выложить это приложение на открытый рынок или около того, оно работает на моем телефоне, и этого достаточно для меня).

  • клиент может подключиться к телефону (например, мой ноутбук: это также работает).

  • , когда клиент пытается открыть http-соединение с любым случайным сервером, этодолжно быть перехвачено моим приложением и обработано локальным веб-сервером.Это точка, в которой я застрял.

Часть веб-сервера не должна быть слишком сложной;Доступны веб-серверы с открытым исходным кодом.Но при получении трафика на этот веб-сервер возникает проблема.

Поведение, которое мне нужно, немного похоже на то, что вы получаете при подключении к какой-либо открытой точке доступа, например, к точкам доступа отеля, которые затем перенаправляют вас настраница входа.Этот перехват запроса на соединение (я подозреваю, что должен посмотреть на DNS-запросы?) - вот что я ищу.

Я видел приложение, которое делает это, но для этого требуется, чтобы телефон был рутирован.Я надеюсь найти способ сделать это без рута телефона.

Ответы [ 3 ]

4 голосов
/ 06 апреля 2011

Точки доступа Wi-Fi обычно используют IPTables для перенаправления трафика порта 80/443 на локальный веб-сервер.

В прошлом я запускал squid на машинах linux через порт 3128, а затем отправил весь трафик порта 80/443 на squid. Затем я использовал squid перенаправить любой URL, который я явно не разрешил на локальный веб-сервер.

IPTables доступен только на устройствах с ОС root.

И я сомневаюсь, что на Android доступно много прокси-серверов, поэтому вам придется отправлять HTTP-трафик на прокси-сервер через сетевое соединение.

2 голосов
/ 15 июня 2012

вам не нужен прокси-сервер, вам просто нужен полный стек LAMP на вашем устройстве и IPtables, вы можете пометить все пакеты, которые не прошли проверку подлинности, для пересылки на локальную страницу, затем с помощью php измените правило для этого IP-адреса, как только адрес будет аутентифицирован, вы можете сделать то же самое для mac-адресов, если хотите, тогда вам также потребуется демон, который периодически сбрасывает каждое исключение

2 голосов
/ 02 февраля 2012

Как уже было сказано, вам понадобятся IPTables, но вам также понадобится прокси-сервер, например Squid .

Google "прозрачный прокси с squid", или проверьте здесь:
Linux: Настройка прозрачного прокси с Squid в три простых шага

...