AndroidフォンをwifiWebサーバーとして使用する
-
27-10-2019 - |
質問
可能かどうかわからないというこのクレイジーなアイデアが浮かびました...私がやりたいのは、電話をWi-Fiアクセスポイントとして設定し、他のユーザーが接続できるようにすることですが、すべての着信httpトラフィックを処理します自分自身。
だから:
-
アクセスポイントモードの電話wifi。オープンwifiネットワーク(この一口は機能します-はい、公式にはサポートされていないことはわかっていますが、このアプリを公開市場に出すつもりはありません。私の電話で機能し、それで十分です)。
-
クライアントは電話に接続できます(例:私のラップトップ:これも機能します)。
-
クライアントがランダムサーバーへのhttp接続を開こうとすると、これは私のアプリによってインターセプトされ、ローカルWebサーバーによって処理される必要があります。これが私が立ち往生しているポイントです。
Webサーバーの部分はそれほど難しくないはずです。利用可能な(オープンソースの)Webサーバーがあります。しかし、そのWebサーバーへのトラフィックを取得するには、問題があります。
私が求めている動作は、ホテルのホットスポットなどの開いているホットスポットに接続したときに得られる動作と少し似ています。この接続要求の傍受(DNS要求を確認する必要があると思いますか?)が私が求めているものです。
これを実行しているアプリを見たことがありますが、電話をルート化する必要があります。電話をroot化せずにそれを行う方法を見つけたいと思っています。
解決
Wifiホットスポットは通常、IPTablesを使用してポート80/443トラフィックをローカルWebサーバーにリダイレクトします。
過去にLinuxマシンでポート3128でsquidを実行し、すべてのポート80/443トラフィックをsquidに送信しました。次に、squidを使用して、明示的に許可していないURLをローカルWebサーバーにリダイレクトしました。
IPTablesは、ルート化されたAndroidデバイスでのみアクセスできます。
Androidで利用できるプロキシサーバーがたくさんあるとは思えないので、ネットワーク接続を介してHTTPトラフィックをプロキシサーバーに送信する必要があります。
他のヒント
前述のように、IPTablesが必要ですが、 Squidなどのプロキシサーバーも必要です。。
Googleの「イカを使った透過プロキシ」、またはこちらを確認してください:
Linux:3つの簡単なステップでSquidを使用して透過プロキシをセットアップします
プロキシは必要ありません。必要なのは完全な