NetworkManager 中的 ip-config-unavailable DHCP 错误

NetworkManager 中的 ip-config-unavailable DHCP 错误

概述和环境

我最近设置了一个新的 VirtualBox VM,遇到了一些奇怪的网络行为。该机器运行的是 Ubuntu 22.04,在安装 VirtualBox 客户机附加组件后,我无法访问互联网。连接到互联网的接口 (enp0s3) 设置为使用桥接适配器连接到主机上的无线接口。

诊断步骤

我做的第一件事是检查网络管理器的日志,看看发生了什么,结果发现 enp0s3 无法连接

Activation: starting connection 'Wired connection 1' (adea0206-d268-302b-b1d3-6f12a938a5db)
device (enp0s3): state change: disconnected -> prepare (reason 'none', sys-iface-state: 'managed')
device (enp0s3): state change: prepare -> config (reason 'none', sys-iface-state: 'managed')
device (enp0s3): state change: config -> ip-config (reason 'none', sys-iface-state: 'managed')
dhcp4 (enp0s3): activation: beginning transaction (timeout in 45 seconds)
device (enp0s3): state change: ip-config -> failed (reason 'ip-config-unavailable', sys-iface-state: 'managed')

然后,我使用 Wireshark 查看 DHCP 数据包,发现虚拟机正在发送发现数据包,我的家庭路由器 (192.168.1.1) 正在发送提供数据包,虚拟机正在响应请求数据包,路由器正在响应确认数据包。这表明实际的 DHCP 事务没有问题。

我尝试重新应用 netplan 配置并重新启动系统,但这些都无法解决问题。

答案1

解决方案

经过一番挖掘,我发现 NetworkManager 配置偶尔会损坏。不幸的是,我没有保存损坏的文件来查看到底出了什么问题。配置文件位于/etc/NetworkManager/NetworkManager.conf。我只是删除了这个文件并重新启动 NetworkManager,一切又恢复正常了

运行的命令

sudo rm /etc/NetworkManager/NetworkManager.conf
sudo systemctl restart NetworkManager

笔记:删除配置文件的更好方法是将其移动到其他位置。sudo mv /etc/NetworkManager/NetworkManager.conf ~/NetworkManager.conf.bac

成功连接输出

dhcp4 (enp0s3): activation: beginning transaction (timeout in 45 seconds)
device (enp0s3): state change: ip-config -> ip-check (reason 'none', sys-iface-state: 'assume')
device (enp0s3): state change: ip-check -> secondaries (reason 'none', sys-iface-state: 'assume')
device (enp0s3): state change: secondaries -> activated (reason 'none', sys-iface-state: 'assume')
device (enp0s3): Activation: successful, device activated.

相关内容