Iptables

通過 hostapd 轉發埠?

  • December 1, 2017

我正在執行這個項目來創建基於hostapd.

執行它按預期工作,我的乙太網連接可作為 wifi 使用:

sudo create_ap wlan0 eth0 wifiname

我希望主機上的埠 80 會自動暴露給客戶端,但事實並非如此。

如何創建hostapd公開埠 80 的熱點?我想我可能需要使用iptablesdnsmasq但我不確定。

我使用連結的項目作為起點,但我的主要目標是通過 wifi 熱點廣播埠。


**更新:*我發現預設情況下主機在 IP 可用192.168.12.1。我現在正在尋找一種將熱點上的所有(或至少 localhost)*流量轉發到此 IP 的方法。

但我仍然需要能夠解析主機本身的其他域。

我能夠得到我想要使用的行為dnsmasq。最初我很困惑,因為我將以下內容添加到預設dnsmasq.conf位置:

address=/#/192.168.12.1

它應該將所有流量轉發到 IP 192.168.12.1,但我發現它不起作用。

後來,在執行top程序時,我發現它create_ap已經呼叫dnsmasqdnsmasq.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

添加 AP 上的任何http地址轉發到192.168.12.1瀏覽器後,當未提供埠時,瀏覽器會自動假定埠 80,這樣就不會出現問題。

引用自:https://unix.stackexchange.com/questions/399343