wpa_supplicant连接到了路由,但是 udhcpc会分配到不同网段的ip,路由器ip为192.168.0网段,板子分配ip为192.168.1的网段
wpa_supplicant连接到了路由,但是 udhcpc会分配到不同网段的ip,路由器ip为192.168.0网段,板子分配ip为192.168.1的网段
你提到的情况:
-
使用
wpa_supplicant
成功连接到路由器; -
然后通过
udhcpc
(DHCP客户端) 获取到了192.168.1.x
的 IP; -
而 路由器本身是在
192.168.0.x
网段;
这说明:
你的 WiFi 接入点(SSID)并不是路由器
192.168.0.x
这个主网段的 DHCP 服务,而是另一个设备或另一个虚拟网络提供了 DHCP(192.168.1.x
网段)。
🔍 可能原因分析
✅ 1. 连接到了错误的 WiFi 网络
这是最常见的原因。你以为连的是 192.168.0.x
网段的路由器,其实 wpa_supplicant
连上了另一个 AP(如热点、另一个路由器、中继等),它的 DHCP 分配的是 192.168.1.x
网段。
解决:
bash
复制编辑
iwconfig wlan0 # 查看当前连接的 SSID iw dev wlan0 link # 查看连接状态、AP MAC 地址
确认连接的是你想要的 SSID,再检查 wpa_supplicant.conf
内容是否有多个网络配置,如果有多个,模块可能自动连接了其它网络。
✅ 2. 同一个路由器但启用了“访客网络”
很多路由器支持双SSID,例如:
-
主网:192.168.0.x
-
访客网:192.168.1.x(隔离网络)
如果你连接的是访客SSID,就会被分配到 192.168.1.x
网段。
✅ 3. DHCP 响应来自其他设备(误接入了中继/AP)
可能你网络上有一个“无线路由器/中继/老AP”接入主路由的 LAN 口,这些设备自带 DHCP 服务,并分配的是 192.168.1.x
。
这种情况你虽然“物理上连的是主路由”,但是 DHCP 响应优先来自别的设备。
排查方法:
bash
复制编辑
cat /var/lib/misc/udhcp.leases
或者:
bash
复制编辑
udhcpc -i wlan0 -v
查看日志中 DHCP server 的 IP,比如:
nginx
复制编辑
Sending discover... Received offer from 192.168.1.1
说明你是从 192.168.1.1
获取的 IP,这个就不是你的主路由(你说主路由是 192.168.0.1
)。
✅ 4. 路由器下接了另一个 NAT 设备
有些人用旧路由做二级路由(WAN 口接主路由 LAN),会造成子网不同。
🛠️ 建议的解决方法
🔧 确认你连接的是目标路由器 SSID
bash
复制编辑
iwconfig wlan0
或
bash
复制编辑
iw dev wlan0 link
确认当前连接的 SSID、BSSID(MAC 地址)是否是你期望的那个。
🔧 固定连接目标网络,避免误连
修改 /etc/wpa_supplicant.conf
,明确只连接一个网络:
conf
复制编辑
network={ ssid="YourCorrectSSID" psk="your_password" priority=100 }
确保只有这一个 network
块。
🔧 临时手动指定静态 IP(测试用途)
你可以尝试先静态设置正确网段的 IP,看是否能与主路由通信:
bash
复制编辑
ifconfig wlan0 192.168.0.100 netmask 255.255.255.0 up route add default gw 192.168.0.1
然后测试连通性:
bash
复制编辑
ping 192.168.0.1
🧠 进阶建议:禁用 udhcpc 自动连接到非目标 DHCP
-
使用
tcpdump
或udhcpd -v
加日志观察谁是 DHCP Server。 -
如果网络里有多个 DHCP Server,需要关闭多余设备的 DHCP 服务,或者用
dnsmasq
来指定。
✅ 总结
你的板子从 udhcpc
获取了错误网段的 IP,核心问题在于 DHCP Server 的来源与连接的 SSID 是否正确。请重点检查:
检查点 | 建议 |
---|---|
当前连接的 SSID | iw dev wlan0 link |
DHCP Server 地址 | udhcpc -i wlan0 -v |
wpa_supplicant.conf 配置 | 是否含有多个 network 条目 |
网络中是否有多个 DHCP 服务 | 路由器/AP/中继等 |
是否是访客网络 | 路由器设置检查 |