我的 Android 手机时不时地无法连接到我的 Wi-Fi,并显示:无法获取 IP 地址。一段时间(有时是几分钟,有时是几小时)后连接恢复正常。
这是我的简化设置:
手机- (无线的) - 无线路由器- (金属丝) - DHCP服务器- (金属丝) - 调制解调器
- 手机:三星 Galaxy S8,Android 9,内核 4.4.111-21427293
- Wi-Fi路由器:Netgear R6260,路由器固件版本V1.1.0.88_1.0.1
- DHCP 服务器:运行 isc-dhcpd-4.3.5 的 Debian 9 (Stretch)
我从 DHCP 服务器获取网络转储:
- 在这种非连接阶段,没有传入数据包。
- 当连接恢复时,我会看到传入和传出的 DHCP 数据包。
因此,我倾向于排除 DHCP 服务器作为问题根源的可能性。
Wi-Fi 路由器记录:“WLAN 访问被拒绝:安全性不正确”
我浏览了网络,但还没有发现任何有用的东西。 Wi-Fi 密码没有改变,没有 MAC 过滤器之类的。我现在怀疑路由器没有将手机的 DHCP 请求转发到 DHCP 服务器。因此,我正在尝试利用手机和路由器之间的 DHCP 通信。
直接在手机上监控 Wi-Fi 流量并不走运:tPacketCapture 应用程序不显示 DHCP 数据包,而且到目前为止我还没有发现任何更有用的东西。
因此,我使用位于同一 Wi-Fi 中的另一台 PC (Ubuntu) 并监控流量。我看到的只是来自手机的 DHCP 请求,但没有返回数据包,即使手机能够连接。我怀疑这是因为它们不再广播,并且我的 Wi-Fi 接口过滤了它们,因为它不处于监控模式。
因此,我想将我的PC的Wi-Fi接口切换到监控模式,并按照以下步骤操作:https://www.geeksforgeeks.org/how-to-put-wifi-interface-into-monitor-mode-in-linux/
sudo ip link set wlp1s0 down
sudo iw wlp1s0 set monitor none
sudo ip link set wlp1s0 up
的输出sudo iw dev
显示“类型监视器”,但几秒钟后恢复为“类型管理”。有人说这是因为 NetworkManagerhttps://askubuntu.com/questions/1330483/wifi-interface-mode-switches-automatically-back-to-management-ubuntu-20-04,但禁用 NetworkManager 将不再自动连接到 Wi-Fi。
wpa_supplicant 应该可以解决这个问题:http://greyfocus.com/2018/01/wifi-without-networkmanager/和如何在没有 wicd 或 NetworkManager 的情况下设置网络?但最终我发现 wpa_supplicant 也将 Wi-Fi 接口切换到托管模式,并且我无法在 Wi-Fi 上嗅探手机的 DHCP 数据包。
这就是我已经走了多远。我想要的只是我的手机能够可靠地连接到我的 Wi-Fi。
如果有人可以在这里提供帮助或为我指明如何追踪此问题的正确方向,我将不胜感激。
预先非常感谢!
答案1
我建议在 Netgear R6260 上安装 OpenWRT,https://openwrt.org/toh/netgear/r6260。 OpenWRT 是一个 Linux 路由器/防火墙发行版,可在许多家庭路由器/防火墙上使用。
tcpdump
然后您就拥有了支持捕获流量的Linux 安装。
看https://openwrt.org/docs/guide-user/firewall/misc/tcpdump_wireshark