Hostapdとdnsmasqを使用してWi-Fiホットスポットを作成するときに発生する問題

Hostapdとdnsmasqを使用してWi-Fiホットスポットを作成するときに発生する問題

オペレーティングシステム:Pop!_OS 22.04 LTS(64ビット)

私のラップトップにアクセスポイントを作成し、ここにAndroid携帯電話を接続しようとしています。私の携帯電話が接続されて表示されます。IPアドレスの取得をクリックしてすぐに切断します。 DHCPの問題だと思いますが、わかりません。私の主な関心事はこれブログ。詳細は次のとおりです。

私のプロジェクトのルートディレクトリに3つのファイルがあります。今すぐmakeWAP.shホスト構成ファイルそしてdnsmasq.conf。次のファイルを貼り付けます。

makeWAP.sh

#!/bin/bash                                                                    
export DEV_IN=wlp3s0;
export DEV_OUT=enp2s0;
export DNS_SERV=10.0.0.1;
export DNS_PORT=3000;
echo "Bringing up $DEV_IN"
#This address/mask should match how you configured dnsmasq
ifconfig $DEV_IN up $DNS_SERV netmask 255.255.255.0

echo "Starting dnsmasq"
dnsmasq --resolv-file=/home/abuobaidazishan/DevProjects/makeWAP/dnsmasq.conf

echo "Configuring iptables"
#Clear everything in iptables                                                   
iptables -Z;
iptables -F;
iptables -X;

#Turn on iptables NAT, forwarding, and enable 
#forwarding in the kernel

iptables --table nat --append POSTROUTING --out-interface $DEV_OUT -j MASQUERADE
iptables --append FORWARD --in-interface $DEV_IN -j ACCEPT
sysctl -w net.ipv4.ip_forward=1

echo "Starting hostapd"
hostapd /home/abuobaidazishan/DevProjects/makeWAP/hostapd.conf

dnsmasq.conf

interface=wlp3s0
dhcp-range=10.0.0.3,10.0.0.20,12h
port=3000

ホスト構成ファイル

interface=wlp3s0
driver=nl80211
ssid=WatchingU
channel=1

sh makeWAP.shこれはルートの出力です。

Bringing up wlp3s0
Starting dnsmasq
Configuring iptables
net.ipv4.ip_forward = 1
Starting hostapd
wlp3s0: interface state UNINITIALIZED->ENABLED
wlp3s0: AP-ENABLED 
wlp3s0: STA 26:b3:4d:c1:3b:49 IEEE 802.11: authenticated
wlp3s0: STA 26:b3:4d:c1:3b:49 IEEE 802.11: associated (aid 1)
wlp3s0: AP-STA-CONNECTED 26:b3:4d:c1:3b:49
wlp3s0: STA 26:b3:4d:c1:3b:49 RADIUS: starting accounting session 922EA81DDF566B77
wlp3s0: AP-STA-DISCONNECTED 26:b3:4d:c1:3b:49

以下は、接続を維持したい携帯電話の連続スクリーンショットです。

図1 図2

これで、DNSクエリのデフォルトポートが53である必要がありますが、なぜ3000に変更したのか疑問に思います。さて、netstat -tulnprootとして実行すると、次のような結果が表示されます。

root@pop-os:/home/abuobaidazishan# netstat -tulnp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name    
tcp        0      0 127.0.0.53:53           0.0.0.0:*               LISTEN      835/systemd-resolve 
udp        0      0 127.0.0.53:53           0.0.0.0:*                           835/systemd-resolve 

ご覧のとおり、systemd-resolvはすでにこれを使用しています。したがって、dnsmasq コマンドは失敗し、これはポートがすでに使用中であることを示します。

出力は次のとおりですifconfig

enp2s0: flags=4099<UP,BROADCAST,MULTICAST>  mtu 1500
        ether 60:18:95:2f:73:2b  txqueuelen 1000  (Ethernet)
        RX packets 0  bytes 0 (0.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 0  bytes 0 (0.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        inet6 ::1  prefixlen 128  scopeid 0x10<host>
        loop  txqueuelen 1000  (Local Loopback)
        RX packets 3728  bytes 962026 (962.0 KB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 3728  bytes 962026 (962.0 KB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

wlp3s0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.0.104  netmask 255.255.255.0  broadcast 192.168.0.255
        inet6 fe80::7d6d:7224:9348:b5d6  prefixlen 64  scopeid 0x20<link>
        ether 90:0f:0c:1c:ad:51  txqueuelen 1000  (Ethernet)
        RX packets 329808  bytes 320182341 (320.1 MB)
        RX errors 0  dropped 1  overruns 0  frame 0
        TX packets 139852  bytes 18440551 (18.4 MB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

教えてくれれば大きな助けになると思います。なぜこのようなことが起こっています。インターネット検索をしてみると、みんな少しずつアプローチが違うようです。このためにどれに従うべきかわかりません。そして、私の質問で見ると、私が初心者だということをかなり確信しているようです。よって、どんな助けでも大変感謝いたします。

ありがとうございます!

ベストアンサー1

次のヒントを試してください。

  1. ネットワーク管理者の無効化

    sudo systemctl disable NetworkManager
    
  2. 「wpa_pairwise」を設定してみてください。例: /etc/hostapd.conf に次の行を追加します。

    wpa_pairwise=TKIP CCMP
    
  3. 別のLinuxカーネルバージョンを試してください。私の場合、このソリューションは「最新」カーネルバージョンではなく「特定」カーネルバージョンでのみ機能しました。

  4. またはでwpa_passphrase置き換えてみてください。wpa_psk/etc/hostapd.conf

私の場合、これは問題を解決しました。 Wi-Fi PSKパスワード認証に関連するHostapdのバグのように感じます。この関連質問

おすすめ記事