私はこれを実行していますアクセスポイントを作成するプロジェクトに構築されましたhostapd
。
期待どおりに動作し、イーサネット接続はWi-Fiで動作します。
sudo create_ap wlan0 eth0 wifiname
ホストのポート80がクライアントに自動的に公開されると予想しましたが、そうではありません。
hostapd
ポート80を公開するホットスポットを作成するには?iptables
orを使用する必要があるようですが、dnsmasq
よくわかりません。
リンクされたプロジェクトを出発点として使用していますが、主な目的はWi-Fiホットスポットを介してポートをブロードキャストすることです。
修正する:私はホストがデフォルトでIPで利用可能であることを発見しました192.168.12.1
。私は今すべてを伝える方法を探しています。(または少なくともlocalhost)ホットスポットからのトラフィックはそのIPに移動します。
ただし、まだホスト自体で別のドメインを確認できるはずです。
答え1
を使用して目的の動作を達成できましたdnsmasq
。デフォルトdnsmasq.conf
の場所に以下を追加したので、最初は混乱しました。
address=/#/192.168.12.1
すべてのトラフィックをそのIPに転送する必要があります192.168.12.1
が、機能していないことがわかりました。
後でtop
プログラムを実行したときに呼び出されましたが、create_ap
フォルダにdnsmasq
カスタマイズがあることがわかりました。dnsmasq.conf
/tmp/
私が見つけたソースを読むこの作品:
MTU=$(get_mtu $INTERNET_IFACE)
[[ -n "$MTU" ]] && echo "dhcp-option-force=option:mtu,${MTU}" >> $CONFDIR/dnsmasq.conf
[[ $ETC_HOSTS -eq 0 ]] && echo no-hosts >> $CONFDIR/dnsmasq.conf
[[ -n "$ADDN_HOSTS" ]] && echo "addn-hosts=${ADDN_HOSTS}" >> $CONFDIR/dnsmasq.conf
if [[ "$SHARE_METHOD" == "none" && "$REDIRECT_TO_LOCALHOST" == "1" ]]; then
cat << EOF >> $CONFDIR/dnsmasq.conf
address=/#/$GATEWAY
そのステートメント内に次の行を追加して、一時dnsmasqファイルに設定を追加しました。
echo "address=/#/${GATEWAY}" >> $CONFDIR/dnsmasq.conf
追加すると、http
AP のすべてのアドレスが192.168.12.1
ブラウザに転送され、ポートが提供されていない場合、ブラウザは自動的にポート 80 を想定するため、もはや問題はありません。
答え2
ポート 80 が ISO/OSI スタックのレイヤ 4 にあり、AP がレイヤ 2 で動作するため、Hostapd を介してこれを行うことはできません。したがって、WIFIを介して接続するIPを識別し、そのIPのIPTABLESを使用する必要があります。