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 会对此发出安全警告。
解决:
sudo chmod 600 /etc/netplan/50-cloud-init.yaml
netplan try
netplan applyWARNING
即使跳过 chmod 600,netplan try 仍能生效,但每次都会弹出警告。安全角度建议收紧权限。
案例:iw dev link 显示 Not connected.(Server 环境)
Ubuntu Server 最小安装后,WiFi 配置文件写好了、权限也对了,但 iw dev wlp3s0 link 始终显示 Not connected.。
根因:Server 最小安装默认不包含 wpasupplicant,netplan 生成的 WiFi 配置无法实际执行认证。
诊断:
ps aux | grep wpa
# 输出为空 → wpa_supplicant 未运行ls /run/netplan/
# 输出中不存在 wpa-*.conf → netplan 没有生成 wpa 运行时配置解决:
sudo apt install -y wpasupplicant
sudo netplan apply安装后 netplan apply 会自动:
- 生成
/run/netplan/wpa-wlp3s0.conf - 以直接模式启动
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 模式的服务被停止。
排查:对比进程、内核日志和时间线
# 查看最近一次认证到断开的时间戳
sudo dmesg -T | grep -E "wlp|authenticate|associate|deauthenticating"
# 查看 wpa_supplicant 进程是否活着
ps aux | grep wpa解决:
sudo netplan apply # 重新拉起 wpa_supplicantNOTE
这是进程管理问题,而非配置错误。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 连接停留在配置阶段。
诊断:
# 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:
sudo killall wpa_supplicant # 清理所有 wpa 进程
sudo netplan apply # 让 netplan 以直接模式重新拉起netplan 启动的 wpa_supplicant 直接读取配置文件、绑定接口,不走 D-Bus 通信链路,更加可靠。