树莓派4B运行Ubuntu 20.04每次开机都需要手动设置WiFi,说明网络配置未持久化保存。以下是完整的解决方案:


1. 检查当前网络配置状态

nmcli device wifi list  # 查看可用WiFi
nmcli connection show  # 查看已保存的连接

若列表中没有你的WiFi名称,说明配置未保存。


2. 使用Netplan持久化配置(推荐)

Ubuntu 20.04默认使用Netplan管理网络。

(1) 编辑Netplan配置文件

sudo nano /etc/netplan/50-cloud-init.yaml

(如果文件不存在,可能是01-netcfg.yaml或其他名称)

(2) 添加WiFi配置

修改文件内容如下(替换你的WiFi名和密码):

network:
    version: 2
    renderer: NetworkManager
    wifis:
        wlan0:
            access-points:
                "你的WiFi名":
                    password: "你的密码"
            dhcp4: true
            optional: true

注意:

  • 如果使用networkd而非NetworkManager,需将renderer改为networkd并删除optional: true。

  • 树莓派4B的无线网卡通常为wlan0,可用ip a确认。

(3) 应用配置
sudo netplan generate
sudo netplan apply

3. 使用NetworkManager命令行(备用方案)

如果Netplan不生效,可直接用nmcli保存配置:

(1) 删除现有无效连接
nmcli connection delete "你的WiFi名"
(2) 添加新连接并设置自动启动
nmcli device wifi connect "你的WiFi名" password "你的密码"
nmcli connection modify "你的WiFi名" connection.autoconnect yes

4. 检查NetworkManager服务

sudo systemctl status NetworkManager  # 确保服务运行
sudo systemctl enable NetworkManager  # 设置开机自启

5. 验证开机自启

重启后执行以下命令验证是否自动连接:

nmcli connection show --active  # 查看活动连接
ip a show wlan0  # 检查是否获取到IP
ping -c 4 baidu.com  # 测试网络连通性

6. 常见问题解决

(1) 配置未生效
  • 检查YAML文件缩进(必须用空格,不能有Tab)。

  • 确认WiFi名称和密码无误(特殊字符需用引号包裹)。

(2) 无法获取IP
  • 检查路由器是否开启DHCP。

  • 手动指定静态IP(在Netplan中替换dhcp4: true):

    addresses: [192.168.1.100/24]
    gateway4: 192.168.1.1
    nameservers:
        addresses: [8.8.8.8, 1.1.1.1]
(3) 日志排查
journalctl -u NetworkManager -b  # 查看NetworkManager日志
sudo netplan --debug apply      # 调试Netplan

7. 终极方案:重置网络配置

如果问题依旧,尝试完全重置:

sudo rm /etc/netplan/*.yaml
sudo nano /etc/netplan/01-wifi.yaml  # 重新创建配置
sudo netplan apply
sudo reboot

总结

  1. 优先使用Netplan配置WiFi(/etc/netplan/*.yaml)。

  2. 确保NetworkManager服务正常运行。

  3. 重启后通过nmcli和ping验证自动连接。

如果仍失败,可能是驱动问题(需更新内核)或硬件故障(尝试USB无线网卡)。

更多推荐