wpa_supplicant连接到了路由,但是 udhcpc会分配到不同网段的ip,路由器ip为192.168.0网段,板子分配ip为192.168.1的网段

发布于:2025-06-26 ⋅ 阅读:(19) ⋅ 点赞:(0)

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

  • 使用 tcpdumpudhcpd -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/中继等
是否是访客网络 路由器设置检查


网站公告

今日签到

点亮在社区的每一天
去签到