Hostapd를 통해 포트를 전달하시겠습니까?

Hostapd를 통해 포트를 전달하시겠습니까?

나는 이것을 실행하고있다액세스 포인트를 생성하는 프로젝트에 구축되었습니다 hostapd.

예상대로 작동하며 이더넷 연결은 Wi-Fi로 작동합니다.

sudo create_ap wlan0 eth0 wifiname

호스트의 포트 80이 클라이언트에 자동으로 노출될 것으로 예상했지만 그렇지 않습니다.

hostapd포트 80을 노출하는 핫스팟을 만드는 방법은 무엇입니까 ? iptablesor 을 사용해야 할 것 같은데 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

추가되면 httpAP의 모든 주소가 192.168.12.1브라우저로 전달되며, 포트가 제공되지 않으면 브라우저가 자동으로 포트 80을 가정하므로 더 이상 문제가 없습니다.

답변2

포트 80이 ISO/OSI 스택의 계층 4에 있고 AP가 계층 2에서 작동하기 때문에 Hostapd를 통해 이 작업을 수행할 수 없습니다. 따라서 WIFI를 통해 연결하려는 IP를 식별하고 해당 IP의 IPTABLES를 사용해야 합니다.

관련 정보