wlan0은 대부분의 경우 작동하지 않습니다

wlan0은 대부분의 경우 작동하지 않습니다

예전에 질문을 했었는데Wi-Fi 사용 후 Wi-Fi가 작동하지 않음.이것그리고이 답변나를 도와 주었다. 그런데 문제는 작동이 되지만 몇시간 뒤 노트북을 시작하면 같은 문제가 발생합니다.

여기에 이미지 설명을 입력하세요.

나는 직면하고있다질문내가 있을 때마다그림. 그런 다음 노트북을 다시 시작했는데 모든 것이 잘 작동했습니다. 이 문제를 영구적으로 해결할 수는 없습니다. wifite직면한 이후로 는 사용하지 않았습니다순간을 보내다

sudo airmon-ng check kill

출력: 이러한 프로세스를 종료합니다. PID 이름 1394 wpa_supplicant

sudo service NetworkManager restart
sudo ifconfig wlan0 up

출력: wlan0: 인터페이스 플래그 가져오기 오류: 해당 장치가 없습니다.

sudo iwconfig wlan0 down

출력: wlan0: 인터페이스 플래그 가져오기 오류: 해당 장치가 없습니다.

sudo ifconfig wlan0 up

출력: wlan0: 인터페이스 플래그 가져오기 오류: 해당 장치가 없습니다.

sudo aireplay-ng wlan0

출력: 공격 모드를 지정하십시오. 도움말을 보려면 "aireplay-ng --help"를 입력하세요.

wlan0을 설정하려고합니다. 그러나 실행하면 wlan0 이 없습니다 ifconfig. 이 명령을 실행한 후 재부팅할 때. wlan0은 잘 작동하지만 이 문제가 여러 번 발생했습니다. 며칠 전 wifite를 실행한 후입니다. 지금도 이 문제가 또 발생하고 있는데... wifite상태가 계속 실행 중이거나 다른 일이 발생한 것 같습니다.

iwconfig

무선 확장이 없습니다.

eth0에는 무선 확장이 없습니다.

wlan0 IEEE 802.11 ESSID: 꺼짐/모든
모드: 관리형 액세스 포인트: 연결되지 않음 Tx-Power=15dBm
재시도 단기 제한: 7 RTS thr: 꺼짐 조각 thr: 꺼짐 전원 관리: 꺼짐

wwan0에는 무선 확장이 없습니다.

docker0에는 무선 확장이 없습니다.

ifconfig

docker0: flags=4099<UP,BROADCAST,MULTICAST> mtu 1500 inet 172.17.0.1 netmask 255.255.0.0 Broadcast 172.17.255.255 ether 02:42:7d:19:b4:b6 txqueuelen 0(이더넷) RX 패킷 0 바이트 0(0.0 B) RX 오류 0 삭제 0 오버플로 0 프레임 0 TX 패킷 0 바이트 0(0.0B) TX 오류 0 삭제 0 오버플로 0 캐리어 0 충돌 0

eth0: flags=4099<UP,BROADCAST,MULTICAST> mtu 1500 ether f0:de:f1:da:7d:80 txqueuelen 1000(이더넷) RX 패킷 0바이트 0(0.0B) RX 오류 0 드롭 0 오버플로 0 프레임 0 TX 패킷 0 바이트 0(0.0B) TX 오류 0 삭제 0 오버플로 0 캐리어 0 충돌 0 장치 인터럽트 20 메모리 0xf2500000-f2520000

lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536 inet 127.0.0.1 netmask 255.0.0.0 inet6 ::1 prefixlen 128scopeid 0x10 loop txqueuelen 1000(로컬 루프백) RX 패킷 28바이트 1728(1.6KiB) RX 오류 0 삭제 0 오버플로 0 프레임 0 TX 패킷 28바이트 1728(1.6KiB) TX 오류 0 삭제 0 오버플로 0 캐리어 0 충돌 0

답변1

종료했다 wpa_supplicant가 다시 시작해 보았으나 / 또는 NetworkManager명령의 출력에 전체 인터페이스가 더 이상 표시되지 않으면 도움이 되지 않습니다 .iwconfigifconfig iw listip link show

문제는 WiFi 어댑터 드라이버와 하드웨어 간의 일종의 잘못된 통신일 수 있습니다. 해당 기능을 사용하는 경우 일시 중지/최대 절전 모드 문제가 될 수 있습니다.

dmesg출력을 확인하여 WiFi 인터페이스와 관련된 오류 메시지가 있는지 확인할 수 있습니다 . when과 같은 명령에 대해 인터페이스가 더 이상 iwconfig표시되지 않으면 WiFi 인터페이스용 드라이버 모듈을 언로드했다가 다시 로드해 볼 수 있습니다.

wlan0인터페이스가 제대로 작동 하면 sudo ethtool -i wlan0 | awk '/driver:/{print $2;}'드라이버 모듈의 이름이 표시되어야 합니다. 받아 적어.

wlan0다시 누락된 경우 이전에 기록해 둔 실제 모듈 이름을 sudo modprobe -r <driver module name>바꿔서 실행하여 모듈을 제거합니다. <driver module name>그런 다음 sudo modprobe <driver module name>다시 로드하세요. 이렇게 하면 드라이버가 WiFi 어댑터를 처음부터 100% 다시 초기화하여 통신 오류와 관련된 모든 오류 상태가 지워지길 바랍니다.

이로 인해 WiFi 어댑터가 다시 작동하기 시작하고 노트북을 일시 중단할 때마다 문제가 발생하는 것 같으면 일시 중단/재개 프로세스를 사용자 정의하여 WiFi 어댑터를 자동으로 종료하고 일시 중단 시 해당 드라이버를 언로드한 다음 다시 로드해야 할 수 있습니다. 이력서 업. 이는 일반적으로 대부분의 배포판에서 달성하기 매우 쉽지만 Kali에 특별히 권장되는 방법이 무엇인지는 모르겠습니다.

분명히 Kali는 Debian을 기반으로 하므로 다음 스크립트를 삽입 /lib/systemd/system-sleep/wifi-workaround.sh하고 실행 가능하게 만들면( chmod a+rx /lib/systemd/system-sleep/wifi-workaround.sh) 효과가 있을 수 있습니다.

#!/bin/sh
# When suspending/resuming, systemd will call executables in /lib/systemd/system-sleep 
# with the following parameters:
# $1 = either "pre" or "post"
# $2 = "suspend", "hibernate", "hybrid-sleep" or "suspend-then-hibernate"
INTERFACE=wlan0
DRIVER_MODULE=<driver module name>    

case "$1" in
    pre)
        nmcli device disconnect $INTERFACE
        modprobe -r $DRIVER_MODULE
        ;;
    post)
        modprobe $DRIVER_MODULE
        nmcli device connect $INTERFACE
        ;;
esac

# Don't stop suspending/resuming even if we fail somehow.
exit 0

면책조항: 저는 이것을 전혀 테스트하지 않았습니다. 문제를 해결하고 스스로 조정해야 할 수도 있습니다. 그러나 나는 당신이 이해하기를 바랍니다.

답변2

복구 후 이 스크립트를 sudo로 실행합니다.

#!/bin/bash
# program to check WiFi and reset if not running
  
#dns server 
IPTEST=1.1.1.1
  
iwconfig=/sbin/iwconfig
lspci=/usr/bin/lspci

#find 802 wireless device id
DEVICE=`$iwconfig 2>/dev/null | egrep 802 | awk ' {print $1}'`

#get PCI bus wireless #  
WLNUM=`$lspci | grep -i wireless | awk ' {print $1}'`
  
#get driver to unload
WLMOD=`$lspci -vv -s $WLNUM | grep -i "kernel driver" | awk ' {print $5}'`
  
  
#print out stats      
echo "IP is: $IPTEST"
echo "DEVICE is: $DEVICE"
echo "PCI DEV NUM is $WLNUM"
echo "PCI DRIVER is $WLMOD"
ping -c 1 $IPTEST

read -n 1 -p "Proceed ? " ANS

if [[ "$ANS" =~ [^yY] ]]; then 
    exit 0
fi
  
echo ""
if ping -c 1 $IPTEST >/dev/null 2>&1 ; 
then
    echo "$IPTEST 1 ok"
    exit 0
else
    echo "Ping failed"

    echo "stopping wifi "
    sudo nmcli radio wifi off
    echo "sleeping for 3..."
    sleep 3

    echo "unloading $DEVICE"
    sudo nmcli device disconnect $DEVICE
    echo "sleeping for 3..."
    sleep 3


    echo "unloading $WLMOD ..."
    sudo modprobe -r $WLMOD
    echo "sleeping for 3..."
    sleep 3

    echo "reloading $WLMOD"
    sudo modprobe $WLMOD
    echo "sleeping for 3..."
    sleep 3

    echo "reloading $DEVICE"
    sudo nmcli device connect $DEVICE
    echo "sleeping for 10..."
    sleep 10

    echo "stop wifi "
    sudo nmcli radio wifi off
    echo "sleeping for 3..."
    sleep 3
    
    echo "starting wifi"
    sudo nmcli radio wifi on
    echo "sleeping for 3..."
    sleep 5

    echo "test ping again ..."
    ping -c 1 $IPTEST
fi
exit 0

관련 정보