次の動作でWi-Fi(wlan0)をアクセスポイント/ホットスポットとして設定したいと思います。
以下はうまくいきます:
- デバイスはホットスポットを作成し、SSIDをブロードキャストし、httpサーバー(ノードエクスプレスサーバー)を起動します。
- ユーザーがホットスポットに接続する
- ユーザーは正しい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 ap
IPv4 NAT(またはIPv6プレフィックス委任を使用)を使用してDHCPおよびDNSサーバーも実行する必要があります。 Wi-Fi「ap」とIP共有方式は独立しています。たとえば、イーサネットまたはBluetoothデバイスで「ipv4.method = shared」を設定できます。
設定されている場合、ipv4.method shared
NetworkManagerはインターフェイスでdnsmasqを実行してDHCPおよびDNSサーバーとして機能します。また、マスカレーディング(NAT)を有効にするiptablesルールを追加します。これを設定すると、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に設定しました。
ipv4.method.shared
その場合、イーサネットでDHCPおよびDNS機能を有効にするには、イーサネット設定ファイルでこれを設定するだけです。