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 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 オーバー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(ローカルループバック8) 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

関連情報