Network Manager(nmcli)를 사용하여 종속 포털 생성

Network Manager(nmcli)를 사용하여 종속 포털 생성

다음 동작으로 Wi-Fi(wlan0)를 액세스 포인트/핫스팟으로 구성하고 싶습니다.

다음은 작동합니다:

  1. 장치는 핫스팟을 생성하고 SSID를 브로드캐스트하며 http 서버(노드 익스프레스 서버)를 시작합니다.
  2. 사용자가 핫스팟에 연결
  3. 사용자는 올바른 IP로 이동하여 서버를 볼 수 있습니다.

어떤 도움이 필요합니까?

  • 서버만 볼 수 있도록 모든 URL을 캡처하고 올바른 IP로 리디렉션하려면 어떻게 해야 합니까?
  • 핫스팟에 연결하면 IP를 입력해야 서버만 볼 수 있고 호스트 이름은 볼 수 없습니다.
  • 브라우저가 자동으로 열리고 올바른 IP로 이동하도록 하려면 어떻게 해야 합니까?

DNS 설정을 구성해야 한다고 생각하는데 어떻게 해야 할지 모르겠나요? dnsmaq을 사용해야 합니까, 아니면 nmcli만 사용해도 됩니까? nmcli를 사용하지 않을 때 dnsmasq를 사용하고 있지만 dnsmasq와 함께 nmcli를 사용하는 방법을 잘 모르겠습니다.

interface=wlan0      # Use the require wireless interface - usually wlan0
dhcp-range=192.168.4.2,192.168.4.20,255.255.255.0,24h
address=/#/192.168.4.1

그만한 가치가 있기 때문에 저는 Raspbian을 실행하는 컴퓨팅 모듈(Pi 3)을 사용하고 있습니다.

내 현재 연결 세부정보:

connection.id:                          Hotspot
connection.uuid:                        0456fec2-f1e3-45f0-92d9-35cb9c0e5f64
connection.stable-id:                   --
connection.type:                        802-11-wireless
connection.interface-name:              wlan0
connection.autoconnect:                 yes
connection.autoconnect-priority:        0
connection.autoconnect-retries:         -1 (default)
connection.multi-connect:               0 (default)
connection.auth-retries:                -1
connection.timestamp:                   0
connection.read-only:                   no
connection.permissions:                 --
connection.zone:                        --
connection.master:                      --
connection.slave-type:                  --
connection.autoconnect-slaves:          -1 (default)
connection.secondaries:                 --
connection.gateway-ping-timeout:        0
connection.metered:                     unknown
connection.lldp:                        default
connection.mdns:                        -1 (default)
connection.llmnr:                       -1 (default)
802-11-wireless.ssid:                   hydrogen
802-11-wireless.mode:                   ap
802-11-wireless.band:                   bg
802-11-wireless.channel:                0
802-11-wireless.bssid:                  --
802-11-wireless.rate:                   0
802-11-wireless.tx-power:               0
802-11-wireless.mac-address:            --
802-11-wireless.cloned-mac-address:     --
802-11-wireless.generate-mac-address-mask:--
802-11-wireless.mac-address-blacklist:  --
802-11-wireless.mac-address-randomization:default
802-11-wireless.mtu:                    auto
802-11-wireless.seen-bssids:            --
802-11-wireless.hidden:                 no
802-11-wireless.powersave:              0 (default)
802-11-wireless.wake-on-wlan:           0x1 (default)
ipv4.method:                            auto
ipv4.dns:                               --
ipv4.dns-search:                        --
ipv4.dns-options:                       ""
ipv4.dns-priority:                      0
ipv4.addresses:                         --
ipv4.gateway:                           --
ipv4.routes:                            --
ipv4.route-metric:                      -1
ipv4.route-table:                       0 (unspec)
ipv4.ignore-auto-routes:                no
ipv4.ignore-auto-dns:                   no
ipv4.dhcp-client-id:                    --
ipv4.dhcp-timeout:                      0 (default)
ipv4.dhcp-send-hostname:                yes
ipv4.dhcp-hostname:                     --
ipv4.dhcp-fqdn:                         --
ipv4.never-default:                     no
ipv4.may-fail:                          yes
ipv4.dad-timeout:                       -1 (default)
ipv6.method:                            auto
ipv6.dns:                               --
ipv6.dns-search:                        --
ipv6.dns-options:                       ""
ipv6.dns-priority:                      0
ipv6.addresses:                         --
ipv6.gateway:                           --
ipv6.routes:                            --
ipv6.route-metric:                      -1
ipv6.route-table:                       0 (unspec)
ipv6.ignore-auto-routes:                no
ipv6.ignore-auto-dns:                   no
ipv6.never-default:                     no
ipv6.may-fail:                          yes
ipv6.ip6-privacy:                       -1 (unknown)
ipv6.addr-gen-mode:                     stable-privacy
ipv6.dhcp-duid:                         --
ipv6.dhcp-send-hostname:                yes
ipv6.dhcp-hostname:                     --
ipv6.token:                             --
proxy.method:                           none
proxy.browser-only:                     no
proxy.pac-url:                          --
proxy.pac-script:                       --

답변1

HTTP 트래픽을 캡처하고 리디렉션하려면 일부 종속 포털 소프트웨어를 실행해야 합니다. NetworkManager에는 이를 포함하지 않습니다. 여전히 NetworkManager를 사용하여 핫스팟을 실행할 수 있습니다. 그러나 Hostap과 dnsmasq를 직접 실행할 수도 있습니다.

일반적으로 NetworkManager( )를 사용하여 Wi-Fi 액세스 포인트를 생성하는 경우 802-11-wireless.mode apIPv4 NAT(또는 IPv6 접두사 위임 사용)를 사용하여 DHCP 및 DNS 서버도 실행해야 합니다. Wi-Fi "ap"과 IP 공유 방법은 독립적입니다. 예를 들어 이더넷 또는 Bluetooth 장치에서 "ipv4.method=shared"를 구성할 수도 있습니다.

구성된 경우 ipv4.method sharedNetworkManager는 인터페이스에서 dnsmasq를 실행하여 DHCP 및 DNS 서버 역할을 합니다. 또한 매스커레이딩(NAT)을 활성화하는 iptables 규칙을 추가합니다. 이를 구성하면 ipv6.method sharedNetworkManager가 IPv6 접두사 위임을 수행합니다.

답변2

답장을 보내주셔서 감사합니다.

dnsmasq 플러그인을 사용하여 이러한 원시 라우팅을 얻을 수 있었습니다.

  1. 나는 dns=dnsmasq들어갔다/etc/NetworkManager/NetworkManager.conf
  2. address=/test.com/10.42.0.1/etc/NetworkManager/dnsmasq.d/redirect.conf에 설정했습니다 .

ipv4.method.shared그렇다면 이더넷에서 DHCP 및 DNS 기능을 활성화하려면 이더넷 구성 파일에 이를 설정하기 만 하면 됩니다 .

관련 정보