通过 hostapd 转发端口?

通过 hostapd 转发端口?

我正在运行这个创建接入点的项目它是建立在hostapd.

按预期运行,我的以太网连接可用作 wifi:

sudo create_ap wlan0 eth0 wifiname

我希望主机上的 80 端口会自动暴露给客户端,但事实并非如此。

如何创建hostapd公开 80 端口的热点?我想我可能需要使用iptablesordnsmasq但我不确定。

我使用链接的项目作为起点,但我的主要目标是通过 wifi 热点广播端口。


更新:我发现默认情况下主机在 IP 上可用192.168.12.1。我现在正在寻找一种方法来转发所有内容(或至少是本地主机)热点上的流量流向该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

添加后,httpAP 上的任何地址都会转发到192.168.12.1浏览器,当未提供端口时,浏览器会自动采用端口 80,这样就不再存在问题了。

答案2

您无法通过 hostapd 执行此操作,因为端口 80 位于 ISO/OSI 堆栈的第 4 层,AP 工作在第 2 层。因此,您需要识别通过 WIFI 连接的 IP 并使用该 IP 的 IPTABLES

相关内容