운영 체제: 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@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의 버그처럼 느껴집니다.이 관련 질문.