我之前问过一个问题使用wifite后Wifi无法工作[重复]。这和这个答案帮助过我。但是,问题是它可以工作,但是几个小时后,当我启动笔记本电脑时,我遇到了同样的问题。
我面临着问题每当我在。然后,重新启动我的笔记本电脑一切正常。我无法永久解决该问题。我没用过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=15 dBm
重试短限制:7 RTS thr:关闭 片段 thr:关闭 电源管理:关闭wwan0 没有无线扩展。
docker0 没有无线扩展。
ifconfig
docker0: flags=4099<UP,BROADCAST,MULTICAST> mtu 1500 inet 172.17.0.1 网络掩码 255.255.0.0 广播 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.0 B) 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.0 B) RX 错误 0 丢弃 0 溢出 0 帧 0 TX数据包 0 字节 0 (0.0 B) TX 错误 0 丢弃 0 溢出 0 载波 0 冲突 0 设备中断 20 内存 0xf2500000-f2520000
lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536 inet 127.0.0.1 网络掩码 255.0.0.0 inet6 ::1 prefixlen 128scopeid 0x10 循环 txqueuelen 1000 (本地环回) RX 数据包 28 字节 1728 (1.6 KiB) RX 错误 0 丢弃0 溢出 0 帧 0 TX 数据包 28 字节 1728 (1.6 KiB) TX 错误 0 丢弃 0 溢出 0 载波 0 冲突 0
答案1
您已经尝试过终止wpa_supplicant
并重新启动NetworkManager
,但是如果整个界面在命令的输出中不再可见iwconfig
,ifconfig
iw list
/或的ip link show
,那么这将无济于事。
问题可能是 WiFi 适配器驱动程序与硬件存在某种错误通信。如果您使用该功能,则可能是挂起/休眠问题。
您可能需要检查dmesg
输出以查看是否存在与 WiFi 接口相关的任何错误消息。当界面不再对类似命令可见时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>
重新加载它。这将迫使驱动程序从头开始 100% 重新初始化 WiFi 适配器,有望清除任何与通信错误相关的错误状态。
如果这导致 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