LinuxでパスフェーズなしでWIFI AP(hostapd)を接続する方法は?

LinuxでパスフェーズなしでWIFI AP(hostapd)を接続する方法は?

私は組み込みLinuxシステム(kernel-5.14)で作業しており、Hostapd(およびSoftAPモードを使用)を使用してデバイスをWIFI APとして設定しようとしています。

Hostapd.confの主な修正は次のとおりです。 passphaseを介したAP接続をサポートします。

interface=uap0
wpa=2
wpa_passphrase=12345678
wpa_key_mgmt=WPA-PSK
rsn_pairwise=CCMP TKIP
wpa_pairwise=TKIP CCMP
auth-algs=3

これによりudhcpd.confを設定しました。その後
、保存するログを表示できます。hostapd -B /etc/hostapd.confudhcpd -c /etc/udhcpd.conf &AP ENABLED

passphaseと入力したら、携帯電話からこのAPに接続し、AP(APデバイスのudhcpdから取得)から携帯電話のIPをpingできます。

今、パスワードを入力せずに携帯電話からAPに接続したいと思います。以下のように Hostapd.conf を変更してみました。

wpa=0
auth_algs=1
#wpa_passphrase=12345678

その後、Hostapdとudhcpdを再起動し、電話機からAPに接続しました。
今回のudhcpdAPの申告ログは次のとおりです。

Sending IP 192.168.1.33
Sending IP 192.168.1.33
Sending IP 192.168.1.33
Sending IP 192.168.1.33

getting IP Address私の電話がしばらく現れた後、APに接続しません。

hostapdそれで、パスフェーズなしでAP()に接続できるかどうかはわかりませんが、それではどのように設定できますかhostapd.conf

答え1

要求に対する応答は、udhcpd電話がAPのワイヤレスネットワークに正常に接続されたことを示します。 WiFi ネットワークが接続されていない場合、WiFi 経由で DHCP 要求を行うことはできません。

ただし、電話はある種のインターネット接続を試して、受信したIPアドレスが実際に有効であるかどうかを確認することもできます。 IPルーティングを有効にしていない場合、電話はユーザーから受信したIPアドレスを拒否し、udhcpd実際にそのIPを使用して特定のインターネットサービスと通信できないことを発見したため、再試行できます。

答え2

動作させる方法を見つけました。
私のシステムにはWLAN0インターフェイスがあり、WLAN0にuap0としてSoftAPを作成し、電話が接続されているAPとしてuap0を使用しようとしています。

この機能を機能させるには、まず/etc/hostapd.conf次の設定を行う必要があります。

interface=uap0
driver=nl80211
auth_algs=1
hw_mode=g
#wpa=2
#wpa_passphrase=abcdef123

この組み込みシステムでAPサービスを開始するために必要な手順は次のとおりです。

ifconfig wlan0 up
iw dev wlan0 interface add uap0 type __ap
ifconfig uap0 192.168.0.1
hostapd -B /etc/hostapd.conf
touch /var/lib/misc/udhcpd.leases
udhcpd -f /etc/udhcpd.conf &

その後、携帯電話でAPを検索して接続します。このときパスワードを入力する必要はありません。次のログ
が表示されますudhcpd

udhcpd: sending ACK to 192.168.0.20
udhcpd: sending ACK to 192.168.0.20
udhcpd: sending ACK to 192.168.0.20
udhcpd: sending ACK to 192.168.0.20

電話のIP(192.168.0.20)をpingして取得できます。

PING 192.168.0.20 (192.168.0.20): 56 data bytes
64 bytes from 192.168.0.20: seq=6 ttl=64 time=3.944 ms
64 bytes from 192.168.0.20: seq=7 ttl=64 time=6.440 ms
64 bytes from 192.168.0.20: seq=8 ttl=64 time=2.547 ms
.....

上記の設定と手順に従ってWLAN0を直接使用してテストし、同じ結果を得ます。

関連情報