Iptables
通過 hostapd 轉發埠?
我正在執行這個項目來創建基於
hostapd
.執行它按預期工作,我的乙太網連接可作為 wifi 使用:
sudo create_ap wlan0 eth0 wifiname
我希望主機上的埠 80 會自動暴露給客戶端,但事實並非如此。
如何創建
hostapd
公開埠 80 的熱點?我想我可能需要使用iptables
或dnsmasq
但我不確定。我使用連結的項目作為起點,但我的主要目標是通過 wifi 熱點廣播埠。
**更新:*我發現預設情況下主機在 IP 可用
192.168.12.1
。我現在正在尋找一種將熱點上的所有(或至少 localhost)*流量轉發到此 IP 的方法。但我仍然需要能夠解析主機本身的其他域。
我能夠得到我想要使用的行為
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
添加 AP 上的任何
http
地址轉發到192.168.12.1
瀏覽器後,當未提供埠時,瀏覽器會自動假定埠 80,這樣就不會出現問題。