You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Ubuntu Server 22.04 LTS(树莓派4B)使用netplan+networkd无法为wlan0分配DHCP IP

Ubuntu Server 22.04 LTS(树莓派4B)使用netplan+networkd无法为wlan0分配DHCP IP

看起来你遇到的问题大概率和初期打断cloud-init初始化有关,再加上networkd对无线的处理逻辑和Desktop版用的NetworkManager有差异,咱们一步步来排查修复:

1. 先修复cloud-init的残留问题

因为你在cloud-init完成前就提前登录了,可能导致无线相关的初始化流程没跑完。可以尝试重新触发cloud-init的完整初始化:

sudo cloud-init clean
sudo cloud-init init
sudo reboot

重启后别着急登录,等个5-10分钟让cloud-init完整执行完毕,再检查wlan0的状态。

2. 确认无线硬件的内核支持

虽然你用iw wlan0 info看到了硬件信息,但还是确认下树莓派的无线模块是否正常加载:

lsmod | grep brcmfmac

树莓派4B的无线依赖brcmfmac模块,应该能看到相关输出。如果没有,手动重新加载模块:

sudo modprobe brcmfmac

3. 调整Netplan配置(关键细节)

networkd对无线配置有几个容易忽略的细节,试试下面这个更严谨的配置文件,保存为/etc/netplan/00-installer-config.yaml(覆盖原有文件,注意缩进必须用空格,不能用tab):

network:
  version: 2
  renderer: networkd
  ethernets:
    eth0:
      dhcp4: true
      optional: true  # 允许eth0未连接时系统正常启动
  wifis:
    wlan0:
      dhcp4: true
      optional: true
      access-points:
        "你的SSID":
          password: "你的密码"
      dhcp4-overrides:
        route-metric: 200  # 让无线路由优先级低于有线,避免切换冲突

然后应用配置:

sudo netplan generate
sudo netplan apply --debug

添加optional: true是为了避免networkd因为无线未连接而卡住系统启动,指定路由优先级则能防止有线无线同时连接时的路由混乱。

4. 检查wpa_supplicant和systemd服务状态

netplan会自动生成wpa_supplicant配置,咱们确认相关服务是否正常运行:

sudo systemctl status netplan-wpa-wlan0.service

如果状态不是active (running),重启服务再试:

sudo systemctl restart netplan-wpa-wlan0.service
sudo systemctl restart systemd-networkd.service

同时可以实时查看无线服务的日志,找连接失败的具体原因:

sudo journalctl -u netplan-wpa-wlan0.service -f

这里可能会看到密码错误、AP无法发现、信号强度不足等具体提示。

5. 手动测试无线连接(排除配置问题)

如果上面的步骤都没效果,先手动用wpa_supplicant连接,确认硬件本身能正常连网:

# 创建临时wpa配置文件
cat << EOF > /tmp/wpa.conf
ctrl_interface=/run/wpa_supplicant
network={
    ssid="你的SSID"
    psk="你的密码"
}
EOF
# 后台启动wpa_supplicant连接
sudo wpa_supplicant -i wlan0 -c /tmp/wpa.conf -B
# 手动请求DHCP地址
sudo dhclient wlan0

之后用ip a查看是否获取到IP,如果这步成功,说明是netplan和networkd的联动问题,回到步骤3再检查配置的缩进和参数是否正确。

6. 备选方案:切换到NetworkManager

既然Desktop版用NetworkManager能正常工作,Server版也可以切换过去,配置逻辑更直观:

# 安装NetworkManager
sudo apt install network-manager
# 修改Netplan配置为使用NetworkManager
sudo nano /etc/netplan/00-installer-config.yaml

把内容改成:

network:
  version: 2
  renderer: NetworkManager

应用配置并重启服务:

sudo netplan generate
sudo netplan apply
sudo systemctl enable --now NetworkManager

然后用nmcli快速配置无线:

sudo nmcli device wifi connect "你的SSID" password "你的密码"

这样应该就能正常获取IP,和Desktop版的工作逻辑完全一致,稳定性也更好。

备注:内容来源于stack exchange,提问作者SDMark

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.22 15:34:36