
オペレーティングシステム: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
以下は、接続を維持したい携帯電話の連続スクリーンショットです。
これで、DNSクエリのデフォルトポートが53である必要がありますが、なぜ3000に変更したのか疑問に思います。さて、netstat -tulnp
rootとして実行すると、次のような結果が表示されます。
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
次のヒントを試してください。
ネットワーク管理者の無効化
sudo systemctl disable NetworkManager
「wpa_pairwise」を設定してみてください。例: /etc/hostapd.conf に次の行を追加します。
wpa_pairwise=TKIP CCMP
別のLinuxカーネルバージョンを試してください。私の場合、このソリューションは「最新」カーネルバージョンではなく「特定」カーネルバージョンでのみ機能しました。
またはで
wpa_passphrase
置き換えてみてください。wpa_psk
/etc/hostapd.conf
私の場合、これは問題を解決しました。 Wi-Fi PSKパスワード認証に関連するHostapdのバグのように感じます。この関連質問。