我希望将 wifi (wlan0) 配置为具有以下行为的接入点/热点。
以下作品:
- 设备创建热点,广播SSID并启动http服务器(node express服务器)
- 用户连接到热点
- 用户导航到正确的IP并可以看到服务器。
我需要什么帮助:
- 如何捕获所有 URL 并将它们重定向到正确的 IP,以便它们只能看到服务器?
- 当我连接到热点时,我只能在输入 IP 时看到服务器,而在输入主机名时看不到服务器。
- 如何让浏览器自动打开并导航到正确的IP?
我相信我需要配置 DNS 设置,但我不确定如何配置?我需要使用 dnsmaq 还是只能使用 nmcli?当我不使用 nmcli 时,我让它与 dnsmasq 一起使用,但我不确定如何将 nmcli 与 dnsmasq 一起使用
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
为了值得,我使用计算模块(Pi 3),运行 Raspbian
我当前的连接详细信息:
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 ap
,您还需要运行具有 IPv4 NAT(或使用 IPv6 前缀委派)的 DHCP 和 DNS 服务器。 Wi-Fi“ap”和IP共享方法是独立的。例如,您还可以在以太网或蓝牙设备上配置“ipv4.method=shared”。
如果配置ipv4.method shared
,NetworkManager 将在接口上运行 dnsmasq,充当 DHCP 和 DNS 服务器。它还将添加一条 iptables 规则来启用伪装 (NAT)。如果您配置ipv6.method shared
,NetworkManager 将执行 IPv6 前缀委派。
答案2
我很感激你的回复。
我能够通过使用 dnsmasq 插件获得如此原始的路由。
- 我设置
dns=dnsmasq
在/etc/NetworkManager/NetworkManager.conf
- 我
address=/test.com/10.42.0.1
在/etc/NetworkManager/dnsmasq.d/redirect.conf中设置
那么,要在以太网上启用 DHCP 和 DNS 功能,我所要做的就是ipv4.method.shared
在以太网配置文件中进行设置?