これが私の高いレベルの目標です。
私はワイヤレスクライアント用のWi-Fiホットスポットとして機能する小型デバイスでLinuxを実行しています。また、設定のためにWebサーバー(nginx)を実行し、設定が正しいまでWi-FiクライアントからのすべてのHTMLリクエストをこのローカルWebサーバーにリダイレクトしたいと思います。正しく設定されたら、リダイレクトを停止してトラフィックルーティングに戻る必要があります。
私はiptables、ip Routeなどに比較的最初に触れたので、私のアプローチが正しいかどうかはわかりません。
ATMは「設定モード」でiptablesを使用してhttpトラフィックをローカルWebサーバーにリダイレクトしました(そして通常モードに戻るときにこれらのルールをクリアしました)。
iptables -t nat -A PREROUTING -p tcp --dport 80 -j DNAT --to-destination 192.168.42.1
iptables -t nat -A PREROUTING -p tcp --dport 443 -j DNAT --to-destination 192.168.42.1
iptables -t nat -A PREROUTING -p tcp --dport 5000 -j DNAT --to-destination 192.168.42.1
(私の設定ソフトウェアは設定Webページ用のWebソケットサーバを実行しているため、ポート5000が必要です)
この方法は、クライアントがDNS要求を解決できる限り(またはハードコーディングされたIPアドレスを使用する限り)うまく機能します。私のDHCPサーバーは、Wi-FiクライアントのDNSサーバーとしてデフォルトの8.8.8.8/8.8.4.4を設定しますが、8.8.8.8に接続できない場合(デバイスが正しく設定されていない場合に発生する可能性がある)、クライアントが自分の設定Webページにアクセスしません。これは、Wi-Fiクライアントが最初にIPアドレスを確認できないためです。
だから私の考えは、「通常モード」ではDNS要求のみを渡しますが、「設定モード」ではローカルWebサーバーIPに対するすべての要求を解決するDNSサーバーを自分のデバイスに設定することです。
私の質問は:どのソフトウェア(dnsmasq?)を使用し、DNS要求の転送とローカルサーバーへの要求の解決の間で(実行時に)切り替えることができるようにどのように設定しますか?
それともアプローチが間違っているため、プロキシや他の方法を使用してリダイレクトする必要がありますか?ローカルIPへの要求を一時的に解決するDNSサーバーに見られる1つの欠点は、クライアントが結果をキャッシュできるため、構成が完了した後もまだローカルWebサーバーに接続することです。