Skip to content

Ubuntu 网络配置故障排查

案例:配置文件权限警告 Permissions are too open

应用 netplan 配置时,netplan try 反复输出警告:

** (process:13908): WARNING **: 15:47:43.425: Permissions for /etc/netplan/50-cloud-init.yaml are too open.
Netplan configuration should NOT be accessible by others.

原因netplan 要求配置文件权限为 600(仅 root 可读写),但新创建的配置文件默认权限是 644。由于配置中包含 WiFi 明文密码,netplan 会对此发出安全警告。

解决

bash
sudo chmod 600 /etc/netplan/50-cloud-init.yaml
netplan try
netplan apply

WARNING

即使跳过 chmod 600netplan try 仍能生效,但每次都会弹出警告。安全角度建议收紧权限。


Ubuntu Server 最小安装后,WiFi 配置文件写好了、权限也对了,但 iw dev wlp3s0 link 始终显示 Not connected.

根因:Server 最小安装默认不包含 wpasupplicant,netplan 生成的 WiFi 配置无法实际执行认证。

诊断

bash
ps aux | grep wpa
# 输出为空 → wpa_supplicant 未运行
bash
ls /run/netplan/
# 输出中不存在 wpa-*.conf → netplan 没有生成 wpa 运行时配置

解决

bash
sudo apt install -y wpasupplicant
sudo netplan apply

安装后 netplan apply 会自动:

  1. 生成 /run/netplan/wpa-wlp3s0.conf
  2. 以直接模式启动 wpa_supplicant -c /run/netplan/wpa-wlp3s0.conf -iwlp3s0 -Dnl80211,wext

案例:WiFi 认证成功后自动断开 DEAUTH_LEAVING

dmesg 显示认证链路正常走完,但随后被断开:

[ 1580.751185] wlp3s0: associated                           # 关联成功
[ 1610.785518] wlp3s0: deauthenticating from xx:xx:xx:xx:xx:xx
                by local choice (Reason: 3=DEAUTH_LEAVING)   # 主动断开

根因Reason: 3=DEAUTH_LEAVING 是由 wpa_supplicant 进程退出触发的。常见场景:手动 kill 了 wpa_supplicant、或全局 D-Bus 模式的服务被停止。

排查:对比进程、内核日志和时间线

bash
# 查看最近一次认证到断开的时间戳
sudo dmesg -T | grep -E "wlp|authenticate|associate|deauthenticating"

# 查看 wpa_supplicant 进程是否活着
ps aux | grep wpa

解决

bash
sudo netplan apply    # 重新拉起 wpa_supplicant

NOTE

这是进程管理问题,而非配置错误。associated 之后的 4 次握手需要 wpa_supplicant 持续参与,进程退出会中断握手导致 DHCP 无 IP。


案例:D-Bus 注册失败导致 networkd 无法下发 WiFi 指令

wpa_supplicant 以全局 D-Bus 模式运行(wpa_supplicant -u -s),但 busctl tree org.freedesktop.wpa_supplicant1 报错:

Failed to introspect object / of service org.freedesktop.wpa_supplicant1:
The name org.freedesktop.wpa_supplicant1 was not provided by any .service files

根因systemd-networkd 通过 D-Bus 调用 wpa_supplicant 下发连接指令。当 wpa_supplicant 的 D-Bus 服务文件未正确注册时,networkd 无法与其通信,WiFi 连接停留在配置阶段。

诊断

bash
# D-Bus 注册检查
sudo busctl tree org.freedesktop.wpa_supplicant1

# wpa_supplicant 启动模式检查
ps aux | grep wpa
# 对比:全局 D-Bus 模式 → wpa_supplicant -u -s
# 正常 netplan 启动 → wpa_supplicant -c /run/netplan/wpa-*.conf -i<接口>

解决:确保通过 netplan apply 而不是手动方式启动 wpa_supplicant:

bash
sudo killall wpa_supplicant     # 清理所有 wpa 进程
sudo netplan apply               # 让 netplan 以直接模式重新拉起

netplan 启动的 wpa_supplicant 直接读取配置文件、绑定接口,不走 D-Bus 通信链路,更加可靠。